HAL库中外设驱动的实现(任意外设通用):
1、句柄结构体(DMA_HandleTypeDef):
Instance:它指向了外设内,一个具体的外设成员。如:ADC里的ADC1、ADC2,UART里的UART1、UART2,DMA的Channel1、Channel2,实际上它用指针指向一个外设基地址。
Init:指向了一个具体外设的初始化结构体,用来配置外设的工作参数。
2、初始化结构体(xx_InitTypeDef):
根据外设的各种配置寄存器,组织起来的外设参数配置结构体,内附在xx_HandleTypeDef结构体中。
以DMA为例
句柄结构体(DMA_HandleTypeDef)
Instance 和 Init
初始化结构体 (xx_InitTypeDef)
从库的角度了解如何初始化DMA外设
1、DMA_HandleTypeDef;
2、对应参考手册
3、Instance-对应的具体的实例化对象-Channel3
4、初始化 (DMA_InitTypeDef)
其他部分的初始化略
5、HAL库各外设.C文件中的初始化详解
6、参考视频
【野火】STM32 HAL库开发实战指南 教学视频 手把手教学STM32全系列 零基础入门CubeMX+HAL库,基于野火全系列STM32开发板_哔哩哔哩_bilibili