Uart Q&A
Q1:Uart1 mode如下图配置并更新kernel后uart1功能不生效?
首先考虑功能复用的影响,经查询,dts文件中有其他地方用到了PAD_UART1_RX,建议用户搜索关键字进行排除。
Q2:Uart 常规mode 配置有哪些pin可以配置?
如下,在kernel对应使用的*_padmux.dtsi
配置即可:
Fuart带流控:使用MODE1:默认波特率是9600
<PAD_FUART_RX PINMUX_FOR_FUART_MODE_1 MDRV_PUSE_FUART_RX>, <PAD_FUART_TX PINMUX_FOR_FUART_MODE_1 MDRV_PUSE_FUART_TX>, <PAD_FUART_CTS PINMUX_FOR_FUART_MODE_1 MDRV_PUSE_FUART_CTS>, <PAD_FUART_RTS PINMUX_FOR_FUART_MODE_1 MDRV_PUSE_FUART_RTS>,
Fuart不带流控:使用MODE2:默认波特率是9600 // /dev/ttyS2
<PAD_FUART_RX PINMUX_FOR_FUART_MODE_2 MDRV_PUSE_FUART_RX>, <PAD_FUART_TX PINMUX_FOR_FUART_MODE_2 MDRV_PUSE_FUART_TX>,
uart0配置:默认波特率是115200 // /dev/ttyS0
<PM_UART_RX PINMUX_FOR_UART0_MODE_1 MDRV_PUSE_UART0_RX >, <PM_UART_TX PINMUX_FOR_UART0_MODE_1 MDRV_PUSE_UART0_TX >,
uart1配置:默认波特率是9600 // /dev/ttyS1
<PAD_UART1_RX PINMUX_FOR_UART1_MODE_1 MDRV_PUSE_UART1_RX>, <PAD_UART1_TX PINMUX_FOR_UART1_MODE_1 MDRV_PUSE_UART1_TX>,
uart2配置:默认波特率是9600 // /dev/ttyS3
<PAD_GPIO8 PINMUX_FOR_UART2_MODE_2 MDRV_PUSE_UART2_RX>, <PAD_GPIO9 PINMUX_FOR_UART2_MODE_2 MDRV_PUSE_UART2_TX>,
Q3: Uart1 mode按下图配置并更新kernel后,uart1功能不生效。
首先考虑功能复用的影响;本案例为dts文件中多处使用PAD_UART1_RX造成。
如出现此类问题,请自行搜索关键字进行初步排除。
Q4:外部一直往uart1的RX送数据,上电过程中,出现uart1无法接收到数据的情况。
分析发现,因底层的波特率设置不成功导致无法接收数据,可尝试修改串口的默认波特率为所需的值,kernel/drivers/tty/serial/serial_core.c
![](media/uart3.png)
Q5: 串口log已经匹配RX/TX,但无串口log输出。
串口工具设置波特率为115200(uart0 默认值),数据位设置为8,奇偶校验关闭,另外需关闭串口工具的流控。
...