如何用mscomm32.ocx发送16或10进制数据?

moyo 2003-09-11 03:53:16
thanks
...全文
63 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
moyo 2003-09-25
  • 打赏
  • 举报
回复
谢谢,我搞定了。
moyo 2003-09-25
  • 打赏
  • 举报
回复
《你就直接把10进制数发送出去好了,双方设好波特率、奇偶校验、数据位等
这个控件就有转化的功能。你用超级终端看一下仪器发出来的数就知道是什么格式了>>

直接发送出去当然可以了,可是那样发出去的是以字符,也就是说譬如发送‘123’,下面会收到‘1’、‘2’、‘3’三个数,这样肯定不适合我现在的通信。
moyo 2003-09-25
  • 打赏
  • 举报
回复
另外用二进制发送的程序是如何的?
mittee 2003-09-25
  • 打赏
  • 举报
回复
你就直接把10进制数发送出去好了,双方设好波特率、奇偶校验、数据位等
这个控件就有转化的功能。你用超级终端看一下仪器发出来的数就知道是什么格式了
moyo 2003-09-25
  • 打赏
  • 举报
回复
谁能帮我解答一下,很急的!谢谢
moyo 2003-09-25
  • 打赏
  • 举报
回复
不知道为什么用char()函数的时候,有些数值会不对。譬如:
str_aa=char(129)
ole_1.object.output=str_aa

用串口监控软件发现得到是十六进制:0x4F。本来应该是0x81才对呀!

还请各位帮忙。
xiongxiao 2003-09-12
  • 打赏
  • 举报
回复
试试CHAR()这个函数.
moyo 2003-09-12
  • 打赏
  • 举报
回复
谢谢eaglechou、jerrymao(加菲猫)。
二楼的意思是把待发送的数值譬如十进制数‘65‘转变成‘A‘对吗?
可是从0-255有很多值是不能用文本表示的。那些这么办?
zsqluck790804 2003-09-12
  • 打赏
  • 举报
回复
使用blob()函数把响应的数字或字符转换成二进制,但是blob(123)和blob('123')得到得结果不一样;然后用mscomm32空间得二进制方式发送;
如果需要把得到得二进制串专换成16进制或十进制,需要使用char()函数转换(如果不含汉字,可直接使用string());
eaglechou 2003-09-11
  • 打赏
  • 举报
回复
可以用一个函数将读入的数据转换成
待发送的数制,然后以字符串的形式发送
即可
纳米茶 2003-09-11
  • 打赏
  • 举报
回复
还没有用过,帮你up!关注!

604

社区成员

发帖
与我相关
我的任务
社区描述
PowerBuilder 控件与界面
社区管理员
  • 控件与界面社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧