串口程序不稳定

2019-03-25 08:45发布

请高手支招:我用Cyclone III做串口发送程序,现在用固定值调试,0为起始位,两个停止位,偶尔会出现错误。比如,我把固定值设置为B6,每次发送n个。一次发送了n个B6,但是下一次可能会发送n个3B或n个67。
把这3种可能写成发送码为:B6--0 0110 0101 11
             3B--0 0101 1100 11
             67--0 1110 0110 11

感觉应该是不同步造成的,但是不知道如何修正,请高手支招,谢谢!

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
4条回答
chunyang
1楼-- · 2019-03-25 17:46
< / 你用存储示波器看一下波形和脉冲宽度,很多情况下是波特率误差过大导致的。
hua2002100
2楼-- · 2019-03-25 17:48

应该是波特率不精确,有时候停止位设为1位和两位,连接PC时候都可以通信

eeleader
3楼-- · 2019-03-25 21:55

可以肯定是你的程序设计问题,发送时序出问题,一定要确保每次发送的码元是一个波特率周期的宽度。从你上面的现象看,可能存在下面的问题:

1. 发送时钟精度不够!

2. 发送间隔太短!

3. 发送码元长度不准确。

如果需要详细诊断问题,请贴出你的代码,让大家分析一下!

luyucan001
4楼-- · 2019-03-25 23:10
应该是波特率没同步,将FPGA的计数进行修改,让波特率更精确

一周热门 更多>