hi3516EV200串口1不打印输出?
1、首先使用命令cat /proc/tty/driver/ttyAMA查看串口是否配置好
0: uart:PL011 rev2 mmio:0x12040000 irq:20 tx:15934 rx:325 RTS|CTS|DTR|DSR|CD|RI
1: uart:PL011 rev2 mmio:0x12041000 irq:21 tx:84 rx:320 DSR|CD|RI
2: uart:PL011 rev2 mmio:0x12042000 irq:22 tx:0 rx:0 DSR|CD|RI
可见串口0、1、2都配置好,可以排除内核配置问题
2、本人开发板使用GPIO6_4和GPIO6_5为串口1
问题来了,查看SDK引脚手册,发现UART1默认使用的是GPIO0_3和GPIO0_4引脚,并不是使用GPIO6_4和GPIO6_5。
| UART1 | UART1_RXD | UART1数据接收。 | I | PWM1 | 2 | iocfg_reg4 |
| LCD_DATA1 | 2 | iocfg_reg43 | ||||
| UART1_TXD | UART1发送数据。 | O | PWM0 | 2 | iocfg_reg3 | |
| LCD_DATA0 | 2 |

解决海思hi3516EV200串口1无输出问题,通过检查/proc/tty/driver/ttyAMA确认串口配置。串口1默认使用GPIO0_3和GPIO0_4,需通过配置GPIO6_4和GPIO6_5的复用功能映射UART1。使用devmem工具设置0x112C0070和0x112C0074寄存器为0x1002,成功将串口1映射到GPIO6_4和GPIO6_5,实现正常收发。
最低0.47元/天 解锁文章
1742





