0

我想使用 C# 接口将字符串从 mikroC pro 发送到 PC。我的代码是:

void main()
{
    while (1) 
    {
        if (UART1_Data_Ready())
        {
            UART1_Write_Text("mikroC");
            Delay_ms(1000);
        }
    }
}

但是当在 C# 中接收到时,它第一次返回整个字符串,然后返回它的片段,就像它首先发送'm'然后发送'ikroC'。等等,因为我的 C# 代码是:

private void serialPort1_DataReceived(object sender, System.IO.Ports.SerialDataReceivedEventArgs e)
{
     MessageBox.Show(serialPort1.ReadExisting().ToString());
}
4

1 回答 1

0

MSDN 文档说:DataReceived 事件不保证为接收到的每个字节引发。使用SerialPort.BytesToRead属性确定缓冲区中还有多少数据要读取。有关详细信息,请参阅此MSDN 文章

于 2012-05-29T20:07:56.153 回答