有这样一个串口协议:                                       恒温油槽控制器串行数据通讯接口说明书
通讯接口说明:
    本通讯接口采用兼容RS232的RS422接口标准,通过在微机机箱内加装信号转换插卡,使微机能够通过标准RS232串口与恒温油槽控制器实现直接有效的数据通讯。
通讯参数:
    因恒温油槽控制器使用12兆晶振,故与微机通讯使用固定波特率:4,8k
控制器通讯地址:无制冷恒温油糟=0,有制冷恒温油槽=l。通讯地址可以手工修改(SET
键按3秒)。
通讯过程:
一.建立通讯:
       1.微机通过发送1字节内容为目标控制器通讯地址的广播包(控制位RB821地址帧)选择通讯目标。特殊地址#0FFH代表要求全部在线侦听的控制器通讯状态复位。
    2.目标控制器接收到对自己的呼叫后(地址帧数值等于自身通讯地址),会应答5字
       节数据串,内容依次为:本机通讯地址,控制器状态字节(内存单元02DH),连       续2字节其他状态字节,校验字节(前4字节的累加和)。
    3.微机接收到地址应答后,即开始发送数据帧(RB8=0)。对本次应答发送1字节确          认信号。#11H表示情况正常,准各好下一次通讯。#00H表示需要控制器重发前次5字节应答数据包。其他值则表示要求控制器复位通讯状态,重新开始监听地址帧。
二.读取数据:
       1.微机发送5字节请求数据包。格式为:首字节取特定含义的字节数据,#0A1H代表读取1字节内存值,后续1字节为内存单元地址。存#A2H代表读取2字节内存值,后续1字节为目标内存单元地址。当前测量温度值存放单元地址为#0CAH开始2字节,(低字节、高字节),高字节首位为符号位(0正1负),二进制BIN码格式。当前设置温度值存放单元地址为#04BH开始2字节,(低、高),高字节首位为符号位(0正1负),二进制BIN码格式。控制器状态字节地址为02DH,其中第4位为温度控制运行标志,1:开启0:关机。
    2.恒温控制器接收完整并识别后,发送5字节请求的结果。格式为:首字节特定字符#0A1H、内存单元地址、内存值、固定空值#0FFH、前4字节的累加和校验字节。或者为:首字节特定字符#0A2H,内存单元地址,内存值1,内存值2(低字节、高
       字节,二进制BIN码格式),前4字节的累加和校验字节。
    3.微机收到每一组5字节数据包后,必须发送1字节确认信号。#11H表示情况正常,
       准备好下一次通讯。#00H表示需要控制器重发前次5字节应答数据包。其他值则
       表示要求控制器复位通讯状态,重新开始监听地址帧。
  三.错误处理:
        控制器收到5字节数据包若无法识别,将直接返回给微机,由微机判断是否需要复
    位。    我现在第一步已经建立了微机与恒温控制器的联系,下一步我想读取恒温控制器中某些内存的内容,但是不知道怎么发送5个字节的数据包给恒温控制器?
例如:我试了一下  用串口调试器发送:00    恒温控制器应答 00 08 00 12 1A(这时通讯正常)
                  再用串口调试器发送:11    
                  接下来我发送:A2  CA  A2  4B  259(其实我不知道这儿该发送什么东西?)
                    恒温控制器无应答!!!  请问各位,我该发送什么样格式的数据啊? 实在是万分着!!!!!!!!!

解决方案 »

  1.   

    十六进制啊,比如要发送A2  CA  A2  4B  259
    你就这样定义
    byte a[6];a[0]=0xa2;
    a[1]=0xca;
    a[2]=0xa2;
    a[3]=0x4b;
    a[4]=259;
    a[5]=0x00;// 这里把字符串中止
    然后把上面的字符串a发到串口就可以了
      

  2.   

    http site:http://www.gjwtech.com/serialcomm.htm
      

  3.   

    我是用串口调试软件进行调试的,现在最主要的问题是,当通讯建立后我不知道该发送什么样的5个字节的数据包给下微机,关键是:
    1.微机发送5字节请求数据包。格式为:首字节取特定含义的字节数据,#0A1H代表读取1字节内存值,后续1字节为内存单元地址。存#A2H代表读取2字节内存值,后续1字节为目标内存单元地址。当前测量温度值存放单元地址为#0CAH开始2字节,(低字节、高字节),高字节首位为符号位(0正1负),二进制BIN码格式。当前设置温度值存放单元地址为#04BH开始2字节,(低、高),高字节首位为符号位(0正1负),二进制BIN码格式。控制器状态字节地址为02DH,其中第4位为温度控制运行标志,1:开启0:关机。
        这段话我无法理解。
      

  4.   

    不用的字节用FF填充,发
    A2 CA FF FF 6A