STM32 HAL库学习系列第1篇 ADC配置 及 DAC配置
ADC工作均为非阻塞状态
轮询模式
中断模式
DMA模式
库函数:
1 HAL_StatusTypeDef HAL_ADC_Start(ADC_HandleTypeDef* hadc);//轮询模式,需放在循环中不断开启 2 3 HAL_StatusTypeDef HAL_ADC_Stop(ADC_HandleTypeDef* hadc); 4 5 HAL_StatusTypeDef HAL_ADC_PollForConversion(ADC_HandleTypeDef* hadc, uint32_t Timeout);//等待转换结束,只适用于轮询 6 7 HAL_StatusTypeDef HAL_ADC_PollForEvent(ADC_HandleTypeDef* hadc, uint32_t EventType, uint32_t Timeout);// 8 9 HAL_StatusTypeDef HAL_ADC_Start_IT(ADC_HandleTypeDef* hadc);//中断模式 10 11 HAL_StatusTypeDef HAL_ADC_Stop_IT(ADC_HandleTypeDef* hadc); 12 13 void HAL_ADC_IRQHandler(ADC_HandleTypeDef* hadc);//中断 14 15 HAL_StatusTypeDef HAL_ADC_Start_DMA(ADC_HandleTypeDef* hadc, uint32_t* pData, uint32_t Length);//DMA模式 16 17 HAL_StatusTypeDef HAL_ADC_Stop_DMA(ADC_HandleTypeDef* hadc); 18 19 uint32_t HAL_ADC_GetValue(ADC_HandleTypeDef* hadc); //读取ADC的值 20 21 void HAL_ADC_ConvCpltCallback(ADC_HandleTypeDef* hadc);//结束后回调 22 23 void HAL_ADC_ConvHalfCpltCallback(ADC_HandleTypeDef* hadc);//转换过程中回调 24 25 void HAL_ADC_LevelOutOfWindowCallback(ADC_HandleTypeDef* hadc); 26 27 void HAL_ADC_ErrorCallback(ADC_HandleTypeDef *hadc);
校准模式:
校准ADC(HAL_ADCEx_Calibration_Start(&hadc);有些芯片不支持校准,F4不支持
----------------------------------------------------------------------------------------------------------------------------------
可变占空比设置
手动更改占空比
TIM3->CCR2 改变占空比
TIM3->ARR 改变频率
TIM3->PSC
ADC_EXIT 触发引脚
32芯片自带的温度传感器,在16或者18通道
可以用来做对比
代码:
应用:测量压敏电阻阻值---还是测电压
DMA多通道采集-----开启多通道设置,定义一个数组存放转换值
交叉模式---目的是两路ADC采集一路信号,可以获取双倍速度
DAC---数据转换
基本配置:
初始化
设置通道
启动DAC
在循环中改变dac_value值即可
库函数:
输出正弦波----DMA模式
就是预设一组值,不断改变
期待万物互联的时代