labview串口接收乱码
labview用的自带的,用单片机发送数据,串口调试助手收到的数据是正常的,labview收到的是乱码,如下:
单片机发送内容:
while(1)
{
SBUF=0x46;
while(!TI);
TI=0;
SBUF=0x46;
while(!TI);
TI=0;
SBUF=120;
while(!TI);
TI=0;
SBUF=121;
while(!TI);
TI=0;
}/***************
**串口发送函数**
***************/
void serial_t(uchar SerialData)
{
SBUF=SerialData; //将数据发送出去
while(TI==0); //检查发送中断标志位
TI=0; //令发送中断标志位为0(软件清零)
}
/******************
***串口数据帧发送***
******************/
void TXD_data_packet()
{
serial_t(170); //发送帧头AA
serial_t(temp_H0); //串口发送0#温度数据高八位
serial_t(temp_L0); //串口发送0#温度数据低八位
serial_t(temp_H1); //串口发送1#温度数据高八位
serial_t(temp_L1); //串口发送1#温度数据低八位
serial_t(temp_H2); //串口发送2#温度数据高八位
serial_t(temp_L2); //串口发送2#温度数据低八位
serial_t(255); //发送帧尾FF
}
当然还有串口配置的初始化程序就不说了。看你的单片机是几位的了,如果是8位的,只能上面那样一个字节一个字节地发。你下位机怎么拆分的,上位机LabVIEW收到后就怎么还原,这个不难。
你这单片机的程序也有问题,起码写得很乱。你发送的应该是数据,就算用串口助手你收到的也只是ascii码对应的字符,我想这应该不是你想要的吧。
我是小白,发送代码是用来测试的。大侠说的对,代码比较乱,调试助手接收的对应的字符。
我把发送代码中的十六进制数据改为十进制的,乱码消失了。
再请问下,怎么把两个字节的数值发给labview?我把两个字节拆分,发送,labview收到后不知道怎么转换了~
感谢感谢!
新建了一个LabVIEW技术起不保守交流群(557572818),欢迎加入一起交流讨论。