当前位置:网站首页>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设置截图:
定时器计数周期不能太小
最终理想的定时器配置函数:
边栏推荐
猜你喜欢
浙江DAMA-CDGA/CDGP数据治理认证招生简章
P1163 银行贷款
【ManageEngine】网络性能监控工具
详谈归并排序时间复杂度过程推导----软考
2022 High-altitude installation, maintenance, and demolition exam practice questions and mock exams
leetcode:315. 计算右侧小于当前元素的个数
mysql content does not exist error
mysql内容不存在的报错
FastDFS快速使用及介绍
could not extract ResultSet; SQL [n/a]; nested exception is org.hibernate.exception.SQLGrammarExcept
随机推荐
后台登录模块以及验证码登录
软件测试的发展趋势
杰理之播歌曲前后音量大小不一样【篇】
微服务架构基础 微服务相关概念及基础知识 贺兰的微博
ABP中的数据过滤器
存储系统架构演变
uboot中board_init bi_arch_number在哪
[MLT] Analysis of MLT Multimedia Framework Production and Consumption Architecture (2)
[Developers must see] [push kit] Collection of typical problems of push service service 2
What is it like to work at Kuaishou?
【MLT】MLT多媒体框架生产消费架构解析(二)
php write online remote file to temp file
`英语` 2022/8/8
mysql content does not exist error
【暑期每日一题】洛谷 P5729 【深基5.例7】工艺品制作
杰理之一拖二 另一台手机超距 通话会无声【篇】
dsafasfdasfasf
无法通过头文件中的宏定义或全局变量修改动态库中的参数
【暑期每日一题】洛谷 P1048 [NOIP2005 普及组] 采药
Oracle01-安装与卸载