新手求助:做51单片机串口通信遇到的奇怪的问题?
做51单片机串口通信用到了MAX232的芯片。问题是:当PC端向单片机发送数据时,接在P2口的发光二极管低4位能被正常控制,但接在高4位的却无法正常控制,请问下,这是什么问题呢? 确实很奇怪 我觉得调串口好奇怪……我从51往电脑上发,想发0x41,结果电脑上收到一个0xA1……我实在想不通为什么……程序是参考书上的原班人码,MAX232是从网上找的一个电路图焊的,结果就是接收不对,很郁闷…… 串口通信是低位先发,因此容易产生低位接收正确而高位错误,主要原因在于接收时位与位间的延时不精确,有误差,在低传送速率的情况下不严重,但在高速传送时就会产生,尤其是在用IO口模拟串口时,没有办法,慢慢细调延时时间吧! 异步通讯,检查下软件TI位有没有软件清零。 谢谢各位热心的网友,不过我问题已解决了,说起来可笑啊!是晶振用错了。我波特率是用9600的,可晶振是用12M的,在采样的时候,低4位正常,而高4位采样就会出错了。可能2楼同学的问题跟我的一样哦!好好检查 我的晶振是11.0592的,不过现在看两个单片机间通讯是没问题的,所以可能是那块MAX232板子有问题。回头我再弄弄看。 串口接收偶尔出现错误,串口接收错误标志位FE或PE被置1,请问有什么好的办法建议,谢谢
页:
[1]