请问在串口通信中如何将下列16进制数据帧发出?(200)

  • 主题发起人 主题发起人 snowdog
  • 开始时间 开始时间
S

snowdog

Unregistered / Unconfirmed
GUEST, unregistred user!
最近要做一个电机控制器的通讯控制,传输方式如下:波特率:9600二进制编码:8位起始位:1位校验:偶校验停止位:1位错误检测:CRC(循环冗余校验)在通信的时候需要向设备发送16进制的数据帧,例如下面的查询数据帧:03H 03H 00H 01H 00H 03H 55H E9H,其含义如下从机地址 功能代码 寄存器起始地址 寄存器结束地址 校验代码,一共八个字节,我怎么才能把这个数据帧完整发出,是不是先发低字节,再发高字节?我用的是ApdComPort控件,急啊,哪位大侠能帮帮我,或者给我一些参考 我的邮箱是snowdogdlc@163.com,谢谢了
 
发送array of byte自己即可
 
用spcomm/mscomm写就行了。
 
http://www.2ccc.com/article.asp?articleid=3769盒子上就有代码 简单得狠 昨天晚上我刚好看过
 
没用过ApdComPort控件,应该有一个WriteStr(S:string)把参数S转换一下16进制的字符串,StrToHexStr网上搜一下至于高低字节,要看你的通信协议怎么定的
 
直接按二进制发送即可,不可按字符串方式发送!协议约定的是字节,没有高低之分的,按协议约定发送。
 
所有数据的传输都是以二进制的方式传输的,你想发16进制实质上还是发的二进制,你发十进制是一样的。你定义一个BYTE数组就行了.
 
多人接受答案了。
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
D
回复
0
查看
2K
DelphiTeacher的专栏
D
后退
顶部