欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  科技

海思hi3526ev200串口1无法输出

程序员文章站 2022-03-03 19:00:50
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|RI1: uart:PL011 rev2 mmio:0x12041000 irq:21 tx:84 rx:320 DSR|CD|RI2: uart:PL011 rev2 mmio:0x12042000 irq:22 t...

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