在这次ESP8266的调试过程中,PC端可以接收到ESP8266传来的数据,但是PC端向ESP8266发送消息却不能实现。最后改变了boot.py文件。
# This file is executed on every boot (including wake-boot from deepsleep)
#import esp
#esp.osdebug(None)
import os, machine
#将这一行的注释去掉
os.dupterm(None, 1) # disable REPL on UART(0)
import gc
#import webrepl
#webrepl.start()
gc.collect()
这一步非常关键,将REPL模式与UART(0)分离,然后建立main.py文件
from machine import UART, Pin
import time
uart=UART(0,115200,rx=3,tx=1) #设置串口号1和波特率
p2 = Pin(2, Pin.OUT) # GPIO 2
p2.value(1)
def Uart_read():
global read,mode
if uart.any():
read=uart.read(uart.any())
p2.value(0) # 设为高电平
#print(read)
uart.write(read)#发送一条数据
time.sleep(0)
while True:
#uart.write('Hello XYD!\r\n')#发送一条数据
Uart_read()
这里是ESP8266接收数据的代码,将收到的数据发送给PC端,同时增加了点灯判断,若ESP8266接收到了数据就会点灯。
但是一旦将uart0与REPL模式分离,固件就需要重新刷,用esptool会更加方便,在选择模式的时候连接RTS与DTR,刷完固件要拿下来,这个是选择模式的过程。
esptool --port COM9 erase_flash
COM9替换成实际端口号
esptool --port COM9 --baud 115200 write_flash --flash_size=detect 0 ESP8266_GENERIC-20240222-v1.22.2.bin
bin文件改成保存的实际路径,COM9改成实际端口号。
最后,读手册很重要。