350814 发表于 2009-7-30 20:19:29

新手求助:做51单片机串口通信遇到的奇怪的问题?

做51单片机串口通信用到了MAX232的芯片。问题是:当PC端向单片机发送数据时,接在P2口的发光二极管低4位能被正常控制,但接在高4位的却无法正常控制,请问下,这是什么问题呢?

285915046 发表于 2009-7-31 17:37:38

确实很奇怪

SkyKing_ATbj 发表于 2009-7-31 23:42:17

我觉得调串口好奇怪……我从51往电脑上发,想发0x41,结果电脑上收到一个0xA1……我实在想不通为什么……
程序是参考书上的原班人码,MAX232是从网上找的一个电路图焊的,结果就是接收不对,很郁闷……

zhuxm 发表于 2009-8-1 09:49:42

串口通信是低位先发,因此容易产生低位接收正确而高位错误,主要原因在于接收时位与位间的延时不精确,有误差,在低传送速率的情况下不严重,但在高速传送时就会产生,尤其是在用IO口模拟串口时,没有办法,慢慢细调延时时间吧!

yf820625 发表于 2009-8-1 10:02:55

异步通讯,检查下软件TI位有没有软件清零。

350814 发表于 2009-8-1 23:18:36

谢谢各位热心的网友,不过我问题已解决了,说起来可笑啊!是晶振用错了。我波特率是用9600的,可晶振是用12M的,在采样的时候,低4位正常,而高4位采样就会出错了。可能2楼同学的问题跟我的一样哦!好好检查

SkyKing_ATbj 发表于 2009-8-2 14:16:12

我的晶振是11.0592的,不过现在看两个单片机间通讯是没问题的,所以可能是那块MAX232板子有问题。回头我再弄弄看。

siquche 发表于 2014-11-6 16:50:33

串口接收偶尔出现错误,串口接收错误标志位FE或PE被置1,请问有什么好的办法建议,谢谢
页: [1]
查看完整版本: 新手求助:做51单片机串口通信遇到的奇怪的问题?