RTU数据转发与接收

在硬件上,串口屏的串口已经连接到扩展板上,因此一些串口设备,尤其是MODBUS设备就无法直接接到串口屏上,考虑到STM32还有一个对外的串口,因此串口屏可以通过STM32进行MODBUS RTU数据转发,从而使用扩展板可以控制485设备;

发送RTU数据

语句:

void e1.usend(int bs,int len);
//bs:bin数组句柄
//len:数据的长度

示例:

void demosend()
{   int len;
    int bs;
    str hex= "00 01 02 03 04";  //发送数据
    len=(strlen(hex)+1)/3;
    bs=newbin(16);
    defbin(bs,0,hex);
    e1.usend(bs,len);
    freestr(bs);
}

接收RTU数据

当STM32扩展板收到RTU数据后,会封装一个数据头转发到串口屏,并在串口屏扩展板驱动控件中恢复RTU数据,然后调用recvExtend事件,此时事件中mode=1;bs是传入bin数据的句柄,len是传入数据的长度。


void e1.recvExtend( int mode, int bs, int len){
    int i;
    if(mode == 1){    // 串口接收数据处理
        m1.text="";
        for(i=0;i<len;i++){
            m1.text = m1.text + int2hex(getbin( bs, i),2) + " ";
        }
        m1.text = m1.text + "\r\n";
        m1.rebuild();
    }
}

注意: