CN / EN
CN / EN

提问

设计支持

您的项目私密技术问题如需获得一对一支持,请点击下方联系我们。

日志打印功能,改成串口1后的配置,都未成功,紧急求助? GR551x

已解决

137****com

2022-09-02 10:35

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_PULLUP


2.在此基础上,修改为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输出的时候,是否还要去做其他的相关配置呢?

0收藏

0赞成

最佳答案

{-}{-}

汇顶员工
2022-09-02 11:55

您好!

原因为UART1 不支持DMA,而默认代码配置是DMA模式,会造成无法正常使用,谢谢!

链接地址: https://docs.goodix.com/zh/online/detail/gr551x_datasheet/Rev.2.4/711d3aff92085e28f8ea366d5be10796

Both UART instances support the following:

  • Full-duplex asynchronous communications
  • Programmable data size (5 – 8 bits)
  • Programmable parity bit (none, odd, even, 0, and 1)
  • Programmable stop bits (1, 1.5, or 2 bits)
  • Hardware flow control
  • 128-byte buffer
  • DMA (only for UART0)
  • Up to 4 M baud rates

文件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





1条评论

0赞成

0收藏

您的评论

登录后可回答问题,请 注册

我们时刻倾听您的声音
联系销售

扫描关注公众号

打开微信,使用“扫一扫”即可关注