OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 7033|回复: 3

关于ADC采集以及串口通信方面的问题

[复制链接]

85

主题

249

帖子

0

精华

高级会员

Rank: 4

积分
674
金钱
674
注册时间
2020-12-5
在线时间
202 小时
发表于 2021-5-19 11:50:05 | 显示全部楼层 |阅读模式
1金钱
想请教一下:在写一个项目,具体的思路是外部输入信号的上升沿触发中断开启ADC(外部输入的信号大概2khz),ADC每次采集256个数据(采集频率为1mhz)存进DMA定义的数组中。DMA中断里清除中断标志位并给flag赋值为1,并且关闭ADC,等待下一次的外部输入信号来到以后再次开启ADC采集256个数据,如此往复。在主函数main中是如下的语句:不断判断flag是否为1,为1就是DMA缓存区集满了256个数据执行了中断,那么此时就把采集到的256个数据打印到串口。 flag.png
请问:1.这样的话会不会存在一种情况:在主函数中还没打印完256个数据,这个数组已经被新的数据刷新了,这样后面打出来的数据就不是一组独立完整的数据?
2.有没有别的办法将采集到的数据实时的在串口进行显示,只能通过打印的方式吗?

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

4

主题

912

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
4508
金钱
4508
注册时间
2019-9-4
在线时间
914 小时
发表于 2021-5-19 12:00:03 | 显示全部楼层
1、会的,有可能。
2、在串口上显示就是用printf打印了,原理就是重定向了串口发送呀。或者你不打印出来,在LCD显示。
其实你可以等发送完之后再开启DMA呀。
回复

使用道具 举报

85

主题

249

帖子

0

精华

高级会员

Rank: 4

积分
674
金钱
674
注册时间
2020-12-5
在线时间
202 小时
 楼主| 发表于 2021-5-19 14:30:06 | 显示全部楼层
本帖最后由 车嘉炜 于 2021-5-19 14:36 编辑
A571157242 发表于 2021-5-19 12:00
1、会的,有可能。
2、在串口上显示就是用printf打印了,原理就是重定向了串口发送呀。或者你不打印出来, ...

您好,感谢您的回答,因为这个开启DMA是外部输入信号来进行控制的,所以没办法发送完以后再开启,只能由外部输入信号进行控制
回复

使用道具 举报

4

主题

912

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
4508
金钱
4508
注册时间
2019-9-4
在线时间
914 小时
发表于 2021-5-19 14:34:03 | 显示全部楼层
在ptintf之后
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-5-23 18:04

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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