huangzj1234 发表于 2012-12-6 15:38

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

本帖最后由 huangzj1234 于 2012-12-6 16:15 编辑


STM32串口,中断方式,
上位机循环发送10Hz正弦波数据文件,4000点,
fscanf读取,serial comm发完再从头发,
下位机接受明显很密
https://bbs.21ic.com/data/attachment/forum/201212/06/152745j31xzbkq5k59i4zk.gif
2012-12-6 15:27 上传
下载附件 (8.29 KB)



https://bbs.21ic.com/data/attachment/forum/201212/06/152847kkx4aarx4dddjwpt.jpg
2012-12-6 15:28 上传
下载附件 (130.6 KB)



https://bbs.21ic.com/data/attachment/forum/201212/06/1528503tiro5i55i2i3cro.jpg
2012-12-6 15:28 上传
下载附件 (132.61 KB)



https://bbs.21ic.com/data/attachment/forum/201212/06/152853gwh6whtwqf6qtwou.jpg
2012-12-6 15:28 上传
下载附件 (186.04 KB)








huangzj1234 发表于 2012-12-7 18:02

是这样的
我的原始数据用的是相当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:06

是不是跟内部晶振或固有延时有关?

STM32F103 72M主频

真费劲

lirunze 发表于 2012-12-7 18:37

这是做示波器吗

huangzj1234 发表于 2012-12-7 19:56

不是 是验证一些产品开发的算法
但 数据接收怎么有问题
单片机 什么破玩意
都不想在这种上面画太多时间了

不画图
一分钟3600个点
好像我把缓冲大小设为1024就有4000点
更大或更小 都是3600点
这机子除了115200就不正常
什么怪现象?

huangzj1234 发表于 2012-12-7 21:40

搞混了

115200/4 = 28800/8 = 3600

还真是极限只有3600点

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

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

huangzj1234 发表于 2012-12-8 23:25

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

算了不搞这种方式了
外设有个无线接收 估计也好不到哪里去
直接用SD卡存读得了
真费劲
页: [1]
查看完整版本: 串口波特率115200,上位机发10Hz正弦波,下位机高频?