新手求助,GD32E503V 串口5不能使用,求帮助

[复制链接]
661|11
手机看帖
扫描二维码
随时随地手机跟帖
Stephencook|  楼主 | 2023-3-20 15:23 | 显示全部楼层 |阅读模式
本帖最后由 Stephencook 于 2023-3-20 17:19 编辑

GD32E503V 串口5不能使用,管脚复用了,时钟配置都检查过了,但是不进中断,相同的配置,串口1~4就可以使用,代码如下:
void USART5_Init(void)
{
       rcu_periph_clock_enable(RCU_GPIOC);
       rcu_periph_clock_enable(RCU_USART5);
        
       gpio_afio_port_config(AFIO_PC6_USART5_CFG,ENABLE);
       gpio_afio_port_config(AFIO_PC7_USART5_CFG,ENABLE);
       gpio_init(GPIOC, GPIO_MODE_AF_PP, GPIO_OSPEED_MAX, GPIO_PIN_6);
       gpio_init(GPIOC, GPIO_MODE_IN_FLOATING, GPIO_OSPEED_MAX, GPIO_PIN_7);
        
       usart_deinit(USART5);
       usart_word_length_set(USART5,USART_WL_8BIT);
       usart_stop_bit_set(USART5, USART_STB_1BIT);
       usart_parity_config(USART5,USART_PM_NONE);
       usart_baudrate_set(USART5,115200);
       usart_receive_config(USART5, USART_RECEIVE_ENABLE);
       usart_transmit_config(USART5, USART_TRANSMIT_ENABLE);
       usart_enable(USART5);
        
       nvic_irq_enable(USART5_IRQn, 1, 0);
       usart5_interrupt_enable(USART5, USART_INT_RBNE | USART_INT_IDLE);
}

使用特权

评论回复
Stephencook|  楼主 | 2023-3-20 15:34 | 显示全部楼层
急!大家帮忙看看啊,新手入行搞不定了

使用特权

评论回复
Stephencook|  楼主 | 2023-3-20 16:32 | 显示全部楼层
别沉啊,大佬们求帮助

使用特权

评论回复
duzhiqiang521| | 2023-3-20 20:11 | 显示全部楼层
Stephencook 发表于 2023-3-20 16:32
别沉啊,大佬们求帮助

能发送吗,还是知识不进入中断

使用特权

评论回复
Stephencook|  楼主 | 2023-3-21 11:23 | 显示全部楼层
duzhiqiang521 发表于 2023-3-20 20:11
能发送吗,还是知识不进入中断

不能发送,各种中断也都进不了

使用特权

评论回复
Stephencook|  楼主 | 2023-3-21 14:19 | 显示全部楼层

使用特权

评论回复
duzhiqiang521| | 2023-3-21 14:41 | 显示全部楼层
rcu_periph_clock_enable(RCU_AF);   这个开了吗

使用特权

评论回复
duzhiqiang521| | 2023-3-21 14:41 | 显示全部楼层
我这边调试可以了

使用特权

评论回复
Stephencook|  楼主 | 2023-3-21 14:45 | 显示全部楼层
问题找到了,usart5_interrupt_enable(USART5, USART_INT_RBNE | USART_INT_IDLE);串口5使用自己的中断使能函数,中断标志也是串口5自己的。改成usart5_interrupt_enable(USART5, USART5_INT_RBNE | USART5_INT_IDLE);就可以了,太粗心了,还得继续努力

使用特权

评论回复
评论
sagade 2023-3-22 20:47 回复TA
有时候是想当然,没注意看函数入参说明 
Stephencook|  楼主 | 2023-3-22 16:34 | 显示全部楼层
duzhiqiang521 发表于 2023-3-21 14:41
rcu_periph_clock_enable(RCU_AF);   这个开了吗

在其他函数开了,找到问题了,谢谢

使用特权

评论回复
szddgui| | 2023-12-9 21:32 | 显示全部楼层
usart5_interrupt_flag_clear(USART5,USART5_INT_FLAG_TC);  发送完成中断也清除不了  不知道什么原因

使用特权

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

本版积分规则

1

主题

7

帖子

0

粉丝