GD32E230 PB6、PB7怎么复用成串口0啊

[复制链接]
2175|19
 楼主| ya1234 发表于 2022-9-29 14:16 | 显示全部楼层 |阅读模式
本帖最后由 ya1234 于 2022-9-29 14:18 编辑

GD32E230的datasheet中可以看到PB和PB7是可以复用到USART0的,然后使用官方的例程,将官方例程默认引进从PA9、PA10改成PB6、PB7,结果串口就不打印了。用PA9、PA10却可以。

请教一下有没有人知道PB6、PB7怎么当串口0使用?

以下是官方例程,我将引脚宏定义改成PB6和PB7:

/* definition for COM, connected to USART0 */

#define EVAL_COM                         USART0

#define EVAL_COM_CLK                     RCU_USART0

#define EVAL_COM_TX_PIN                  GPIO_PIN_6

#define EVAL_COM_RX_PIN                  GPIO_PIN_7

#define EVAL_COM_GPIO_PORT               GPIOB

#define EVAL_COM_GPIO_CLK                RCU_GPIOB

#define EVAL_COM_AF                      GPIO_AF_1

/*!

    \brief      configure COM port

    \param[in]  com: COM on the board

      \arg        EVAL_COM: COM on the board

    \param[out] none

    \retval     none

*/

void gd_eval_com_init(uint32_t com)

{

    uint32_t COM_ID;

   

    COM_ID = 0U;

    /* enable COM GPIO clock */

    rcu_periph_clock_enable(EVAL_COM_GPIO_CLK);

    /* enable USART clock */

    rcu_periph_clock_enable(COM_CLK[COM_ID]);

    /* connect port to USARTx_Tx */

    gpio_af_set(EVAL_COM_GPIO_PORT, EVAL_COM_AF, COM_TX_PIN[COM_ID]);

    /* connect port to USARTx_Rx */

    gpio_af_set(EVAL_COM_GPIO_PORT, EVAL_COM_AF, COM_RX_PIN[COM_ID]);

    /* configure USART Tx as alternate function push-pull */

    gpio_mode_set(EVAL_COM_GPIO_PORT, GPIO_MODE_AF, GPIO_PUPD_PULLUP, COM_TX_PIN[COM_ID]);

    gpio_output_options_set(EVAL_COM_GPIO_PORT, GPIO_OTYPE_PP, GPIO_OSPEED_10MHZ, COM_TX_PIN[COM_ID]);

    /* configure USART Rx as alternate function push-pull */

    gpio_mode_set(EVAL_COM_GPIO_PORT, GPIO_MODE_AF, GPIO_PUPD_PULLUP, COM_RX_PIN[COM_ID]);

    gpio_output_options_set(EVAL_COM_GPIO_PORT, GPIO_OTYPE_PP, GPIO_OSPEED_10MHZ, COM_RX_PIN[COM_ID]);

    /* USART configure */

    usart_deinit(com);

    usart_baudrate_set(com, 115200U);

    usart_receive_config(com, USART_RECEIVE_ENABLE);

    usart_transmit_config(com, USART_TRANSMIT_ENABLE);

    usart_enable(com);

}

sonicll 发表于 2022-9-29 15:11 | 显示全部楼层
把GPIO_AF_1改成GPIO_AF_0,PB6和PB7给USART0用的时候,AF编号是0,datasheet里有个GPIO AF表格可以查

评分

参与人数 1威望 +1 收起 理由
zaijzhgh + 1 赞一个!

查看全部评分

 楼主| ya1234 发表于 2022-9-29 15:54 | 显示全部楼层
sonicll 发表于 2022-9-29 15:11
把GPIO_AF_1改成GPIO_AF_0,PB6和PB7给USART0用的时候,AF编号是0,datasheet里有个GPIO AF表格可以查 ...

这是官方库函数的参数说明,USART0就是GPIO_AF_1啊
  1. /*!
  2.     \brief      set GPIO alternate function
  3.     \param[in]  gpio_periph: GPIOx(x = A,B,C)
  4.                 only one parameter can be selected which is shown as below:
  5.       \arg        GPIOx(x = A,B,C)
  6.     \param[in]  alt_func_num: GPIO pin af function, please refer to specific device datasheet
  7.       \arg        GPIO_AF_0: TIMER13, TIMER14, TIMER16, SPI0, SPI1, I2S0, CK_OUT, USART0,
  8.                               I2C0, I2C1, SWDIO, SWCLK
  9.       \arg        GPIO_AF_1: USART0, USART1, TIMER2, TIMER14, I2C0, I2C1
  10.       \arg        GPIO_AF_2: TIMER0, TIMER1, TIMER15, TIMER16, I2S0
  11.       \arg        GPIO_AF_3: I2C0, TIMER14
  12.       \arg        GPIO_AF_4(port A,B only): USART1, I2C0, I2C1, TIMER13
  13.       \arg        GPIO_AF_5(port A,B only): TIMER15, TIMER16, I2S0
  14.       \arg        GPIO_AF_6(port A,B only): SPI1
  15.       \arg        GPIO_AF_7(port A,B only): CMP
  16.     \param[in]  pin: GPIO pin
  17.                 one or more parameters can be selected which are shown as below:
  18.       \arg        GPIO_PIN_x(x=0..15), GPIO_PIN_ALL
  19.     \param[out] none
  20.     \retval     none
  21. */
  22. void gpio_af_set(uint32_t gpio_periph, uint32_t alt_func_num, uint32_t pin)
 楼主| ya1234 发表于 2022-9-29 15:58 | 显示全部楼层
sonicll 发表于 2022-9-29 15:11
把GPIO_AF_1改成GPIO_AF_0,PB6和PB7给USART0用的时候,AF编号是0,datasheet里有个GPIO AF表格可以查 ...

还真是,没注意AF0也有个USART0。。。
呐咯密密 发表于 2022-9-29 15:58 | 显示全部楼层
呐咯密密 发表于 2022-9-29 15:59 | 显示全部楼层
注意看手册

评论

谢谢谢谢  发表于 2022-9-29 16:00
tpgf 发表于 2022-10-9 12:05 | 显示全部楼层
这两个引脚的默认功能不是下载引脚吧
磨砂 发表于 2022-10-9 12:21 | 显示全部楼层
PB6和PB7这两个引脚默认的功能就是串口啊 为何还需要进行复用呢
晓伍 发表于 2022-10-9 12:54 | 显示全部楼层
楼主想要把这两个 引脚的功能配置成什么呢
八层楼 发表于 2022-10-9 13:09 | 显示全部楼层
楼主请注意看手册  无需复用 它的默认功能就是串口
观海 发表于 2022-10-9 13:18 | 显示全部楼层
楼主可能把型号看错了 或者看错数据手册了
guanjiaer 发表于 2022-10-9 13:28 | 显示全部楼层
ya1234 发表于 2022-9-29 15:58
还真是,没注意AF0也有个USART0。。。

是不是吧不同的型号的引脚定义看混了啊
Undshing 发表于 2022-11-6 22:37 | 显示全部楼层
这两个引脚的默认功能不是下载引脚
chenjun89 发表于 2022-11-7 08:07 来自手机 | 显示全部楼层
AF复用编号没有对
西夏晨曦 发表于 2022-12-14 14:21 | 显示全部楼层
哈哈,同遇到这个问题,这帖子很有用
MessageRing 发表于 2022-12-20 18:02 | 显示全部楼层
它的默认功能就是串口
小小蚂蚁举千斤 发表于 2022-12-21 09:29 | 显示全部楼层
其实还是得看数据手册,多找几个可能导致问题发生的点进行排查
szt1993 发表于 2022-12-21 09:45 | 显示全部楼层

这个数据对应手册还是比较清楚的,AF0对应的串口0
jf101 发表于 2022-12-24 14:41 | 显示全部楼层

这个手册图片比较清晰,直接复用成串口0就可以了
您需要登录后才可以回帖 登录 | 注册

本版积分规则

2

主题

6

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部