STM32自制示波器,TIM控制ADC的几个坑点
想做一个应用,就是用定时器同时触发两个ADC,再通过DMA传输,但是做了好长时间才做好,下面说一些坑点:1、DMA选择正常模式而不是循环模式,否则会出现数据覆盖的现象。
2、DMA位数设置为WORD,否则双ADC不够用。
3、ADC不能设置为连续模式,否则会不听定时器控制,一直发送数据。
4、每次传输前都必须启动ADC和定时器,否则无法完成转换。
5、debug模式下ADC速率疑似受影响,建议用串口传数据。
6、代码我过几天打包发。 本帖最后由 jlfzx 于 2024-4-2 21:27 编辑
楼主做的不错,stm32 ADC +DMA 普通应用还可以,您碰到的问题,我好像没有遇到。
我这个是外部的ADC,不过内部的ADC也用过。
立创开源广场有个STM32双通道示波器。
本帖最后由 iffi123 于 2024-4-2 21:07 编辑
这不是坑,本来DMA就是stm32的难点,要掌握好需要研究一番,因为很容易出差错, DMA和中断都具有突发的非顺序执行的特性,所以出了问题排查难度也加大,比如你说的第4点,你不启动定时器怎么给adc提供时钟呢,你不启动adc, 怎么产生dma读取结果的请求,这是基本概念,如果认真看官方的参考手册,这些步骤都有详细的描述
我记得stm32 ADC校准操作会产生一次中断,但官方手册丝毫没提及,是我在调试发现,adc结果出现错位,就是多了1次未预料的中断 孤独的雨 发表于 2024-4-2 20:56
立创开源广场有个STM32双通道示波器。
玩具级别,实用意义基本没有,作为学习是可以 建议用at32f403拖两片3PA1030试试。 如4楼朋友说的,这些不是坑,可能是楼主用的不熟悉。STM32的ADC模式,DMA,想用好需要多下功夫,手册里介绍的比较详细,多用用,自己把这些坑都踩过,也就熟悉了。如果还想升级玩玩,后面加一个双口寄存器,不过这东西现在好像挺贵的:lol STM32的内部ADC噪声比较大的,可能不适合做示波器 链接:http
s://pan
.baidu.com/s/1g8AX85x6qzBEwPTPJ704Uw
提取码:1145 楼主用的stm32是什么型号?我用F103无法扫描同步导致不能稳定显示,用030和070都能同步 aidn 发表于 2024-4-4 23:48
楼主用的stm32是什么型号?我用F103无法扫描同步导致不能稳定显示,用030和070都能同步
RCT6是是是是是是
页:
[1]