• 9071阅读
  • 9回复

[提问]QT串口通信如何发送char[]数组 [复制链接]

上一主题 下一主题
离线200300969
 

只看楼主 倒序阅读 楼主  发表于: 2014-05-07
现在写了一个串口通信软件,由于单片机要求收到unsigned  char型 也就是8位。

我在上位机上把所有的数据都处理成unsigned char a的数组

比如 a[0]= 14a[1]= 1; a[2]=22;
a[3]=9;
但是串口发送用的是write(QString.toAscii)。

于是我将a 转成QString 这样一来我发送的数据就是922114

请问这样一来单片机能按byte收到字符吗?也就是说能够分辨9,22,1,14,为4个数

如果无法辨别出来 我该如何直接发unsigned char[]数组呢?


同样 如果接收到这么一串数字 QT是放到QByteArray里的  我应该如何区分对应值呢?
离线uidab

只看该作者 1楼 发表于: 2014-05-07
建议你先拿单片机接收一下看看具体数据是什么。
有时候为了工作直接获得答案,而我却失去了思考的乐趣!


飘啊飘,何时能安居!
离线200300969

只看该作者 2楼 发表于: 2014-05-07
回 uidab 的帖子
uidab:建议你先拿单片机接收一下看看具体数据是什么。 (2014-05-07 17:29) 

发送是确定发送char[]数组,请问如何实现?
离线realfan

只看该作者 3楼 发表于: 2014-05-07
实际发的就是二进制流,不要用QString,如果中间有0,会断掉。
可以用write(const char*, qint64 maxSize), 至于是unsigned还是signed是无所谓的,就是给定要发送的数据块首地址,及告之长度就可以了。
也可以把数组放到QByteArray中,用
write(const QByteArray & byteArray)
离线200300969

只看该作者 4楼 发表于: 2014-05-07
回 realfan 的帖子
realfan:实际发的就是二进制流,不要用QString,如果中间有0,会断掉。
可以用write(const char*, qint64 maxSize), 至于是unsigned还是signed是无所谓的,就是给定要发送的数据块首地址,及告之长度就可以了。
也可以把数组放到QByteArray中,用
write(const QByteArray & byteArray .. (2014-05-07 21:32) 

版主大人你用的write(const char*, qint64 maxSize) 里面的char不是指针吗?我新手看不太懂。。

能不能详细说下

还有const QByteArray & byteArray 里面char是放哪的……
离线realfan

只看该作者 5楼 发表于: 2014-05-08
回 200300969 的帖子
200300969:版主大人你用的write(const char*, qint64 maxSize) 里面的char不是指针吗?我新手看不太懂。。
能不能详细说下
....... (2014-05-07 23:17) 

就拿你的数组来说,比如 a[0]= 14a[1]= 1; a[2]=22;
a[3]=9;
可以这样发write((const char*)a, sizeof(a))
或QByteArray ba((const char*)a, sizeof(a));
write(ba);
离线uidab

只看该作者 6楼 发表于: 2014-05-08
回 200300969 的帖子
200300969:发送是确定发送char[]数组,请问如何实现? (2014-05-07 17:46) 

先按照你发送的,然后去接收端,也就是单片机调试那里看一下接收到的数据是什么。
有时候为了工作直接获得答案,而我却失去了思考的乐趣!


飘啊飘,何时能安居!
离线200300969

只看该作者 7楼 发表于: 2014-05-08
回 uidab 的帖子
uidab:先按照你发送的,然后去接收端,也就是单片机调试那里看一下接收到的数据是什么。 (2014-05-08 09:09) 

按我之前的写法是直接发字符 但是我想直接发char数组
离线dbzhang800

只看该作者 8楼 发表于: 2014-05-08
感觉上,你似乎对一些东西理解不太够

比如 "\x11\x22\x33" 与 "112233" ,"\x30\x31\x32" 与 "123" 等
离线自强不吸

只看该作者 9楼 发表于: 2014-05-08
qt有专门的串口类啊
自强不吸!
快速回复
限100 字节
 
上一个 下一个