ESP32-Arduino(二) UART-Serial: 人机对话的窗口

上一讲 , 我们通过Arduino对ESP32进行IOT开发进行了探索,也建立了基本的工具链,可以正经干活了, 在开始其他部分之前,先处理两个遗留问题:

1. 如何找到板子的引脚定义?

方法是原理图+对应板子的pins_arduino.h文件映射关系

2. Arduino的C/C++和标准语言相比有哪些特殊特性,又如何正确运用?

最好是花点时间回顾下Arduino的语言参考,对语言特点有个了解:

Arduino Reference - Arduino Reference

最主要就是增加了计算和硬件接口所需的各种库函数,还是值得深究一下的。 

 

然后进入我们这一节的主题,就是串口,串口是人机交互的界面,主要有三类应用方式:

1. 打印输出信息

2. 人机交互接受指令

3. 驱动外设

Arduino串口通信Serial库的函数应用可参考下面的文章

Arduino基础入门篇23—串口通讯 - 简书

 然后我们在上次blink基础上来扩展串口通信能力

2. 1. blink-print, 在1.0blink基础上打印运行状态

/*
blink the led and print the status
*/


// the setup function runs once when you press reset or power the board
void setup() {
  // initialize digital pin LED_BUILTIN as an output.
  pinMode(22, OUTPUT);
  Serial.begin(115200);
}
int loop_count=0;
// the loop function runs over and over again forever
void loop() {
  
  digitalWrite(22, HIGH);   // turn the LED on (HIGH is the voltage level)
  delay(200);                       // wait for a second
  digitalWrite(22, LOW);    // turn the LED off by making the voltage LOW
  delay(200);                       // wait for a second
  Serial.printf("running....%d \n",loop_count);
  loop_count++;
}

下载运行结果

 

2.2 blink-cmd, 通过串口接受命令,并控制led

增加串口读取判断

/*
blink the led by the cmd through Serial read. 

*/


// the setup function runs once when you press reset or power the board
#define led 22
void setup() {
  // initialize digital pin LED_BUILTIN as an output.
  pinMode(led, OUTPUT);
  Serial.begin(115200);
  Serial.println("========2.1BlinkByCmd=====");
  Serial.println("input A for led on, B for led off. ");
}
// the loop function runs over and over again forever
void loop() {
  

 
  
  while (Serial.available()) {
    // get the new byte:
    char inChar = (char)Serial.read();
    if (inChar=='A') {digitalWrite(led,LOW);Serial.println("led on");}
    else if (inChar=='B') {digitalWrite(led,HIGH);Serial.println("led off");}
      // 
    else if(inChar=='\n') break;
    else Serial.println("invalid input.");
   
  }
  
}

下载运行

 例子很简单,但是可以通过练习加深对基础知识点的理解。

  • 1
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

海里的鱼2022

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值