c# - 从 c# 接口接收正确整数的问题
问题描述
我正在编写一个动态 C# 接口来显示我的线跟随机器人传感器和电机的实时状态。我还将传感器阈值发送到微控制器。
我的代码是:
char uart_rd[10];
unsigned long v;
while (UART1_Data_Ready() == 1) {
UART1_Read_Text(uart_rd, "\0", 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_Text
a char *
作为输入,而不是 a ulong
。
您可能想要做的是将收到的字符串解析为 long。您可以使用来自 mikroCatol
的库中的内容来执行此操作。stdlib
但是,如果您想回显您在 UART 上收到的内容,只需执行此操作UART1_Write_Text(uart_rd);
,因为它已经将数据编码为字符串。
推荐阅读
- python - 模块错误:Vscode 中的 Jupyter Notebook 找不到 Numpy 和类似模块
- objective-c - 在 SwiftUI 中用自定义视图替换 TabBar
- d3.js - 使用 d3.line 绘制的路径上的圆角
- azure-devops - Azure DevOps 源获取最新版本的 nuget 包的下载 url 或 symply 下载最新包
- node.js - 由nodejs express部署的Flutter Web应用程序会更改IP
- assembly - 我在这个 MIPS 代码中哪里出错了?
- c# - 以编程方式将图像作为背景的 C# WPF MenuItem
- macos - 将双显示器连接到 mac
- php - 肥皂类在本地主机上正确运行,但不在服务器上运行
- javascript - 如何使用 node.js 将 sql 中的数据放入 html 中的表中