功能综述
ESP8266共有两组 UART 接⼝口,分别为:
- UART0:
- U0TXD: pin26(U0TXD)
- U0RXD: pin25(U0RXD)
- U0CTS: pin12(MTCK)
- U0RTS: pin13(MTDO)
- UART1:
- U1TXD: pin14(GPIO2)
UART0 作为数据通信接⼝口, UART1 作为 debug 信息的打印。
UART0 默认情况会在上电 booting 期间输出⼀一些打印,此期间打印内容的波特率与所⽤用的外部晶振频率有关。使⽤用 40 M 晶振时,该段打印波特率为 115200。使⽤用 26 M 晶振时,该段打印波特率为 74880
参数配置
UART 属性参数都在 UART_CONF0 定义的寄存器器中,可以在 uart_register.h 中找到。修改该寄存器下的不同对应位,可以配置 UART 属性。
波特率
ESP8266 的串口波特率范围从 300 到 115200*40 都可以⽀支持。
void UART_SetBaudrate(uint8 uart_no,uint32 baud_rate);
校验位
#define UART_PARITY_EN (BIT(1)) 校验使能: 1: enable; 0: disable
#define UART_PARITY (BIT(0)) 校验类型设置 1:奇校验; 0:偶校验
void UART_SetParity(uint8 uart_no, UartParityMode Parity_mode);
数据位
#define UART_BIT_NUM 0x00000003 //数据位⻓长度占⽤用两个 bits:
设置这两个 bits 可以配置数据⻓长度 0: 5 bits; 1: 6 bits; 2: 7 bits; 3: 8 bits
#define UART_BIT_NUM_S 2 // 寄存器偏移为 2(第 2 bit 开始)
void UART_SetWordLength(uint8 uart_no, UartBitsNum4Char len)
停⽌止位
#define UART_STOP_BIT_NUM 0x00000003 //数据位⻓长度占⽤用两个 bits
设置这两个 bits 可以配置停止位⻓长度 1: 1bits; 2: 1.5 bits; 3: 2 bits
#define UART_STOP_BIT_NUM_S 4 //寄存器偏移为 4(第 4 bit 开始)
void UART_SetStopBits(uint8 uart_no, UartStopBitsNum bit_num);
反相
UART 各个信号输⼊入与输出信号,可在内部进行行反向配置。
#define UART_DTR_INV (BIT(24))
#define UART_RTS_INV (BIT(23))
#define UART_TXD_INV (BIT(22))
#define UART_DSR_INV (BIT(21))
#define UART_CTS_INV (BIT(20))
#define UART_RXD_INV (BIT(19))
将对应寄存器器置位,可以将对应信号线反向输出/输⼊。
void UART_SetLineInverse(uint8 uart_no, UART_LineLevelInverse inverse_mask);
切换打印函数输出端口
默认情况下,系统打印函数 os_printf 从 uart0 ⼝口输出内容,通过以下接口可以设置从UART0 或者 UART1 ⼝口输出打印。
void UART_SetPrintPort(uint8 uart_no);
串口输出打印
void os_printf(const char *s)