当前位置:网站首页>STM32的Cube学习笔记(ADC)
STM32的Cube学习笔记(ADC)
2022-08-09 05:02:00 【lilei668】
经过具体实验可知,以前思学师哥的程序中有ADC开始DMA采集和停止DMA采集两个函数,可以理解成消抖,因为采集频率过快数据可能会发飘。 
硬石资料如下
配置要求一定要在mode处勾选circular ,数据宽度一定要选择“Word”
根据实验只需要将ADC的DMA通道采集打开,无需关闭即可采集成功,而且数据比较稳定,这样为快速傅里叶变换做出了准备。
经过一下午的实验可知ADC采集周期过短的时候在同时调用基本定时器PWM输出,高级定时器PWM输入捕获,串口中断程序,由实验可知无法通过硬石的方法使得ADC正常采集数据,因此思学师哥程序的性价比更高,有始有终才是做事的原则,程序如下。
//常用采集的数组
u32 uhADCxConvertedValue[2]; 

ADC循环采集,采集频率设置需要从以下图中选项设置时钟触发。 
定时器按照下图进行配置即可获得10K的ADC采集频率,上次从硬石教材中的ADC循环采集由于使用的默认系统时钟进行采集,在进行了多项硬件设备的初始化后,默认系统时钟受到影响。
代码补充方面:
需要补充定时器中断触发函数,在进入while之前进行补充
需要补充定时器中断服务回调函数
在tim.c中补全下列代码。
*/ USER CODE BEGIN 1 /
//回调函数,定时器中断服务函数调用
void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef htim)
{
if(htim==(&htim3))
{
HAL_ADC_Start(&hadc1); //开启AD转换
}
}
/ USER CODE END 1 /
主函数中的代码补充
HAL_ADCEx_Calibration_Start(&hadc1);
HAL_ADCEx_Calibration_Start(&hadc1);
HAL_ADC_Start_DMA(&hadc1,uhADCxConvertedValue,6);
补充tim.c中的代码
*void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef htim)
{
if(htim == &htim3)
{
HAL_ADC_Start(&hadc1);
HAL_ADC_Start_DMA(&hadc1,uhADCxConvertedValue, 2);
}
}
最重要的事情:
ADC的采集周期不能使用最小的,因为定时器的频率可能达不到。
而且定时器计数周期不能过小。ADC的外部中断不用开启,定时器3的中断必须开启,这在配置过程中非常重要这点重要性小于以上叙述和定时器计数周期配置。
最重要的ADC设置截图:
定时器计数周期不能太小
最终理想的定时器配置函数:
边栏推荐
- 杰理之开关降噪语音识别没有用【篇】
- 【Harmony OS】【ArkUI】ets开发 图形与动画绘制
- 【Harmony OS】【ARK UI】Lightweight Data Storage
- 【Harmony OS】【ARK UI】公共事件模块
- Still don't know what business intelligence (BI) is?After reading this article, you will understand
- uboot中board_init bi_arch_number在哪
- 杰理之智能充电仓低电发码关机 触摸不开机【篇】
- 【MLT】MLT多媒体框架生产消费架构解析(二)
- php使用phpoffice/phpspreadsheet导入导出excel表格
- MySQL---performance schema
猜你喜欢
随机推荐
leetcode:402. 移掉 K 位数字
C Advanced - Program Compilation (Preprocessing) + Linking
【暑期每日一题】洛谷 P8086 『JROI-5』Music
`数学` 极限, 渐进分析, 近似阶, 线性化, 线性近似, 线性函数
【暑期每日一题】洛谷 P1176 路径计数2
JS-全局dom对象的使用---使用htm样式和js函数动作的完全分离
ELTEK电源维修SMPS5000SIL整流器模块故障分析及特点
【Harmony OS】【ARK UI】Public Event Module
学习笔记--文件夹处理--代码学习
不能提取结果集,SQL [n / a]; org.hibernate.exception.SQLGrammarExcept是嵌套的异常
php write online remote file to temp file
【MLT】MLT多媒体框架生产消费架构解析(二)
A case of missing heritability
[OpenCV] - Find and draw contours
【Harmony OS】【ARK UI】自定义弹窗
【UNR #6 A】面基之路(最短路)
[21天学习挑战赛——内核笔记](四)——内核常见调试手段(printf、dump_stack、devmem)
【Harmony OS】【FAQ】Hongmeng Questions Collection 1
LN论文、五种归一化原理和实现
说明高级语言、汇编语言、机器语言三者的区别,谈谈你对汇编语言的认识。









