给串口发送16进制的数该怎么办啊?

mitebcb 2006-05-13 09:07:50
MSComm控件的Input和Output属性在Object Inspector中是看不到的,而且在C++Builder环境下这两个属性已不在是VB、VC中的原类型,而是OleVariant类型,也就是Ole万能变量,这就需要我们在发送接收数据时要把数据转换成Ole类型。

void __fastcall TForm1::Button3Click(TObject *Sender) file://发送Memo2中的数据
{
MSComm1->Output=StringToOleStr(Memo2->Text); file://把AnsiString型转化成//Ole形式。
}

我想给串口发送16进制的数该怎么办啊?比如:A0 00 01 11 00 FF FE
我刚学串口不懂这些,希望大家帮忙!
...全文
341 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
yz20050510 2006-05-17
  • 打赏
  • 举报
回复
先把数据存放在一个数组中,然后发送就可以!
dongdongnidenao 2006-05-16
  • 打赏
  • 举报
回复
唉,楼主不厚道,不结贴呢?
dongdongnidenao 2006-05-14
  • 打赏
  • 举报
回复
如果这样的话,你要定义给一个unsigned char数组了
比如
unsigned char sndbuff[5];
sndbuff[0]=0XA0;
sndbuff[1]=0X00;
sndbuff[2]=0X01;
sndbuff[3]=0XFF;
sndbuff[4]=0xEE;
OleVariant txbuff;
txbuff=VarArrayCreate(OPENARRAY(int,(0,4)),varByte);
for(int i=0;i<5;i++)
txbuff.PutElement(sndbuff[i],i);
MSComm1->Output=txbuff;
这样就能发送了
你可以直接用我的代码呵呵

1,317

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder 网络及通讯开发
社区管理员
  • 网络及通讯开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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