137****com
SDK版本:GR551x_SDK_V1.7.0
芯片型号:GR5513BEND(QFN40)
打开例程:“GR551x_SDK_V1.7.0\projects\ble\ble_peripheral\ble_app_uart”
现象:
1.使用官方的SDK,已经配置好的日志打印串口配置,或者修改为UART0(其他引脚的其他MUX号),都可以正常打印日志;手机调试工具GRToolBox 连接芯片后,可以相互发送数据。
【1】可用的串口0日志打印,选用了GPIO3、4,可以正常打印日志
#define APP_UART_ID APP_UART_ID_0
#define APP_UART_BAUDRATE 115200
#define APP_UART_TX_IO_TYPE APP_IO_TYPE_NORMAL
#define APP_UART_RX_IO_TYPE APP_IO_TYPE_NORMAL
#define APP_UART_TX_PIN APP_IO_PIN_3
#define APP_UART_RX_PIN APP_IO_PIN_4
#define APP_UART_TX_PINMUX APP_IO_MUX_0
#define APP_UART_RX_PINMUX APP_IO_MUX_0
#define APP_UART_TX_PULL APP_IO_PULLUP
#define APP_UART_RX_PULL APP_IO_PULLUP【2】可用的串口0日志打印,选用了MSIO0、1,也可以正常打印日志
#define APP_UART_ID APP_UART_ID_0
#define APP_UART_BAUDRATE 115200
#define APP_UART_TX_IO_TYPE APP_IO_TYPE_MSIO
#define APP_UART_RX_IO_TYPE APP_IO_TYPE_MSIO
#define APP_UART_TX_PIN APP_IO_PIN_0
#define APP_UART_RX_PIN APP_IO_PIN_1
#define APP_UART_TX_PINMUX APP_IO_MUX_1
#define APP_UART_RX_PINMUX APP_IO_MUX_1
#define APP_UART_TX_PULL APP_IO_PULLUP
#define APP_UART_RX_PULL APP_IO_PULLUP2.在此基础上,修改为UART1,配置端口类型、引脚、复用功能序号后,都不能打印出log信息;手机调试工具GRToolBox 连接芯片后,日志打印串口1没有任何输出log信息。
【3】不可用的串口1日志打印,选用了GPIO6、7,无法打印日志
#define APP_UART_ID APP_UART_ID_1
#define APP_UART_BAUDRATE 115200
#define APP_UART_TX_IO_TYPE APP_IO_TYPE_NORMAL
#define APP_UART_RX_IO_TYPE APP_IO_TYPE_NORMAL
#define APP_UART_TX_PIN APP_IO_PIN_7
#define APP_UART_RX_PIN APP_IO_PIN_6
#define APP_UART_TX_PINMUX APP_IO_MUX_3
#define APP_UART_RX_PINMUX APP_IO_MUX_3
#define APP_UART_TX_PULL APP_IO_PULLUP
#define APP_UART_RX_PULL APP_IO_PULLUP【4】不可用的串口1日志打印,选用了MSIO3、4,无法打印日志
#define APP_UART_ID APP_UART_ID_1
#define APP_UART_BAUDRATE 115200
#define APP_UART_TX_IO_TYPE APP_IO_TYPE_MSIO
#define APP_UART_RX_IO_TYPE APP_IO_TYPE_MSIO
#define APP_UART_TX_PIN APP_IO_PIN_0
#define APP_UART_RX_PIN APP_IO_PIN_1
#define APP_UART_TX_PINMUX APP_IO_MUX_2
#define APP_UART_RX_PINMUX APP_IO_MUX_2
#define APP_UART_TX_PULL APP_IO_PULLUP
#define APP_UART_RX_PULL APP_IO_PULLUP总结:对比以上的【2】和【4】可见,同样是用的MSIO0、1两个引脚,配置为UART0时候,log可以打印,但是配置为UART1的时候,却没有log输出了;可见UART1作为log输出的时候,是否还要去做其他的相关配置呢?
{-}{-}

您好!
原因为UART1 不支持DMA,而默认代码配置是DMA模式,会造成无法正常使用,谢谢!
链接地址: https://docs.goodix.com/zh/online/detail/gr551x_datasheet/Rev.2.4/711d3aff92085e28f8ea366d5be10796
Both UART instances support the following:
文件GR551x_SDK_V1.7.0\projects\ble\ble_peripheral\ble_app_uart\Src\platform\user_periph_setup.c
line:108 默认配置为DMA,UART1 不支持DMA,所以默认采用DMA无法正常通信,请注意修改为中断模式,UART1 无法支持DMA的信息,可以从datasheet查询到。
static void uart_init(void)
{
s_uart_buffer.tx_buf = s_uart_tx_buffer;
s_uart_buffer.tx_buf_size = UART_TX_BUFFER_SIZE;
s_uart_param.id = APP_UART_ID;
s_uart_param.init.baud_rate = APP_UART_BAUDRATE;
s_uart_param.init.data_bits = UART_DATABITS_8;
s_uart_param.init.stop_bits = UART_STOPBITS_1;
s_uart_param.init.parity = UART_PARITY_NONE;
s_uart_param.init.hw_flow_ctrl = UART_HWCONTROL_NONE;
s_uart_param.init.rx_timeout_mode = UART_RECEIVER_TIMEOUT_ENABLE;
s_uart_param.pin_cfg.rx.type = APP_UART_RX_IO_TYPE;
s_uart_param.pin_cfg.rx.pin = APP_UART_RX_PIN;
s_uart_param.pin_cfg.rx.mux = APP_UART_RX_PINMUX;
s_uart_param.pin_cfg.rx.pull = APP_UART_RX_PULL;
s_uart_param.pin_cfg.tx.type = APP_UART_TX_IO_TYPE;
s_uart_param.pin_cfg.tx.pin = APP_UART_TX_PIN;
s_uart_param.pin_cfg.tx.mux = APP_UART_TX_PINMUX;
s_uart_param.pin_cfg.tx.pull = APP_UART_TX_PULL;
s_uart_param.use_mode.type = APP_UART_TYPE_INTERRUPT;
文件 GR551x_SDK_V1.7.0\components\boards\GR5515_SK.h
/*******UART DRIVER IO CONFIG*******************/
#define APP_UART_ID APP_UART_ID_1
#define APP_UART_BAUDRATE 115200
#define APP_UART_TX_IO_TYPE APP_IO_TYPE_MSIO
#define APP_UART_RX_IO_TYPE APP_IO_TYPE_MSIO
#define APP_UART_TX_PIN APP_IO_PIN_0
#define APP_UART_RX_PIN APP_IO_PIN_1
#define APP_UART_TX_PINMUX APP_IO_MUX_2
#define APP_UART_RX_PINMUX APP_IO_MUX_2
#define APP_UART_TX_PULL APP_IO_PULLUP
#define APP_UART_RX_PULL APP_IO_PULLUP
打开微信,使用“扫一扫”即可关注