labview串口接收乱码

2019-07-17 21:14发布

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;                        }

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
5条回答
hejin515
1楼-- · 2019-07-17 22:12
/***************
**串口发送函数**
***************/
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收到后就怎么还原,这个不难。 最佳答案
hejin515
2楼-- · 2019-07-18 01:12
你这单片机的程序也有问题,起码写得很乱。你发送的应该是数据,就算用串口助手你收到的也只是ascii码对应的字符,我想这应该不是你想要的吧。
whl315
3楼-- · 2019-07-18 06:49
hejin515 发表于 2016-11-9 08:45
你这单片机的程序也有问题,起码写得很乱。你发送的应该是数据,就算用串口助手你收到的也只是ascii码对应的字符,我想这应该不是你想要的吧。

我是小白,发送代码是用来测试的。大侠说的对,代码比较乱,调试助手接收的对应的字符。

我把发送代码中的十六进制数据改为十进制的,乱码消失了。

再请问下,怎么把两个字节的数值发给labview?我把两个字节拆分,发送,labview收到后不知道怎么转换了~
whl315
4楼-- · 2019-07-18 08:09
 精彩回答 2  元偷偷看……
hejin515
5楼-- · 2019-07-18 10:38
whl315 发表于 2016-11-9 20:10
感谢感谢!

新建了一个LabVIEW技术起不保守交流群(557572818),欢迎加入一起交流讨论。

一周热门 更多>