打印
[STM32F3]

STM32F103C8T6----ADC+DMA+串口显示

[复制链接]
342|2
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
g36xcv|  楼主 | 2022-11-23 10:17 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
AD, ADC, DM, DMA, ST
引言:在进行ADC转换时,如果只采集一个IO的转换,那转换后的数据将会存储在数据寄存器,每转换一次,数据寄存器就被新来的数据覆盖,因此,只进行一个通道转换是没问题的。但如果是多通道转换呢?数据寄存器只会保存最后一个通道转换的数据,因为前面都被覆盖了,串口上所有通道显示的电压值也全是最后一个通道的AD转换数据。所以,DMA传输横空出世了,它的作用是在ADC第一个通道转换完成后第一时间将数据转运出来,防止被下一个通道转运的数据覆盖,把转运后的数据存在一个和通道数数目一样的数组里面就好了,这样,就能第一时间把所有通道数据保留在数组里面,然后用串口一一显示。


使用特权

评论回复
沙发
g36xcv|  楼主 | 2022-11-23 10:17 | 只看该作者
  那么啥是DMA呢?就好比你在学校里面自己写作业自己交,CPU就相当于你自己,你不但要自己写作业,还要自己去交,是不是很费时间呢,如果学委帮你把作业去交,你就能省出时间去做更多有意义的事情,学委就好比DMA。总的来说,CPU无时无刻的在进行数据之间的运算、存储、传输,DMA的出现能帮助CPU传输数据,减少CPU的负担。

使用特权

评论回复
板凳
g36xcv|  楼主 | 2022-11-23 10:19 | 只看该作者
电压转换公式:V=AD转换值/4095*3.3

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

24

主题

216

帖子

0

粉丝