ya1234 发表于 2022-9-29 14:16

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

本帖最后由 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    \paramcom: COM on the board      \arg      EVAL_COM: COM on the board    \param 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);     /* connect port to USARTx_Tx */    gpio_af_set(EVAL_COM_GPIO_PORT, EVAL_COM_AF, COM_TX_PIN);     /* connect port to USARTx_Rx */    gpio_af_set(EVAL_COM_GPIO_PORT, EVAL_COM_AF, COM_RX_PIN);     /* configure USART Tx as alternate function push-pull */    gpio_mode_set(EVAL_COM_GPIO_PORT, GPIO_MODE_AF, GPIO_PUPD_PULLUP, COM_TX_PIN);    gpio_output_options_set(EVAL_COM_GPIO_PORT, GPIO_OTYPE_PP, GPIO_OSPEED_10MHZ, COM_TX_PIN);     /* configure USART Rx as alternate function push-pull */    gpio_mode_set(EVAL_COM_GPIO_PORT, GPIO_MODE_AF, GPIO_PUPD_PULLUP, COM_RX_PIN);    gpio_output_options_set(EVAL_COM_GPIO_PORT, GPIO_OTYPE_PP, GPIO_OSPEED_10MHZ, COM_RX_PIN);     /* 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表格可以查

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
    \paramgpio_periph: GPIOx(x = A,B,C)
                only one parameter can be selected which is shown as below:
      \arg      GPIOx(x = A,B,C)
    \paramalt_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
    \parampin: 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 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。。。

呐咯密密 发表于 2022-9-29 15:58

呐咯密密 发表于 2022-9-29 15:59

注意看手册

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

呐咯密密 发表于 2022-9-29 15:58


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

jf101 发表于 2022-12-24 14:41

呐咯密密 发表于 2022-9-29 15:58


这个手册图片比较清晰,直接复用成串口0就可以了
页: [1]
查看完整版本: GD32E230 PB6、PB7怎么复用成串口0啊