苹果系统和WINDOWS系统ENTER键的区别(关于串口通信中的回车换行的问题)

我用单片机做了个板子,通过串口和电脑通信,我的单片机上的串口程序是采用CR也就是0X0D来识别接受数据结束标志,我用一般的PC机(WINDOWS系统)上的超级终端和单片机通信时能正常首发数据,没有任何问题,但是换成苹果电脑(电脑上也是苹果的MAC系统)和我的单片机通信,(用的串口助手是coolterm,terminal选项中的enter key emulation选项我选的是CR+LF),这时单片机就不能正常通信了(不过偶尔又会正常接收),然后我把enter key emulation选项改成CR后,又能正常通信了;然后我又在普通PC用coolterm和单片机通信,选择CR+LF时通信时好时坏,选CR时就正常;然后我又把单片机上的接收结束标志换成CR+LF,这样我再coolterm上选择CR+LF后就能正常通信了,而选成CR后就不能正常通信,请问这是为什么????我感觉好像就是CR+LF和CR的区别,但是我又不能理解的是,在单片机上采用CR表示接收结束时,就算coolterm上选的CR+LF,但是毕竟包含了CR,按道理说单片机上也会识别到CR啊,又怎么会通信不正常呢???请大神指教,谢谢!!!!!

Linux系的为CR,Windows系的为CR+LF,具体的单片机是什么,要看你的单片机是如何定义的,可以用串口软件测试一下,例如格西烽火等。

追问

单片机是8051的单片机,我自己写的串口通信程序,我自己定义识别数据接收结束的标志,就是CR或CR+LF, 当我只用CR的时候,就算串口助手上面用CR+LF作为结束的话,那么这个结束标志里面也包含了CR的,单片机这边照样能识别到CR这个结束信号啊,为什么为时好时坏呢?
另外苹果系统的ENTER键和WINDOWS系统的ENTER键ASCII码有什么区别呢?

温馨提示:答案为网友推荐,仅供参考
相似回答