php单片机通讯,C++ActiveX Communications Control 单片机串口通信

使用ActiveX 控件  插入控件:Microsoft Communications Control, version 6.0//为控件添加类

//CMscomm1 m_CMscomm;

//

//初始化串口

OnInitDialog()

m_CMscomm.put_CommPort(1);

if(m_CMscomm.get_PortOpen())

m_CMscomm.put_PortOpen(0);

m_CMscomm.put_PortOpen(1);

m_CMscomm.put_InputMode(1);

static CString str("4800,n,8,1");

m_CMscomm.get_Input();

m_CMscomm.put_RThreshold(1);

m_CMscomm.put_Settings(str);

OnBnClickedButton1() //打开串口

static char ch1[10];

CString str("");

if(m_CMscomm.get_PortOpen())

m_CMscomm.put_PortOpen(false);

m_CMscomm.put_CommPort(3);

m_CMscomm.put_PortOpen(3);

str.Format("打开串口%d成功",3);

if(m_CMscomm.get_PortOpen())

{

MessageBox(str);

}

else

{

MessageBox("不能打串口");

}

为串口控件添加事件

BEGIN_EVENTSINK_MAP(C串口通信Dlg, CDialogEx)

ON_EVENT(C串口通信Dlg, IDC_MSCOMM1, 1, C串口通信Dlg::OnCommMscomm1, VTS_NONE)

END_EVENTSINK_MAP()

//接受串口缓存数据

void C串口通信Dlg::OnCommMscomm1()

{

VARIANT variant_inp;

COleSafeArray safearray_inp;

LONG len,k;

BYTE rxdata[2048];

CString strtemp;

if(m_CMscomm.get_CommEvent()==2)

{

variant_inp=m_CMscomm.get_Input();

safearray_inp=variant_inp;

len=safearray_inp.GetOneDimSize();

for(k=0;k

safearray_inp.GetElement(&k,rxdata+k);

for(k=0;k

{

BYTE bt=*(char*)(rxdata+k);

strtemp.Format("%c",bt);

m_send+=strtemp;

}

}

UpdateData(FALSE);

}

8a99d19f789c40f4a59db281fd5bcb30.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值