我现在在编写串口通信的程序,一开始就遇到了麻烦:
指令格式是这样的,
*************************************************************
位数 定义 说明 实例
0 STX 数据开始 0x02(ASCII码)
1 无关 0x20(ASCII码)
2~5 功能码 4位功能码 “AKON”
6 空格 空格
7/8 Kn 通道 “K0”
*9 空格
*10/11 校验和 校验和 “72”(ASCII码)
9/*12 ETX 数据结束 0x03(ASCII码)
*****************************************************************
注:“AKON”表示“返回测试分析仪K0的瞬时值”
       “*” 表示语句可以在此结束设备只接收ASCII形式,我发送了指令缺执行不了,恳请高手指教。我用的是vc控件mscomm,如果可以的话,给我发个例子,

解决方案 »

  1.   

    这些都没有问题,只是如何发送ACSII码的问题!
      

  2.   

    ASCII码第二位:0x20 与第九位都是空格,将你要发送的数据转为ASCII码即可,参见ASCII Character Codes。用BYTE类型按字节发送。你还可以发送到另个串口,自写自读进行调试。
      

  3.   

    能不能给我发一个用mscomm控件发送ASCII码的例子。[email protected]
      

  4.   

    串口数据位:5-8位,先看你的串口如何设置,贴部分程序。或到MSDN 找 mscomm控件,要做你的事,用Win32 api
    dcb.BaudRate =9600;//
    dcb.ByteSize = 8;
    dcb.Parity = 0;
    dcb.StopBits = 0;
    这样设置才能处理12位数据。