矿石收音机论坛

 找回密码
 加入会员

QQ登录

只需一步,快速开始

搜索
查看: 1073|回复: 10

STM32自制示波器,TIM控制ADC的几个坑点

[复制链接]
     
发表于 2024-4-2 17:21:44 来自手机 | 显示全部楼层 |阅读模式
想做一个应用,就是用定时器同时触发两个ADC,再通过DMA传输,但是做了好长时间才做好,下面说一些坑点:
1、DMA选择正常模式而不是循环模式,否则会出现数据覆盖的现象。
2、DMA位数设置为WORD,否则双ADC不够用。
3、ADC不能设置为连续模式,否则会不听定时器控制,一直发送数据。
4、每次传输前都必须启动ADC和定时器,否则无法完成转换。
5、debug模式下ADC速率疑似受影响,建议用串口传数据。
6、代码我过几天打包发。

评分

1

查看全部评分

     
发表于 2024-4-2 20:44:48 | 显示全部楼层
本帖最后由 jlfzx 于 2024-4-2 21:27 编辑


楼主做的不错,stm32 ADC +DMA 普通应用还可以,您碰到的问题,我好像没有遇到。

我这个是外部的ADC,不过内部的ADC也用过。


qqqq.JPG
回复 支持 反对

使用道具 举报

     
发表于 2024-4-2 20:56:49 | 显示全部楼层
立创开源广场有个STM32双通道示波器。
回复 支持 反对

使用道具 举报

     
发表于 2024-4-2 21:02:00 | 显示全部楼层
本帖最后由 iffi123 于 2024-4-2 21:07 编辑

这不是坑,本来DMA就是stm32的难点,要掌握好需要研究一番,因为很容易出差错, DMA和中断都具有突发的非顺序执行的特性,所以出了问题排查难度也加大,比如你说的第4点,你不启动定时器怎么给adc提供时钟呢,你不启动adc, 怎么产生dma读取结果的请求,这是基本概念,如果认真看官方的参考手册,这些步骤都有详细的描述

我记得stm32 ADC校准操作会产生一次中断,但官方手册丝毫没提及,是我在调试发现,adc结果出现错位,就是多了1次未预料的中断
回复 支持 反对

使用道具 举报

     
发表于 2024-4-2 21:07:45 | 显示全部楼层
孤独的雨 发表于 2024-4-2 20:56
立创开源广场有个STM32双通道示波器。

玩具级别,实用意义基本没有,作为学习是可以
回复 支持 反对

使用道具 举报

     
发表于 2024-4-2 21:40:57 | 显示全部楼层
建议用at32f403拖两片3PA1030试试。
回复 支持 反对

使用道具 举报

     
发表于 2024-4-3 10:36:42 | 显示全部楼层
如4楼朋友说的,这些不是坑,可能是楼主用的不熟悉。STM32的ADC模式,DMA,想用好需要多下功夫,手册里介绍的比较详细,多用用,自己把这些坑都踩过,也就熟悉了。如果还想升级玩玩,后面加一个双口寄存器,不过这东西现在好像挺贵的
回复 支持 反对

使用道具 举报

     
发表于 2024-4-3 11:11:33 | 显示全部楼层
STM32的内部ADC噪声比较大的,可能不适合做示波器
回复 支持 反对

使用道具 举报

     
 楼主| 发表于 2024-4-3 16:39:03 | 显示全部楼层
链接:http
s://pan
.baidu.com/s/1g8AX85x6qzBEwPTPJ704Uw
提取码:1145
回复 支持 反对

使用道具 举报

     
发表于 2024-4-4 23:48:18 来自手机 | 显示全部楼层
楼主用的stm32是什么型号?我用F103无法扫描同步导致不能稳定显示,用030和070都能同步
回复 支持 反对

使用道具 举报

     
 楼主| 发表于 2024-4-5 09:55:49 来自手机 | 显示全部楼层
aidn 发表于 2024-4-4 23:48
楼主用的stm32是什么型号?我用F103无法扫描同步导致不能稳定显示,用030和070都能同步

RCT6是是是是是是
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 加入会员

本版积分规则

小黑屋|手机版|矿石收音机 ( 蒙ICP备05000029号-1 )

蒙公网安备 15040402000005号

GMT+8, 2024-5-9 05:40

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表