打印
[应用相关]

串口打印时数据传输速率被限制

[复制链接]
841|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单次采样的时间计算采样频率。

使用特权

评论回复
5
Stannis| | 2017-2-15 21:47 | 只看该作者
可以采集和打印,采集和存储,分别进行测试,看看两种情况极限值是多少。另外,printf不如原始的串口发送函数效率高。

使用特权

评论回复
6
Brand2| | 2017-2-15 21:56 | 只看该作者
也许senddata时有延时

使用特权

评论回复
7
稳稳の幸福| | 2017-2-15 22:49 | 只看该作者
那个速率是波特率,不是打印速度。。波特率是输出文字时候的参考时间间隙。。

使用特权

评论回复
8
稳稳の幸福| | 2017-2-15 22:49 | 只看该作者
说白了,波特率就好比载波。

使用特权

评论回复
9
huangcunxiake| | 2017-2-16 08:07 | 只看该作者
上面说的确实很贴切,波特率是约束通信规则的。

使用特权

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

本版积分规则

183

主题

849

帖子

1

粉丝