• 7340阅读
  • 2回复

QT 如何读取,处理从单片机串口接收的16进制数据 [复制链接]

上一主题 下一主题
离线wqb_lmkj
 
只看楼主 倒序阅读 楼主  发表于: 2009-11-21
QT 如何读取,处理从单片机串口接收的16进制数据,在QTextEdit 中显示
  QTextEdit 中显示的是UNICODE 码,如何转换?
我用的是Qestserial类能够读到数据,显示的是乱码
离线wqb_lmkj
只看该作者 1楼 发表于: 2009-11-21
void QespTest::receiveMsg()
{
        char buff[20];
        int numBytes;

        numBytes = port->bytesAvailable();
    if(numBytes > 20)
        numBytes = 20;

    int i = port->read(buff, numBytes);
    if (i != -1)
                buff = '\0';
        else
                buff[0] = '\0';
    QString msg=buff ;


        received_msg->setText(msg);  //QTextEdit
        received_msg->ensureCursorVisible();
        }

1:上面的程序可以接收 ASCII 字符 但显示不了16进进制,如何把接收到的一组数据,AA  FF  34  A4 E5 23 C2 存储到一个数组中

2: char buff[20]        代表的是20个字节吗? 接受缓冲区的大小应该设置为多大

3: 接收数据如何实现同步,能用中断方式实现吗?  还是只能用查询方式。
离线dbzhang800

只看该作者 2楼 发表于: 2009-11-21
  1. '\x01'  1  0x01 "01"
  2. '1'  49 0x31 "31"


我想你大概没搞清上面这些东西的区别和联系。
快速回复
限100 字节
 
上一个 下一个