1.串口RS-232发送代码问题
串口RS-232发送代码问题
“商业软件”串口发送和接收数据,源码发送的源码只能是字符串型的代码,设备要收十六进制代码
答案:
1、源码分析
发送字符串型,源码实际是源码一个一个字符发送的,设备也是源码php 源码查询语句一个一个十六进制代码接受的。
应此,源码如果设备端要接收“ ”这样5个字节的源码十六进制代码,软件端发送可以这样,源码
例如发送字符串变量是源码buff:
char *buff[];
buff[0]=0x;
buff[1]=0x;
buff[2]=0x;
buff[3]=0x;
buff[4]=0x;
不幸的是如果要发送“ 5a”这样8个字节的十六进制代码,由于里面含有十六进制(即0x),源码0x字符表示是源码'\0',在字符串中表示的字符串结束。
看你运气了,源码js 小游戏源码如果程序的源码源代码中发送字符串模块,发送字符长度是源码通过判断字符串长度(strlen)来工作的,那你怎么也发送不出“ 5a”这样8个字节的十六进制代码,从上看出
buff[5]=0x;buff[6]=0x;buff[7]=0x5a;时,你的软件会认为字符串长度只有5。只会发送出“ ”这样5个字节的jdk1.6 源码十六进制代码。如果你的软件发送字符长度是根据你输入或设定的,那能正常发送“ 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的多个串口通道(串口不够用多串口卡扩展),系统接线也要调整,酷q 插件源码如果是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、后记
如果你的所谓商业软件要求别人改源代码不切实际,而且商业软件也不复杂,可以找人重写商业软件了,现在做软件外快的人太多了,拿公司软件稍微改改,时间用不了多少,费用也不高,几千吧
2025-01-19 11:591485人浏览
2025-01-19 11:53308人浏览
2025-01-19 11:312312人浏览
2025-01-19 11:182178人浏览
2025-01-19 10:44722人浏览
2025-01-19 10:012456人浏览
10月11日,广西壮族自治区南宁市市场监管局高新分局联合西乡塘区心圩街道科苑社区到科瑞江韵小区开展重阳节保健食品科普宣传进社区活动,普及保健食品相关法律法规和基本常识,提高老年人自我保护、理性消费、依
客户提前还贷是银行不愿看到的现象,在行业里被称作“存贷双降”。 视觉中国/图)豆瓣小组“社畜买房共进会”有二十多万成员,最近讨论最多的不是该不该买房,而是要不要提前还房贷。“无债一身轻啊。”方成把这句
進口蛋爭議延燒,有消息指出,農業部長陳吉仲已經請辭獲准,原訂今17)天下午出席的賴清德選務行程也臨時缺席。對此,行政院沒證實也沒否認,只回應沒有聽到這個消息,若有進一步消息會再和大眾報告,不過根據《台