STM32与ESP8266的uart通信
课设中用到了ESP8266这个模块,用着着实十分的方便,唯一不足之处便是引脚数量太少导致引脚数量不足。因此只能外接一个单片机,通过单片机读取传感器的数据之后通过uart串口通信传送至8266。
ESP8266:
8266只有两个uart串口,默认的是uart0串口打印debug信息等,而uart1只有一个发送引脚(TXD),因此将默认打印信息的uart为uart1,并连接USB转TTL至电脑,接收打印的debug信息。将uart0设置为uart通信模式,将发送与接收引脚分别与单片机连接。而后便可以在中断中接收和处理接收到的信息了,值得注意的是,8266uart中断中官方示例程序中对其进行了诸多任务操作形式的数据处理,比较麻烦,直接删掉重写反而更加简洁。
int fifo_len;
//1 接收中断禁用,用于不再接受数据,因为现在处于处理数据中
uart_rx_intr_disable(UART0);
//2 清楚中断标志
WRITE_PERI_REG(UART_INT_CLR(UART0), UART_RXFIFO_FULL_INT_CLR);
CLEAR_PERI_REG_MASK(UART_INT_ENA(UART0)