发新帖我要提问
12
返回列表
[技术问答]

真的被这个N76E003的串口搞晕了。。

[复制链接]
楼主: gongyuqiu
手机看帖
扫描二维码
随时随地手机跟帖
yuj210| | 2019-4-11 15:33 | 显示全部楼层
我碰到过,把初始化函数改下,直接按波特率设置定时器的初始值,不用它例程里计算的

使用特权

评论回复
JennyJuHX| | 2019-4-11 19:56 | 显示全部楼层
你这个现象有可能是两者的误差偏差不在同一方向导致数据通信失败,用示波器抓取两者的波形对比下看下

使用特权

评论回复
gongyuqiu|  楼主 | 2019-4-11 21:55 | 显示全部楼层
JennyJuHX 发表于 2019-4-11 19:56
你这个现象有可能是两者的误差偏差不在同一方向导致数据通信失败,用示波器抓取两者的波形对比下看下 ...

用示波器看了,原来那块板子波特率没问题,就是收发的数据不对
换了块板子,发送没问题了,换的这块板子接收收不到了。。

使用特权

评论回复
玛尼玛尼哄| | 2019-4-16 00:35 | 显示全部楼层
波特率不要搞太大

使用特权

评论回复
mintspring| | 2019-4-16 00:38 | 显示全部楼层
解决了没

使用特权

评论回复
mintspring| | 2019-4-16 00:39 | 显示全部楼层
好神奇,不知道啥情况。

使用特权

评论回复
operating| | 2019-4-16 16:13 | 显示全部楼层
可能是波特率不匹配,或者干扰导致

使用特权

评论回复
pigluffy| | 2019-4-20 00:51 | 显示全部楼层
gongyuqiu 发表于 2019-4-11 21:55
用示波器看了,原来那块板子波特率没问题,就是收发的数据不对
换了块板子,发送没问题了,换的这块板子 ...


同個程式不同版子就有不同結果,看起來很像內振16MHz所造成的誤差,

這是因為範例有換算上的誤差,只要將範例做修正即可得到正確的baudrate

在這先貼上範例的公式

RH3    = HIBYTE(65536 - (1000000/u32Baudrate)-1);                  /*16 MHz */
//                RL3    = LOBYTE(65536 - (1000000/u32Baudrate)-1);                        /*16 MHz */

以9600來說  經範例的公式換算後會得到FF96  與手冊上的FF98不符,如圖片所示:

如果將換算的誤差修正後應該能解決你的問題
90_2000_550.jpg

使用特权

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

本版积分规则