学习使用嵌入式C的裸机驱动程序开发系统:从头开始编写STM32 GPIO,I2C,SPI,USART的驱动程序
- 了解正确的处理和编程MCU外设的方法
- 开发适用于微控制器的外设驱动程序
- 了解完整的驱动程序开发步骤GPIO,SPI,I2C和USART的暂存器。
- 学习编写外围设备驱动程序头,原型API和实现
- 探索MCU数据表,参考手册,启动代码以完成工作
- 了解正确的处理/配置各种外围设备中断的方法
- 了解外围设备IRQ /向量表/ NVIC接口以及许多其他内容
- 了解各种外围设备的配置/状态/控制寄存器,从而
- 神秘化SPI,I2C,GPIO,USART等的工作细节。
- 探索MCU总线接口,时钟源,MCU时钟配置等隐藏的秘密。
- 了解启用/正确的方法配置各种串行协议的外设时钟/串行时钟/波特率
- 了解MCU AHB,APB总线协议
- 了解不同的MCU时钟,例如HCLK,PCLK,PLL等
- 了解在逻辑分析仪上捕获/解码/分析串行协议的痕迹
- 了解更多信息通过案例研究调试外围问题的快速方法
在本课程中,您将学习为大多数常用的外围设备(例如GPIO,I2C,SPI,USART等)编写自己的外围设备驱动程序。
从头开始编写代码和实现API,并深入研究MCU的数据表和参考手册。我将彻底解释如何从技术参考手册的数据表中提取最大信息,以配置和处理外围设备。您可以将这些技术应用于您手头的任何MCU。
在本课程中,我将通过带您进入参考手册和数据手册,逐步指导您如何配置各种外设,例如GPIO,SPI,USART,I2C。我们将开发一个可以正常工作的驱动程序代码,中断处理程序,对应用程序进行示例采样,从头开始到了解全局。
在每一次讲座中,我向您保证,您一定会学到一些可以在您的工作或项目中使用的新知识。您会发现自己更加清晰地处理了这些外围设备,并且能够快速推测和调试问题,并且向您展示使用调试工具(例如逻辑分析仪)调试最常见问题的技巧和窍门。
使用的软件/硬件:
在本课程中,代码的开发方式使其可以移植到您手边的任何MCU上。如果在将这些代码移植到不同的MCU时需要帮助,请随时与我联系!该课程严格不受任何一种MCU的约束。因此,如果您已经有运行ARM-Cortex M3 / M4处理器的开发板,那么我建议您继续使用它。
总目录(24h16m)
- 笔记和信息
- 我们课程中使用的开发板
- 硬件/软件要求
- IDE安装
- 使用STM32CUBEIDE创建项目
- 嵌入式代码调试技巧和窍门
- 了解MCU内存映射
- MCU总线接口
- 了解MCU时钟和详细信息
- 了解MCU时钟树
- 了解MCU向量表
- 了解MCU中断设计,NVIC,中断处理
- “易失性”关键字的重要性
- GPIO必须了解概念
- GPIO编程结构和寄存器
- GPIO寄存器:SPEED,PULL UP / DOWN,IDR和ODR
- GPIO备用功能寄存器和用法示例
- GPIO外设时钟控制
- GPIO驱动程序开发概述和项目创建
- 使用总线域和外围设备详细信息更新特定于MCU的头文件
- 构建外围寄存器
- 写入时钟启用和禁用宏
- GPIO驱动程序API要求和句柄结构
- GPIO驱动程序API实现:时钟控制
- GPIO驱动程序API实现:GPIO初始化和取消初始化
- GPIO驱动程序API实现:GPIO数据读写
- 练习
- GPIO引脚中断配置
- 练习:GPIO中断
- SPI简介和总线详细信息
- SPI总线配置和功能框图
- STM32 NSS引脚设置和管理
- SPI CPOL和CPHA讨论
- SPI串行时钟讨论
- SPI驱动程序:API要求和配置结构
- SPI驱动程序API实现:时钟控制
- SPI驱动程序API实现:SPI初始化
- SPI驱动程序API实现:发送数据
- 练习:SPI发送数据
- 练习:STM32主站与Arduino从站通信
- SPI驱动程序API:接收数据
- 练习:SPI接收数据
- SPI中断
- SPI中断模式API
- SPI驱动程序API:IRQ处理
- SPI中的常见问题
- I2C简介和I2C信号
- I2C模式
- 了解I2C协议
- I2C主从通信
- STM32 I2C功能框图
- I2C驱动程序API要求和配置结构
- I2C串行时钟讨论(SCLK)
- I2C驱动程序API:I2C初始化
- I2C驱动程序API:I2C主设备发送数据
- I2C上拉电阻,上升时间和总线电容
- 练习
- I2C驱动程序API:I2C主设备接收数据
- 练习
- I2C中断和IRQ编号
- 基于I2C中断的API
- I2C IRQ处理程序实现
- 练习
- I2C从站编程
- 练习
- I2C的常见问题
- UART基础
- UART功能块和外设时钟
- UART通讯
- USART驱动程序开发
- USART过采样和波特率
- 练习
- USART中断