VB.net发送带有不需要的" 0x3的十六进制代码。"。 AVR8535上的十六进制

时间:2014-11-11 05:38:02

标签: vb.net serial-port avr

我有一个VB.Net serialport.Write()函数的问题,看起来它发送的代码是"前缀"使用0x3 ..所以,当我试图发送" 1"它会显示在LED 00110001或0x31上,然后是" 2"将显示00110010。

serialport.Open()
serialport.Write(1)

虽然下面的AVR代码显示了它收到的内容:

while(1)
{
    while(!ucsra.7)
    {
        data=UDR;
        PORTC=data;
        PORTB=data;
    }
}

从CvAVR终端

发送时显示正确的值

所以,如果有人知道它有什么问题,请帮帮我

1 个答案:

答案 0 :(得分:1)

我认为这是因为你在串口上写String个值,例如ASCII Table中的1等于0x31,我相信它解释了症状

要解决此问题,您应该将数据发送为Byte值,在此我将字符串转换为Byte进行演示。

    Dim v = "1"
    Dim buffer(0) As Byte
    buffer(0) = CByte(v)

    serialport.Write(buffer, 0, 1)