NC_Zyang 发表于 2014-4-19 18:46:11

求助,飞思卡尔单片机串口通讯问题。(已解决)

本帖最后由 FSL_TICS_Robin 于 2014-5-4 13:00 编辑

MCU型号:MC9S12XS128
单片机部分用的是UART->485;
PC部分用的是458->串口;


协议 :PC发送0x01 ,MCU返回0x54;
          PC发送0x02 ,MCU返回0x56;
现象:
我用PC只发送0x01时,MCU返回的数据是0x54,协议正常;
我用PC只发送0x02时,MCU返回的数据是0x56,协议正常;
然后我用PC同时发送 0x01 0x02 时,MCU返回的数据是乱码,返回的是0x3F,不同的串口调试软件出现的乱码不一样。
然后我用PC同时发送 0x01 0x02 0x01时,MCU返回的数据是一个乱马+0x54;

发送是用查询方式,
接收用查询和中断两种方式写过,结果都一样。

请各位朋友看看,我的分析是如果发送的是0x01 0x02的话,用查询的方式也应该返回的是 0x54 0x56吧,如果按照顺序执行的话?怎么会出现乱码,而且出现的乱码是由哪里发送的?

FSL_TICS_Robin 发表于 2014-4-21 09:56:56

如果楼主先手动发送0x01,再手动发送0x02能够正确返回的话。就可以去检查程序流程,如果连续收到2字节你的程序会作何反应。

NC_Zyang 发表于 2014-4-22 19:32:32

查出来了,485的问题,当我接收到一个数据然后进入发送的时候会把485占用了,这样后面的数据就出错,所以应该接收完全然后才进行发送。

FSL_TICS_Robin 发表于 2014-4-22 19:42:30

NC_Zyang 发表于 2014-4-22 19:32
查出来了,485的问题,当我接收到一个数据然后进入发送的时候会把485占用了,这样后面的数据就出错,所以应 ...

感谢你与大家分享自己的经验{:biggrin:}
页: [1]
查看完整版本: 求助,飞思卡尔单片机串口通讯问题。(已解决)