从 c# 接口接收正确整数时出现问题



我正在编写一个动态 C# 接口,以显示我的线路跟随机器人传感器和电机的实时状态。我还向微控制器发送了传感器阈值。

我的代码是:

char uart_rd[10];
unsigned long v;
while (UART1_Data_Ready() == 1) {
  UART1_Read_Text(uart_rd, "", 255);
  delay_ms(1000);
  v = uart_rd;
  UART1_Write_Text(v);
  PORTD = v;
}

我的 C# 发送号码的代码是:

private void sendData()
        {
            Console.WriteLine("sending");
            string Seuil = SeuilVal.Text;
            ComPort.Write(Seuil);           // Send the user's text straight out the port
            Console.WriteLine(Seuil);
            //SeuilVal.Clear();                       //clear screen after sending data
        }

现在我想使用 MikroC 接收阈值。当我发送一个 2 位数字(例如 99(的号码时,事情很好,但是当我发送一个 3 位或更多数字的号码时,我只收到前两位数字(例如我发送 1234,但我收到 12(。

我很

震惊你描述的东西甚至接近工作。v = uart_rd;行将 char 数组的 POINTER 分配给 v 变量,UART1_Write_Textchar *作为输入,而不是ulong

您可能想要做的是将收到的字符串解析为长字符串。您可以使用mikroC stdlib库中的atol来执行此操作。但是,如果您想回显您在 UART 上收到的内容,只需执行UART1_Write_Text(uart_rd);,因为它已经将数据编码为字符串。

相关内容

  • 没有找到相关文章

最新更新