海思hi3526ev200串口1无法输出
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 | iocfg_reg44 |
70 | PWM0 | DVDD3318_FLASH | LVCMOS33/LVCMOS18 | ISCUD/O | iocfg_reg3 | 0 | GPIO0_3 | B | 通用输入输出。 |
1 | PWM0 | O | PWM输出0。 | ||||||
2 | UART1_TXD | O | UART1发送数据。 | ||||||
3 | I2C1_SCL | B | I2C总线1时钟。 | ||||||
71 | PWM1 | DVDD3318_FLASH | LVCMOS33/LVCMOS18 | ISCUD/O | iocfg_reg4 | 0 | GPIO0_4 | B | 通用输入输出。 |
1 | PWM1 | O | PWM输出1。 | ||||||
2 | UART1_RXD | I | UART1数据接收。 | ||||||
3 | I2C1_SDA | B | I2C总线1数据/地址。 |
解决办法:打开GPIO6_4和GPIO6_5的复用功能,把UART1映射到GPIO6_4和GPIO6_5上。
上面图表已经列出来iocfg_reg44和iocfg_reg43分别为GPIO6_4和GPIO6_5复用引脚寄存器,再次查找SDK文档,找出下面寄存器配置说明:
iocfg_reg43 | 10 | Pin LCD_DATA1 IO Config Register. | 0x112C0070 | 0x1000 | 31:11 | 保留。 |
10 | 电平转换速率控制,为0时电平转换速率快,为1时电平转换速率慢。 | |||||
9 | 下拉电阻使能,高有效。 | |||||
8 | 上拉电阻使能,高有效。 | |||||
7:4 | 管脚驱动能力选择: 0x2:IO2档位2; 0x3:IO2档位1; 其它:保留。 |
|||||
3:0 | 功能选择: 0x0:GPIO6_5; 0x2:UART1_RXD; 0x5:LCD_DATA1; 0x6:VO_BT1120_DATA1; 0x7:SPI0_SDI; 其它:保留。 |
|||||
iocfg_reg44 | 9 | Pin LCD_DATA0 IO Config Register. | 0x112C0074 | 0x1000 | 31:11 | 保留。 |
10 | 电平转换速率控制,为0时电平转换速率快,为1时电平转换速率慢。 | |||||
9 | 下拉电阻使能,高有效。 | |||||
8 | 上拉电阻使能,高有效。 | |||||
7:4 | 管脚驱动能力选择: 0x6:IO4档位2; 0x7:IO4档位1; 其它:保留。 |
|||||
3:0 | 功能选择: 0x0:GPIO6_4; 0x2:UART1_TXD; 0x5:LCD_DATA0; 0x6:VO_BT1120_DATA0; 0x7:SPI0_SCLK; 其它:保留。 |
1、 只需把0x112C0070和0x112C0074都配置为0x1002,即可把UART1映射到GPIO6_4和GPIO6_5引脚上。
2、使用hi只带寄存器直接配置工具devmem
devmem 0x112C0070 16 0x1002
devmem 0x112C0074 16 0x1002
测试通过,串口1已经映射到GPIO6_4和GPIO6_5上,收发正常。
如果一直需要用下去,则添加到/etc/profile后面即可。
本文地址:https://blog.csdn.net/Sweets_JIE/article/details/107947191
上一篇: C# 关于数组的几个方法
下一篇: 发掘MaosinCMS网站系统漏洞与测试