|
小白我刚接触Arduino开发板,现在手头有一个红外气体传感器五合一(能检测五种气体浓度),传感器的通讯协议如下图:
下面是代码,问题是在串口监视器上接收的数据不正确,而且会有乱码。出错的主要是串口接收函数编写错误,求大神们告知,该如何修改代码!!! - #include<SoftwareSerial.h>
- SoftwareSerial mySerial(2,3); //定义软串口
- String sensor_data = "";
- int spPosition; //截止符的标志
- int mark = 0;
- void setup(){
- Serial.begin(115200);
- mySerial.begin(115200);
- delay(5000);
- mySerial.write("M1\r"); //M1命令启动传感器传输数据
- }
- void loop(){
- while (mySerial.available() > 0) //判断是否有数据
- {
- sensor_data += char(mySerial.read()); //依次读取数据并串成字符串
- delay(1);
- mark = 1;
- }
- if(mark == 1){
- spPosition = sensor_data.indexOf('\r'); //判断截止符的位置
- if((spPosition != -1)){
- Serial.println(sensor_data.substring(0,spPosition)); //打印截止符前的字符串
- sensor_data = sensor_data.substring(spPosition+1,sensor_data.length());
- }
- }
- else{
- if(sensor_data.length() > 0)
- Serial.println(sensor_data);
- sensor_data = ""; //清空字符串,以便下次重新接受数据
- }
- }
复制代码 |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有帐号?注册
x
|