打印

串口波特率115200,上位机发10Hz正弦波,下位机高频?

[复制链接]
2266|8
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
huangzj1234|  楼主 | 2012-12-6 15:45 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
STM32串口,中断方式,
上位机循环发送10Hz正弦波数据文件,4000点,
fscanf读取,serial comm发完再从头发,
下位机接受明显很密

2012-12-6 15:27 上传
下载附件 (8.29 KB)




2012-12-6 15:28 上传
下载附件 (130.6 KB)




2012-12-6 15:28 上传
下载附件 (132.61 KB)




2012-12-6 15:28 上传
下载附件 (186.04 KB)






沙发
huangzj1234|  楼主 | 2012-12-7 18:08 | 只看该作者
是这样的
我的原始数据用的是相当250Hz采样生成的
但是用115200波特率发到下位机 就这个鸟样子
这是昨天的情况

后来我反推 要么降低波特率 要么提高采样率
波特率设成别的 还开机不正常
我就插值增点
按比例增到4000Hz 波形对了
但这4KHz的采样率 真实环境 不好得
还是默认到250Hz吧

但是又有新问题 昨天我没有发现数据个数对不对
今天拿秒表测 一分钟收到2100个点 每点2字节+包头2字节
不画图也才2700~2800点
这个用真实环境 按250Hz算 一分钟250 x 60 = 15000点 显然不够

换成用DMA缓冲接收方式 缓冲8K够大了吧
不画图也才 一分钟3600点
这啥鸟意思啊
波特率115200 / 4 = 28800 够用啊
换成更高的波特率256000 不能收 发的是乱码
啥玩意儿?

使用特权

评论回复
板凳
huangzj1234|  楼主 | 2012-12-7 18:08 | 只看该作者
是不是跟内部晶振或固有延时有关?

STM32F103 72M主频

真费劲

使用特权

评论回复
地板
uet_cache| | 2012-12-7 18:15 | 只看该作者
你是一边画波形一边接收数据吧。你要考虑LCD操作影响时间的。你可以一帧数据接收完扣,再画波形试试。按理,115200的速度是可以正常接收的。我以前试过这个速度是没问题的。应该跟你程序有关吧。我觉得主要得保证接收到的数据完整,且正确才行。

使用特权

评论回复
5
huangzj1234|  楼主 | 2012-12-7 19:45 | 只看该作者
不画图
一分钟 3600个点
好像我把缓冲设为1024大小 有4000点
更小或更大 都是3600点
什么怪现象?

使用特权

评论回复
6
huangzj1234|  楼主 | 2012-12-7 19:57 | 只看该作者
这机子 除了115200就不正常
服了

使用特权

评论回复
7
huangzj1234|  楼主 | 2012-12-7 21:41 | 只看该作者
搞混了

115200/4 = 28800/8 = 3600

还真是极限只有3600点

据说能上到4.5M的波特率 也不知是真是假

15000 x 4 x 8 = 480000 单片机能支持这个以上的吗?

使用特权

评论回复
8
pattywu| | 2012-12-7 22:26 | 只看该作者
用DMA的话,我试过,72MHz主频,可以到8Mbps的波特率。

使用特权

评论回复
9
huangzj1234|  楼主 | 2012-12-8 23:24 | 只看该作者
搞几天 总算搞明白
与PC机连是USB转RS232方式,他这个RS232又是个USB1.1的
PC机最大好像也就256000 只能发但收不了
这个U转串最大也就115200
我还挺辛苦的把数据压缩 合并冗余
极限也就5700个点 离理论值115200/8 = 14400/2 = 7200差的多了

算了不搞这种方式了
外设有个无线接收 估计也好不到哪里去
直接用SD卡存读得了
真费劲

使用特权

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

本版积分规则

个人签名:数值动力(北京) http://www.math86.com

3

主题

26

帖子

0

粉丝