备注:此实验是根据正点原子视频所写。初学STM32,完全是用于自我记录,若有问题,麻烦指正。
实验目的:利用按键控制STM32F429内部DAC1来输出电压,通过ADC1的通道5来采集DAC的输出电压,在LCD模块上显示ADC获得的电压值和DAC的设定输出电压值。
1.开启DAC和IO口时钟,设置输入引脚为模拟输入。
此时又需要使用回调函数HAL_DAC_MspInit();。MSP 是用于执行系统级初始化(时钟、GPIO、DMA、中断)的用户回调函数。
__HAL_RCC_DAC_CLK_ENABLE();//开启DAC时钟
__HAL_RCC_GPIOA_CLK_ENABLE();//开启IO口时钟
在进行GPIO初始化时需注意:GPIO_Initure.Mode = GPIO_MODE_ANALOG;//模拟。
GPIO_Initure.Pull = GPIO_NOPULL; //模拟量无需上下拉。
2.初始化DAC和通道参数
进入定义可知DAC的初始化:
HAL_StatusTypeDef HAL_DAC_Init(DAC_HandleTypeDef* hdac)
可知,需要先定义结构体。
DAC_HandleTypeDef hdac_handler; 。先定义,再使用。由于后续还要实用到,所以需要放在最外面。
然后进行通道配置。其配置函数为:HAL_DAC_ConfigChannel。
HAL_StatusTypeDef HAL_DAC_ConfigChannel(DAC_H