gpt4 book ai didi

c - 通过串行端口发送整数并打印到 LCD

转载 作者:太空宇宙 更新时间:2023-11-03 23:47:03 24 4
gpt4 key购买 nike

我正在尝试通过 USB 串行端口将整数从 MATLAB 发送到 Ardunio Uno,然后将它们显示在 LCD 上。我的问题是 128 到 159 的数字在 Arduino 显示器上显示为 63。

这是我的 MATLAB 代码:

q = serial('COM4'); % set com port location
set(q,'BaudRate',9600); % set baud rate
fopen(q); % open the port
fprintf(q,a_number) % send the integer

这是我的 Arduino 代码:

int incomingByte = 0; // storage for integer
void serialRead () //
{
incomingByte = Serial.read(); // read the serial port
if (Serial.available() > 0) // if there is data print it to LCD
{
lcd.setCursor(0,1); // set the cursor to column 0, line 1
lcd.print("Boot: %");
delay(500);
lcd.setCursor(6,1);
lcd.print(incomingByte,DEC); // print the Integer to the LCD
delay(500);
}
}

除了显示为值 63 的数字 128 到 159 之外,从 0 到 255 的所有数字都正确显示。

更新:我使用串行分析器从我的计算机上测试了串行端口,看起来 MATLAB 负责发送不正确的数据。我单独测试了 Arduino 代码,它运行良好。

最佳答案

解决了这个问题,在我的 MATLAB 代码中添加了以下行来代替 fprintf 行:

fwrite(q,a_number,'uint16','sync');

关于c - 通过串行端口发送整数并打印到 LCD,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30167719/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com