1.串口RS-232发送代码问题
串口RS-232发送代码问题
“商业软件”串口发送和接收数据,源码发送的源码只能是字符串型的代码,设备要收十六进制代码
答案:
1、源码分析
发送字符串型,源码实际是源码一个一个字符发送的,设备也是源码电商前端源码一个一个十六进制代码接受的。
应此,源码如果设备端要接收“ ”这样5个字节的源码十六进制代码,软件端发送可以这样,源码
例如发送字符串变量是源码buff:
char *buff[];
buff[0]=0x;
buff[1]=0x;
buff[2]=0x;
buff[3]=0x;
buff[4]=0x;
不幸的是如果要发送“ 5a”这样8个字节的十六进制代码,由于里面含有十六进制(即0x),源码0x字符表示是源码'\0',在字符串中表示的字符串结束。
看你运气了,源码彩虹最新源码程序如果程序的源码源代码中发送字符串模块,发送字符长度是源码通过判断字符串长度(strlen)来工作的,那你怎么也发送不出“ 5a”这样8个字节的十六进制代码,从上看出
buff[5]=0x;buff[6]=0x;buff[7]=0x5a;时,你的软件会认为字符串长度只有5。只会发送出“ ”这样5个字节的周末看影视站源码十六进制代码。如果你的软件发送字符长度是根据你输入或设定的,那能正常发送“ 5a”这样8个字节的十六进制代码。
例如发送字符串变量是buff:
char *buff[];
buff[0]=0x;
buff[1]=0x;
buff[2]=0x;
buff[3]=0x;
buff[4]=0x;
buff[5]=0x;
buff[6]=0x;
buff[7]=0x5a;
2、解决办法(不该源代码的情况下)
做个中间件,需要用到PC的多个串口通道(串口不够用多串口卡扩展),系统接线也要调整,安卓 直播软件 源码如果是1对1(一套软件对一个设备)
例如:软件是用com1口发送接收,原来是直接com1口接设备,现在改成,com1口接com2口,com2口同时也接设备(注意RS是可以三线通讯的,PC端com1口的雷达对抗侦察距离 源码2脚接com2口的3脚,com2口的3脚接设备的2脚,PC端com1口的3脚接com2口的2脚,com2口的2脚接设备的3脚,PC端com1口的5脚接com2口的5脚,接设备的5脚),这样做的原理是通过com2口来正确发送给设备十六进制代码。并且com1向com2发送的命令需要修改。例如
要发送“ 5a”这样8个字节的十六进制代码,软件这端
发送字符串变量是buff:
char *buff[];
buff[0]=0x;
buff[1]=0x;
buff[2]=0x;
buff[3]=0x;
buff[4]=0x;
buff[5]=0xee;
buff[6]=0xff;
buff[7]=0xee;
buff[8]=0xff;
buff[9]=0x5a;
com2口中间件收到“ ee ff ee ff 5a”这样个字节的十六进制代码,他就会进行转换(0xee表示下个字节需要转码,转码方法是减去0xff,那0xff实际就是0x。)这样通过中间件在com2口向设备发送“ 5a”这样8个字节的十六进制代码。
以上是发送,如果接收呢,同样看商业软件的接受机制,如果商业软件收到0x,实际就是'\0',表示一个字符串接受终止,那么接收数据怎么整都不能正常收到“ 5a”这样8个字节的十六进制代码(含0x),那么只有改写源代码一种方法。
3、后记
如果你的所谓商业软件要求别人改源代码不切实际,而且商业软件也不复杂,可以找人重写商业软件了,现在做软件外快的人太多了,拿公司软件稍微改改,时间用不了多少,费用也不高,几千吧
2024-12-22 23:562706人浏览
2024-12-22 23:17612人浏览
2024-12-22 23:132330人浏览
2024-12-22 23:06302人浏览
2024-12-22 22:151987人浏览
2024-12-22 21:592416人浏览
中国消费者报杭州讯(记者郑铁峰)新型冠状病毒感染的肺炎疫情爆发期间,针对口罩、温度计、消毒液、抗病毒药品等防疫用品需求激增可能导致部分经营者趁机乱涨价,粮油肉禽蛋菜奶等食品及生活日用品价格可能出现波动
1.linqpad Դ??2.软件å¼åå·¥å ·linqpad Դ?? WebMatrix,由Microsoft提供的免费Web开发工具,集成了一切开发网站所需。无需从头开始,可
1.模板兔(modown)主题设置教程2.å®è ¾supplicant3.2.2è½ç ´è§£å3.å¦ä½ç³è¯·ä¸ä¸ªç½ç«模板兔(modown)主题设置教程