Ubuntu 17.04编译串口发送16进制数据包报了个神奇的错误—续
来源:互联网 发布:怎么联系淘宝卖家 编辑:程序博客网 时间:2024/06/08 21:16
根据上篇文章的说明,我已经发现在Linux系统的串口通信中,发送的16进制数据包中当有大于一定值的情况时,在Clion 中编译就会报错(该编译器属于Qt 5.8 MingW )的现象。经过自己一番尝试和查找,已经解决了编译报错的情况。
请看以下代码:
char data[9] = {0x11,0x22,0x33,0x11,0x22,0x33,0x11,0x22,(char)0x88};为什么这样就可以编译通过,目前我也不是很清楚,只是认为对于以上的数据构成情况时,可能其数据类型有默认的类型,因而导致报错。
error: narrowing conversion of ‘136’ from ‘int’ to ‘char’ inside { } [-Wnarrowing]
但是,我又发现了一个新的问题。
原来我以为当要发送的16进制数据包中,一旦前半位有大于等于8时,就会编译报错。但是我后来又尝试了其他的情况,最终发现
1. 当发送数组中的数据属于这种样式时,编译会报错(0x80,0x90,0xA0...): narrowing conversion of data from ‘int’ to ‘char’ inside { } [-Wnarrowing]
2. 当发送数组中的数据属于这种样式时,编译就不会报错(0x08,0x08,0x0A...)
3. 当发送数组中的数据符合第一种情况时,将char 数组写成以下格式便可编译通过:char data[9] = {0x11,0x22,0x33,0x11,0x22,0x33,0x11,0x22,(char)0x88};
因此,我认为编译器报错很可能和16进制数据的最高位数有关(这可能和我的串口属性配置有关)。
具体的,还在研究中。。。
若有兴趣的话,欢迎大家一起来交流学习。
阅读全文
0 0
- Ubuntu 17.04编译串口发送16进制数据包报了个神奇的错误
- Ubuntu 17.04编译串口发送16进制数据包报了个神奇的错误—续
- Python3 串口接收与发送16进制数据包
- 串口通信数据发送--字符发送和16进制发送--发送字节的间隔时间
- nRF24LE1 串口调试成功 发送数据包
- QT串口发送错误
- 串口网口16进制发送的和ASCII发送的区别
- 串口发送16进制数据
- 怎么把一个结构体的数据包通过串口发送出去?
- 神奇的编译原理
- 一份发送数据包的源代码
- 发送超过1500的数据包
- virtio-netdev 数据包的发送
- ip数据包的发送流程
- 一个数据包发送的旅程
- 神奇的'asdf;'错误
- PDU编码的短信终于通过串口成功发送了
- 读取arm串口时读到了发送的数据
- 链表中环的入口点
- 深入理解java泛型
- 详细图解如何注册 Navicat for Mysql 11.0.17 企业版(Win7 64bit)
- Adding new nodes to GI
- volatile和Cache一致性协议之MESI
- Ubuntu 17.04编译串口发送16进制数据包报了个神奇的错误—续
- Android IntentService 可执行耗时任务的Service
- HDU2034 人见人爱A-B
- 重要的Attach
- Fork/Join框架的简单学习和简单demo
- php文件下载
- 完美的代价
- 安装node.js之后的操作
- phpstorm:如何设置代码自动换行