引用: 原帖由 zzbaizhi 于 2011-12-29 09:14 发表 有的人用MSP430 14系列的单片机做这个实验,就是设置的TXBUF0='\n'就没问题,这是为什么呢?
\作为转义字符。
'\n'表示的是一个回车符,你可以用以下方式表示:
TXBUF0 = '\n';
TXBUF0 = 0x0d;
TXBUF0 = 13;
当然,还有二进制00001101b和八进制015。
如果你要发送\r\n,那么,你发送的时候,是两个字符,一个\r和一个\n。
单引号只能表示一个字符,'\r'和'\n'都没有问题。
两个或两个以上字符合一起,就成了字符串,需要用双引号表示"\r\n",如果你用单引号'\r\n'编译器会报错的。
事实上,"\r\n"表示的字符串,默认还包含一个停止符'\0',即它表示'\r'、'\n'和'\0'。
'\0'也是一个转义字符,不是数字0,其ASCII码值为0。
数字0(表示方法:'0')的ACSII码值为0x30。
说多了,你可能反而更晕了。嘿嘿。
记住一个单引号''只能表示一个字符,是一个单字节的数据。
双引号""表示一个字符串,长度不定,可以包含n个字符,长度为n个字节。
反斜杠\用于转义字符,表示的字符查阅ASCII码表。
如果,你要把\r\n发送出去,需要分开发送,因为TXBUF0是单字节的,不能一次发送一个字符串。
先把TXBUF0 = '\r';发送出去,再发送一个TXBUF0 = '\n';。
提出这个问题,楼主应当回顾一下进制的转换问题。二进制、八进制、十进制、十六进制、ASCII码、BCD码……那些知识。
然后弄懂单引号''只能表示一个字符,双引号""表示一个字符串。
最后是TXBUF0的位长问题。
引用: 原帖由 David_Lee 于 2011-12-29 10:39 发表 \作为转义字符。 '\n'表示的是一个回车符,你可以用以下方式表示: TXBUF0 = '\n'; TXBUF0 = 0x0d; TXBUF0 = 13; 当然,还有二进制00001101b和八进制015。 如果你要发送\r\n,那么,你发送的 ...
另外,编程的时候,中英文标点符号的区别也得注意一下。
这些小问题小错误,不容易察觉,但查错耗费的时间可能比其它的错误还多。
‘’不等同于'',“”不等同于"",……
引用: 原帖由 鸵鸟蝈蝈 于 2011-12-29 17:43 发表 我用5438,为了换行就设置了UCA1TXBUF ='\r'和UCA1TXBUF ='\n',但别人用的14系列的就只设置了一句TXBUF0 = '\n',这是为什么?这个就是串口调试软件的问题了。不用纠结这些东西,关键是看看传上来的数据是不是正确 ...
正解,串口调试工具决定的。
你可以用串口调试工具看看接收到的hex值,数据对就行了。
至于换不换行,看你的上位机软件是怎么编写的。
上位机软件的编写,可以参考一下下面的帖子,视频来的,浅显易懂。
C#上位机学习资料