VC下用CSerialPort类进行串口编程

2025-04-09 11:38:17
推荐回答(1个)
回答1:

serialPort.Read这个函数用不起???还是不起作用


帧嘛


定义一个 BYTE buffer[1+64+1]; 也就是 buffer[66];

再定义一个int bufferLength = 0;

OnCommunication(...)中
{
    if (0 == bufferLength) // 帧头还未接收
    {
        if (0xAF != ch) // 不是帧头
            return; // 返回
    }

    if (65 == bufferLength) // 帧尾还未接收
    {
        if (0xFA != ch) // 不是帧尾
        {
            bufferLength = 0; // 丢弃已经接收的数据,重置缓冲区有效数据长度为零
            return; // 返回
        }
    }

    // 要实时显示接收到的 ch ,在这里添加代码即可
    
    buffer[bufferLength] = ch;
    bufferLength++;

    if (66 == bufferLength)
    {
        // 一帧已经接收完毕,数据在 buffer 中
        bufferLength = 0; // 取出帧后,重置缓冲区有效数据长度为零
    }
}