通过串口发送整数并打印到LCD

时间:2015-05-11 12:30:55

标签: c matlab serial-port arduino lcd

我试图通过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代码,它运行得很好。

1 个答案:

答案 0 :(得分:1)

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

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