打印

串口编程问题

[复制链接]
1308|4
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
hsbjb|  楼主 | 2012-5-29 15:05 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我使用VC mfc想做一个简单的温湿度读取小串口。温湿度仪是使用的modbus协议写的。
主要代码
void CTestmodDlg::OnOnCommMscomm1()  
{
// TODO: Add your control notification handler code here
VARIANT variant1;//定义VARIANT型变量,用于存放接收到的数据
COleSafeArray safearray;//定义safearray型变量
LONG len,k;//定义长整型变量len,k
BYTE rxdata[6];//定义BYTE型数组
CString stremp1,stremp2;//定义两个字符串  
CString strRXDdata1,trRXDdata2;
if(m_comm1.GetCommEvent()==2) //判断引起OnComm时间的原因
{
//如果是接收到特定个字节数,则读取接收到的数据
variant1 = m_comm1.GetInput();//把接收到的数据存放到VARIANT型变量里
safearray = variant1;//VARIANT型变量转换为ColeSafeArray型变量
len = safearray.GetOneDimSize();  
for(k=0;k<len;k++)
{
safearray.GetElement(&k,rxdata+k); //得到接接收到的数据放到BYTE型数组rxdata里
}
  
BYTE bt = (*(unsigned char*)(rxdata+3)); //读取AD1转换的高字节
BYTE bt1 = (*(unsigned char*)(rxdata+4)); //读取AD1转换的低字节
BYTE bt2 = (*(unsigned char*)(rxdata+5)); //读取AD2转换的高字节
BYTE bt3 = (*(unsigned char*)(rxdata+6)); //读取AD2转换的低字节
stremp1.Format("%d",(bt*256+bt1)/10);//温度读数
stremp2.Format("%d",(bt2*256+bt3)/10);//湿度读数
strRXDdata1 +=stremp1;
  strRXDdata2 +=stremp2;
}
}


void CTestmodDlg::OnButton4()  
{
// TODO: Add your control notification handler code here
  BYTE bytSend[6];//发送字符串  
int i;   
  CByteArray arraySend;  
USHORT num;
  num=GetDlgItemInt(1000);
bytSend[0]=11;
bytSend[1]=4;//使用modbus 04功能
  bytSend[2]=0;//起始高位地址
  bytSend[3]=0;//起始低位地址
  bytSend[4]=0;//寄存器个数高位
bytSend[5]=2;//寄存器个数低位
USHORT CRC=CRC16((UCHAR *)bytSend,6);//CRC校验
// arraySend.RemoveAll();   
arraySend.SetSize(6);   
for(i=0;i<6;i++)   
{   
arraySend.SetAt(i,bytSend[i]); //数据存在arraySend里面了   
}   
   
m_comm1.SetOutput(COleVariant(arraySend));
OnOnCommMscomm1() ;

}

请问在此发送和应答该怎么写?

相关帖子

沙发
无冕之王| | 2012-5-29 15:25 | 只看该作者
google 下 modbus 的协议,再确定你的协议用几号命令

网上应该可以找到相关的代码

使用特权

评论回复
板凳
txcy| | 2012-5-29 15:33 | 只看该作者
搜索‘ModBusPc’看看

使用特权

评论回复
地板
wulala| | 2012-9-16 21:32 | 只看该作者
这个网上还是挺多的,可以直接用源代码的

使用特权

评论回复
5
autor| | 2012-9-18 20:29 | 只看该作者
没有协议不知道怎么弄

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

193

主题

2354

帖子

0

粉丝