[应用相关] 串口打印时数据传输速率被限制

[复制链接]
1120|8
 楼主| Thorald 发表于 2017-2-15 21:04 | 显示全部楼层 |阅读模式
最近我在做一个用ADC采集高频信号(大概在4K)的程序,芯片用的STM32F103。我是利用定时器触发ADC,并通过DMA传输数据的方式进行采样,最后将采集到的数据直接用串口(波特率为115200)打印出来(同时写入到SD卡)。理论上每秒钟会有8K的数据被写进SD卡,同时由串口打印出来。但是,我在实际的实验中,发现串口的打印速率被限制在116字节/s以下,而且SD卡里面每秒钟写入的数据也只有几十个数据。请问有没有人知道这是为什么呀?
Bjorn 发表于 2017-2-15 21:14 | 显示全部楼层
不做缓存的么?sd卡写数据和串口发数据都要占用很多时间的,确定不会影响采集?
Rollo 发表于 2017-2-15 21:22 | 显示全部楼层
分开做吧,这两条实现都要自己做细致的加工。
Rangar 发表于 2017-2-15 21:37 | 显示全部楼层
串口打印和写SD卡都是耗时间的。频繁的中断会影响串口发送和写SD卡。 不能拿adc单次采样的时间计算采样频率。
Stannis 发表于 2017-2-15 21:47 | 显示全部楼层
可以采集和打印,采集和存储,分别进行测试,看看两种情况极限值是多少。另外,printf不如原始的串口发送函数效率高。
Brand2 发表于 2017-2-15 21:56 | 显示全部楼层
也许senddata时有延时
稳稳の幸福 发表于 2017-2-15 22:49 | 显示全部楼层
那个速率是波特率,不是打印速度。。波特率是输出文字时候的参考时间间隙。。
稳稳の幸福 发表于 2017-2-15 22:49 | 显示全部楼层
说白了,波特率就好比载波。
huangcunxiake 发表于 2017-2-16 08:07 | 显示全部楼层
上面说的确实很贴切,波特率是约束通信规则的。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

183

主题

849

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部