Ubuntu 17.04编译串口发送16进制数据包报了个神奇的错误—续
2017-08-14 17:43
288 查看
根据上篇文章的说明,我已经发现在Linux系统的串口通信中,发送的16进制数据包中当有大于一定值的情况时,在Clion 中编译就会报错(该编译器属于Qt 5.8 MingW )的现象。经过自己一番尝试和查找,已经解决了编译报错的情况。
请看以下代码:
为什么这样就可以编译通过,目前我也不是很清楚,只是认为对于以上的数据构成情况时,可能其数据类型有默认的类型,因而导致报错。
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进制数据的最高位数有关(这可能和我的串口属性配置有关)。
具体的,还在研究中。。。
若有兴趣的话,欢迎大家一起来交流学习。
请看以下代码:
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进制数据的最高位数有关(这可能和我的串口属性配置有关)。
具体的,还在研究中。。。
若有兴趣的话,欢迎大家一起来交流学习。
相关文章推荐
- Ubuntu 17.04编译串口发送16进制数据包报了个神奇的错误
- Python3 串口接收与发送16进制数据包
- Ubuntu 12.04.1 OK335xS busybox-1.24.1 文件系统编译错误及解决方案
- 记录几种ubuntu下android编译错误解决方法
- ubuntu17.04编译Tiny4412 Android5.0源代码
- keil编译的程序 “汉字显示不全、串口发送汉字接收后乱码缺失”问题
- 在64位ubuntu上编译kitkat4.4时遇到HashSet_jni.h错误导致编译中止的问题
- 在ubuntu下编译linux版客户端遇__GNUC_PREREQ编译错误的解决方法
- ubuntu16.04 编译android 源码出现的错误
- opencv在Ubuntu下的编译及错误汇总
- Ubuntu 12.04编译mt6582错误 - Tracy Mcgrady的专栏 - 博客频道 - CSDN.NET awk: line 4: function strtonum never def
- Ubuntu16.05+CUDA8下编译OpenCV错误 [...cuda_compile_generated_gpu_mat.cu.o] Error 1
- ubuntu环境编译pcl错误解决方案
- Ubuntu 13.04 编译环境配置及android 2.3 源代码编译时出现了以下错误 setrlimitsFromArray
- ubuntu14.04下 openosom svn762 backfire_10.03 编译错误问题修正
- MySQL++ gcc4.6.1 Ubuntu编译错误解决
- ubuntu14.04下编译busybox出现fatal error: curses.h: 没有那个文件或目录错误
- ubuntu 编译内核时出的错误
- 64bit ubuntu14.04编译PlatinumKit出现的arm-linux-androideabi-g++: not found错误解决方法
- STM32F4学习笔记5——stm32串口发送数据最高位错误问题