一. 开发板介绍
1. ESP8266 CP2102物联网模块
NodeMCU板载ESP-12E(4MBFlash) WIFI模组和USB转TTL串口(CP2102/CH340)芯片,方便下载固件和调试, NodeMCU默认为Lua固件,如需使用AT指令,请下载新的AT固件。开发板核心处理器ESP8266在较小尺寸封装中集成了业界领先的TensilicaL106超低功耗32位微型MCU,带有16位精简模式,主频支持80MHz和160MHz,支持RTOS,集成Wi-FiMAC/B/RF/PA/LNA,板载天线。支持标准的IEEE802.11b/g/n协议,完整的TCP/IP协议栈。用户可以使用该模块为现有的设备添加联网功能,也可以构建独立的网络控制器。
ESP8266是高性能无线SOC,以最低成本提供最大实用性, 为WiFi功能嵌入其他系统提供无限可能。
802.11 b/g/n
内置TensilicaL106超低功耗32位微型MCU,主频支持80MHz和160MHz,支持RTOS
160KB SRAM(64KB lRAM+96KB DRAM)
内置10bit高精度ADC
内置TCP/IP协议栈
内置TR开关、balun、LNA、功率放大器和匹配网络内置PLL、稳压器和电源管理组件, 802.11b模式下+20dBm的输出功率
A-MPDU、A-MSDU的聚合和0.4s的保护间隔
WiFi@2.4GHz,支持WPA/WPA2安全模式
支持AT远程升级及云端OTA升级
支持STA/AP/STA+AP工作模式
支持Smart Config功能(包括Android和ios设备)
HSPI、UART、I2C、12S、IRRemote Control、PWM、GPIO深度睡眠保持电流为10uA,关断电流小于5uA
2ms之内唤醒、连接并传递数据包
支持Smart Config/AirKiss-键配网支持SDK二次开发
待机状态消耗功率小于1.0mW (DTIM3)
2. 引脚说明
二、GPIO
1、初始化GPIO
pinMode(pin, mode)
作用:设置一个引脚(pin)作为GPIO时的I/O模式。
参数:
pin:引脚编号
mode:GPIO的I/O模式,取值有3种
INPUT :作为数字输入
OUTPUT :作为数字输出
INPUT_PULLUP:作为数字输入,且使能引脚的内部上拉电阻
注意:
a、引脚作为PWM输出时,无需先前使用pinMode配置其模式,因为PWM本身就代表了输出的意思。且官方库源代码中可以发现,它已经帮我们配置为输出了。
b、模拟引脚也可以作为数字引脚使用,完全OK。这在数字引脚不够用的情况下非常有用。
2、GPIO数字输出
digitalWrite(pin,value)
作用:设置一个数字输出引脚的输出电平值,HIGH或者LOW。
参数:
pin:引脚编号。此引脚必须在之前使用pinMode设置为OUTPUT模式
value:2个值
LOW:输出低电平
HIGH:输出高电平
3、GPIO数字输入
int digitalRead(pin)
作用:读取一个数字输入引脚的电平值。
返回:HIGH(高电平)或者LOW(低电平)。
参数:
pin:引脚编号。
示例 : 按键控制灯亮灭
void setup()
{
pinMode(2,OUTPUT);
pinMode(0,INPUT_PULLUP);
}
void loop()
{
if(digitalRead(0))
{
while(digitalRead(0));
digitalWrite(2,!digitalRead(2));
}
}
4、GPIO模拟输入:analogRead(pin)
注意 : 模拟输入是通过PWM实现的, 所以不需要初始化PIN
analogRead(4)
5. 模拟信号输入分辨率: analogSetWidth(bit);
bit的值 | 范围 |
9 | 0~511 |
10 | 0~1023 |
11 | 0~2047 |
12(默认) | 0~4095 |
三、串口打印 UART
串口名 | Arduino名 | TX | RX |
UART0 | Serial | pin1 | pin3 |
UART1 | Serial1 | pin10 | pin9 |
UART2 | Serial2 | pin17 | pin16 |
1、串口初始化
Serial.begin(speed, config)
- 参数
- speed:波特率,一般取值9600,115200等。
- config:设置数据位、校验位和停止位。默认SERIAL_8N1表示8个数据位,无校验位,1个停止位。
- 返回值:无。
2、关闭串口
Serial.end()
- 描述:禁止串口传输。此时串口Rx和Tx可以作为数字IO引脚使用。
- 原型:Serial.end()
- 参数:无。
- 返回值:无。
3、串口打印
Serial.print()
- 描述:串口输出数据,写入字符数据到串口。
- 原型:
- Serial.print(val)
- Serial.print(val, format)
- 参数:
- val:打印的值,任意数据类型。
- config:输出的数据格式。BIN(二进制)、OCT(八进制)、DEC(十进制)、HEX(十六进制)。对于浮点数,此参数指定要使用的小数位数。
4、串口输出数据并换行 println() 和 printf()
Serial.println()
Serial.printf()
- 描述:串口输出数据并换行。
- 原型:
- Serial.println(val)
- Serial.println(val, format)
- 参数:
- val:打印的值,任意数据类型。
- config:输出的数据格式。
- 返回值:返回写入的字节数。
附: 常用格式字符及转义字符
字符 | 说明 |
%o | 八进制整数输出 |
%d | 十进制整数输出 |
%x | 十六进制整数输出 |
%f | 浮点输出,默认6位小数 |
%c | 单字符输出 |
%s | 字符串输出 |
\n | 换行 |
\r | 回车 |
\t | Tab制表符 |