• 通过串口(蓝牙WiFi)与Arduino通信


    char BTCOM;                           //定义串口接收的参数值
    int ledpin = A0;                      //定义LED在A2引脚
    unsigned char Uart_i = 0;
    unsigned char Uartbuffer[5];          //定义一个储存指令的数组
    
    /*                 FF 00 00 00 FF  关灯
      Uartbuffer[X] x= 0  1  2  3  4
                       FF 00 01 00 FF  开灯
    */
    
    void Analysis_uartdata()              //定义一个串口指令解析函数
    {
      switch (Uartbuffer[1])              //Uartbuffer[1]为表达式,如果与case的值相等则执行case下的代码
      {
        case 0x00:
          if (Uartbuffer[2] == 0x00)      //判断Uartbuffer[2]是否为00
          {
            digitalWrite(ledpin, LOW);    //置低电平,关闭LED灯
            Serial.println("Turn Off The Led");
          }
          else if (Uartbuffer[2] == 0x01) //判断Uartbuffer[2]是否为01
          {
            digitalWrite(ledpin, HIGH);   //置高电平,打开LED灯
            Serial.println("Turn On The Led");
          }
          break;
        default:
          {
            Serial.println("Input Error!");
          }
      }
    }
    void serialport()
    {
      if (Serial.available() > 0)                   //判断串口缓冲器是否有数据装入
      {
        Uartbuffer[Uart_i++] = Serial.read();       //读取串口,暂存数据
        if (Uart_i == 5)                            //去除包头包尾,获取到中间数据为3个字节,说明此命令格式正确
        {
          Serial.println("Correct format");
          Uart_i = 0;
          if ((Uartbuffer[0] == 0xFF) & (Uartbuffer[4] == 0xFF))  //判断包头包尾是否满足
          {
            Serial.println("open Analysis_uartdata");
            Analysis_uartdata();                                   //执行指令解析函数
          }
        }
      }
    }
    
    //初始化
    void setup()
    {
      pinMode(ledpin, OUTPUT);            //设置LED引脚为输出模式
      digitalWrite(A0, LOW);              //设置A0引脚初始电压为低电平
      Serial.begin(9600);                 //开启串行通信接口并设置通信波特率为9600
    }
    
    //主函数
    void loop()
    {
      serialport();                          //调用serialport函数
    }
  • 相关阅读:
    iOS开发之Socket
    IOS开发之Bug--使用KVC的易错情况
    IOS开发之功能模块--给任意的UIView添加点击事件
    IOS开发之开发者账号遇到的bug
    iOS开发--关于TableViewCell的可视化设置细节
    学习Coding-iOS开源项目日志(四)
    Learn how to Use UIPageViewController in iOS
    关于Storyboard的使用
    学习Coding-iOS开源项目日志(三)
    学习Coding-iOS开源项目日志(二)
  • 原文地址:https://www.cnblogs.com/cxstudypython/p/12586257.html
Copyright © 2020-2023  润新知