赞
踩
当我们使用ESP32板件的时候,可能会使用多个串口,在micropython中,UART0用于REPL通讯,我们可以使用UART1和UART2。
在PINMAP中,UART1是引脚GPIO9和GPIO10,UART2是PIN16和PIN17
当我们直接使用ESP32的UART1时,会出现错误:
短接16/17后,运行会出现错误:
>>> uart1.write('a') Guru Meditation Error: Core 0 panic'ed (IllegalInstruction). Exception was unhandled. Memory dump at 0x401576fc: 0008e0d7 ffaf0000 ffffffff Core 0 register dump: PC : 0x40157703 PS : 0x00060031 A0 : 0x00000001 A1 : 0x3ffbe410 A2 : 0x3ffbd6ac A3 : 0x3ffbf774 A4 : 0x3ffbf770 A5 : 0x00000001 A6 : 0x0000007f A7 : 0x00000000 A8 : 0x80157700 A9 : 0x3ffbe3f0 A10 : 0x3ffba780 A11 : 0x3ffba88c A12 : 0x3ffbe424 A13 : 0x3ffba864 A14 : 0x00000000 A15 : 0x3ffe5605 SAR : 0x0000001f EXCCAUSE: 0x00000000 EXCVADDR: 0x00000000 LBEG : 0x4000c349 LEND : 0x4000c36b LCOUNT : 0xffffffff Backtrace:0x40157700:0x3ffbe410 0xfffffffe:0x3ffbe470 |<-CORRUPTED ELF file SHA256: 56a3348b1921e984 Rebooting... ets Jun 8 2016 00:22:57 rst:0xc (SW_CPU_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT) configsip: 0, SPIWP:0xee clk_drv:0x00,q_drv:0x00,d_drv:0x00,cs0_drv:0x00,hd_drv:0x00,wp_drv:0x00 mode:DIO, clock div:2 load:0x3fff0030,len:4 load:0x3fff0034,len:5636 load:0x40078000,len:12696 load:0x40080400,len:4292 entry 0x400806b0 MicroPython v1.14 on 2021-03-28; ESP32 module with ESP32 Type "help()" for more information.
此时我们需要将UART1进行重定向
在ESP32中,可以将引脚进行重定向
UART.init(baudrate=9600, bits=8, parity=None, stop=1, *, …)
初始化函数具备两个参数
在初始化串口时,可以重新定向串口引脚位置,例如将UART1引脚重新定向至PIN32,PIN33
pin33:TX
pin32:RX
使用跳线短接PIN33,PIN32
初始化函数:
from machine import UART
uart1=UART(1)
uart1.init(115200,tx=32,rx=33)
uart1.write('abcde')
uart1.read()
运行结果:
>>> from machine import UART
>>> uart1=UART(1)
>>> uart1.init(115200,tx=32,rx=33)
>>> uart1.write('abcde')
5
>>> uart1.read()
b'abcde'
>>>
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。