Serial port Arduino:如何在LCD屏幕上打印串行数据(字符)?
我在Arduino有两部连续剧 串行=以串行方式打印数据字符串(dataRaspi) Serial1=从“Serial1”读取数据并在LCD屏幕上打印出来 这是我的密码Serial port Arduino:如何在LCD屏幕上打印串行数据(字符)?,serial-port,arduino,Serial Port,Arduino,我在Arduino有两部连续剧 串行=以串行方式打印数据字符串(dataRaspi) Serial1=从“Serial1”读取数据并在LCD屏幕上打印出来 这是我的密码 #include <LiquidCrystal.h> LiquidCrystal lcd(52, 50, 48, 46, 44, 42); int byteRead; void setup() { Serial.begin(9600); Serial1.begin(9600); //INTIALI
#include <LiquidCrystal.h>
LiquidCrystal lcd(52, 50, 48, 46, 44, 42);
int byteRead;
void setup()
{
Serial.begin(9600);
Serial1.begin(9600); //INTIALISING THE SERIAL PORT
lcd.begin(16, 2);
}
void loop()
{
**this is listing to print data string to Serial**
dataRaspi = "$" + data_yaw + "|" + data_pitch + "|" + data_roll + "|" + data_lat + "|" + data_lon + "|" + data_airSpd + "|" + data_alt_qnh + "#";
Serial.println(dataRaspi);
delay(1);
**this is listing to read data from Serial1**
if(Serial1.available())
{
while(Serial1.available < 0)
byteRead = Serial1.read;
lcd.print(byteRead);
}
#包括
液晶显示器(52、50、48、46、44、42);
内特比德;
无效设置()
{
Serial.begin(9600);
Serial1.begin(9600);//初始化串行端口
lcd.begin(16,2);
}
void循环()
{
**此列表用于将数据字符串打印到串行**
dataRaspi=“$”+数据偏航+“|”+数据俯仰+“|”+数据横滚+“|”+数据横摇+“|”+数据纵摇+“|”+数据横摇+“|”+数据纵摇+“|”;
Serial.println(dataRaspi);
延迟(1);
**这是从Serial1读取数据的清单**
if(Serial1.available())
{
而(Serial1.0可用<0)
byteRead=Serial1.read;
lcd.打印(byteRead);
}
问题是……
如果我将一系列字符串输入到serial1,如“qwerty”,我的lcd将变为空白。如何将serial1的结果显示到我的lcd显示屏?您的代码有:“while(serial1.available<0)”,即当可用字节数小于0时,while语句将仅控制以下单个语句…您需要:
while (Serial1.available()) {
lcd.print(Serial1.read());
}
首先,您需要确保显示器初始化正常。因此,注释掉串行读取块,并尝试在显示器上打印硬编码字符串 是关于如何使用16x2液晶显示器的示例 如果你发现没有初始化问题,你可以继续改进你的串行读取代码 当您需要不断更新任何显示器上的打印数据时,您需要一个与当前打印数据几乎相似的字符串,否则它将一直闪烁,您将看不到任何内容 示例(伪代码):
打印“时钟:10:31”
打印“时钟:10:32”
打印“时钟:10:33” 等等 这样,在没有“时钟”字符串的情况下,只有时间才会改变。如果需要打印没有共同点的字符串,只需在lcd.print()行之间添加delay(ms),即可看到字符串的变化 我希望这在某种程度上是有用的。继续学习