Serial port arduino 2字节串行读取

Serial port arduino 2字节串行读取,serial-port,arduino,Serial Port,Arduino,我是编程新手,我需要一些帮助来通过串行读取请求(0x01到msb和0x02到lsb)之后的2个字节(msb/lsb),然后进行数学运算并在2x16显示器上显示。我有我的项目,只使用1字节的工作良好的功能。一个例子: void funcao4() { int MAP; float MAP1; delay(600); lcd.clear(); lcd.setCursor(0,0); lcd.print("MAP[mmHG]"); Serial.write(0x06); //request

我是编程新手,我需要一些帮助来通过串行读取请求(0x01到msb和0x02到lsb)之后的2个字节(msb/lsb),然后进行数学运算并在2x16显示器上显示。我有我的项目,只使用1字节的工作良好的功能。一个例子:

void funcao4()
{ 
 int MAP;
float MAP1;
delay(600);
lcd.clear();
lcd.setCursor(0,0);
lcd.print("MAP[mmHG]");


Serial.write(0x06);  //request

if (Serial.available() > 0) 
{

MAP = Serial.read() ;   //read
MAP1 = (MAP * 2.8759 + 91); //operation

lcd.setCursor(0,1);
lcd.print(MAP1); //display

}
}   

注意。

等待串行缓冲区有两个字节,然后读取它们:

void funcao4()
{ 
 int MAP;
float MAP1;
delay(600);
lcd.clear();
lcd.setCursor(0,0);
lcd.print("MAP[mmHG]");


Serial.write(0x06);  //request

while(Serial.available() < 2); //wait until there are two bytes in the buffer


MAP = Serial.read() << 8 ;   //read MSB into MAP
MAP += Serial.read();        //read LSB into MAP
MAP1 = (MAP * 2.8759 + 91); //operation

lcd.setCursor(0,1);
lcd.print(MAP1); //display


}  
void funcao4()
{ 
int图;
浮动MAP1;
延迟(600);
lcd.clear();
lcd.setCursor(0,0);
lcd.打印(“地图[mmHG]”;
Serial.write(0x06);//请求
while(Serial.available()<2);//等待缓冲区中有两个字节
MAP=Serial.read()
if(Serial.available()>=2)
{

MAP=Serial.read()你能解释一下缩略词代表什么吗?MAP是电子喷射系统(diag)的绝对压力传感器
if (Serial.available() >= 2) 
{
    MAP = Serial.read() << 8;
    MAP |= Serial.read();
}