stc12单片机串口通讯问题

在pc串口助手接收选择hex显示的数字是正确的16进制,但是我选择文本模式,为什么不是正常的十进制而是符号,比如选择hex,接收到的是ff,也是我预期想要的,但是选择文本模式,就变成m了。按理说hex显示正常说明我波特率也是对的吧。那文本不能正常显示是什么原因恩?

字符模式只能现实ASCII码规定的符号,其余的是不能显示的。一般在7F以下,之上的一般都是汉字区位码了。单片机要想传送的数据让电脑以数字形式显示可以先转换为BCD码,传送是加30H,就可以了。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2016-10-23
你发送的是字符吗?0xFF也不是ASCII码表里的内容啊追问

void UART_T(unsigned char UART_data)
{
SBUF=UART_data;//将数据发送给上位机
while(TI==0);//检查发送中断标志
TI=0;//软件清零
}我发送的是这个。这样也算字符吗,可是UART_data就是一个数字啊?,那我要发送数字该怎么写

追答

字符模式下,如果你想要显示数字,需要发送对应数字的ASCII编码。
比如想要显示12,那就应该先后发送0x31和0x32。

追问

那有什么公式吗,如果我要发送00~ff的数据,我用不能在软件里一个一个编吧

相似回答