打印

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

[复制链接]
1656|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啊
/*!
    \brief      set GPIO alternate function
    \param[in]  gpio_periph: GPIOx(x = A,B,C)
                only one parameter can be selected which is shown as below:
      \arg        GPIOx(x = A,B,C)
    \param[in]  alt_func_num: GPIO pin af function, please refer to specific device datasheet
      \arg        GPIO_AF_0: TIMER13, TIMER14, TIMER16, SPI0, SPI1, I2S0, CK_OUT, USART0,
                              I2C0, I2C1, SWDIO, SWCLK
      \arg        GPIO_AF_1: USART0, USART1, TIMER2, TIMER14, I2C0, I2C1
      \arg        GPIO_AF_2: TIMER0, TIMER1, TIMER15, TIMER16, I2S0
      \arg        GPIO_AF_3: I2C0, TIMER14
      \arg        GPIO_AF_4(port A,B only): USART1, I2C0, I2C1, TIMER13
      \arg        GPIO_AF_5(port A,B only): TIMER15, TIMER16, I2S0
      \arg        GPIO_AF_6(port A,B only): SPI1
      \arg        GPIO_AF_7(port A,B only): CMP
    \param[in]  pin: GPIO pin
                one or more parameters can be selected which are shown as below:
      \arg        GPIO_PIN_x(x=0..15), GPIO_PIN_ALL
    \param[out] none
    \retval     none
*/
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。。。

使用特权

评论回复
5
呐咯密密| | 2022-9-29 15:58 | 只看该作者

使用特权

评论回复
6
呐咯密密| | 2022-9-29 15:59 | 只看该作者
注意看手册

使用特权

评论回复
评论
ya1234 2022-9-29 16:00 回复TA
谢谢谢谢 
7
tpgf| | 2022-10-9 12:05 | 只看该作者
这两个引脚的默认功能不是下载引脚吧

使用特权

评论回复
8
磨砂| | 2022-10-9 12:21 | 只看该作者
PB6和PB7这两个引脚默认的功能就是串口啊 为何还需要进行复用呢

使用特权

评论回复
9
晓伍| | 2022-10-9 12:54 | 只看该作者
楼主想要把这两个 引脚的功能配置成什么呢

使用特权

评论回复
10
八层楼| | 2022-10-9 13:09 | 只看该作者
楼主请注意看手册  无需复用 它的默认功能就是串口

使用特权

评论回复
11
观海| | 2022-10-9 13:18 | 只看该作者
楼主可能把型号看错了 或者看错数据手册了

使用特权

评论回复
12
guanjiaer| | 2022-10-9 13:28 | 只看该作者
ya1234 发表于 2022-9-29 15:58
还真是,没注意AF0也有个USART0。。。

是不是吧不同的型号的引脚定义看混了啊

使用特权

评论回复
13
Undshing| | 2022-11-6 22:37 | 只看该作者
这两个引脚的默认功能不是下载引脚

使用特权

评论回复
14
chenjun89| | 2022-11-7 08:07 | 只看该作者
AF复用编号没有对

使用特权

评论回复
15
西夏晨曦| | 2022-12-14 14:21 | 只看该作者
哈哈,同遇到这个问题,这帖子很有用

使用特权

评论回复
16
MessageRing| | 2022-12-20 18:02 | 只看该作者
它的默认功能就是串口

使用特权

评论回复
17
小小蚂蚁举千斤| | 2022-12-21 09:29 | 只看该作者
其实还是得看数据手册,多找几个可能导致问题发生的点进行排查

使用特权

评论回复
18
szt1993| | 2022-12-21 09:45 | 只看该作者

这个数据对应手册还是比较清楚的,AF0对应的串口0

使用特权

评论回复
19
jf101| | 2022-12-24 14:41 | 只看该作者

这个手册图片比较清晰,直接复用成串口0就可以了

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

2

主题

6

帖子

0

粉丝