关于51单片机的串口程序
时间:10-02
整理:3721RD
点击:
我想知道下面这一段串口程序的作用。主要是printHex这个函数,发送一个字节的数据为什么要先发字符‘0’和'x'?求大神讲解
void usatPutChar(uint8 dat)
{
SBUF = dat;
sendFlay = 1;
while(sendFlay);
}
void printHex(uint8 dat)
{
usatPutChar('0');
usatPutChar('x');
usatPutChar(HexTable[dat >> 4]);
usatPutChar(HexTable[dat & 0x0f]);
}
在C语言中,二级制的前缀是0b,八进制的前缀是0,十六进制的前缀是0x,你这个程序中发送数据前加上0x应该是要告诉接收端,这里发送的数为十六进制数,好让接收端自动识别。
以16进制的形式传输
就是这个意思 假如 10 HEX就是0x0a
发送“0X”,16进制前面都是0x后跟数字。估计是打印16进制数出来
你就记得 你发的其实是字符 。0 x * * 类似这样的 但是想要表达的意思是这是个16进制数据 明白了吗?看看ASCII表
可能是要显示十六进制数据【0x】吧,例如:0xFC等等。
为了使接收端知道所收到的是十六进制的数据,在数据开头加上'0x'
函数名是printHex,意思是输出十六进制,0x是16进制。
你牛,你牛 你是大牛,厉害
知道了,谢谢你啊,我还有个问题想问一问,为什么我调用printHex这个程序向PC端返回数据的时候,PC端只能接收到一个字节呢?
了解了,谢谢你啊,我还有个问题,为什么我调用printHex这个程序向PC端返回数据的时候,PC端只能接收到一个字节呢?
谢谢你啊,了解了,不过我调用该程序的时候为什么PC端只能接收到一个字节呢?
明白了,谢谢你,那这程序其实是把一个字节的数据分成两个字节发送,那怎么我的PC端只能接收到一个字节呢?搞不明白
谢谢你,了解啦
好的,谢谢你
好的,谢谢你了
小编如果有了满意的答案 希望可以选择一个最佳答案哦
谢谢你啦,不过为什么我调用这个程序,但是PC端只能接收到一个字节呢?
好的,我知道啦