查看: 82|回复: 5
收起左侧

求助:串口一直进入接收中断的问题。

[复制链接]

2

主题

15

帖子

45

积分

实习生

 楼主| 发表于 2017-4-19 19:05 | 显示全部楼层 |返回版面|阅读模式
GD32F130C8 配置好UART1后,仿真运行,一直进入串口接收中断。
21ic公开课,21ic网友共同的学习圈子!学单片机、嵌入式、模拟、电源……就看这里 http://open.21ic.com 移步更多21ic独家微课:http://open.21ic.com/list/3/0/0

2

主题

15

帖子

45

积分

实习生

 楼主| 发表于 2017-4-19 19:06 | 显示全部楼层 |返回版面
void uart1_config(void)
{
    USART_InitPara USART_InitStructure;
    GPIO_InitPara GPIO_InitStructure;

    USART_InitStructure.USART_BRR = 9600;
    USART_InitStructure.USART_WL = USART_WL_8B;
    USART_InitStructure.USART_STBits = USART_STBITS_1;
    USART_InitStructure.USART_Parity = USART_PARITY_RESET;
    USART_InitStructure.USART_HardwareFlowControl = USART_HARDWAREFLOWCONTROL_NONE;
    USART_InitStructure.USART_RxorTx = USART_RXORTX_RX | USART_RXORTX_TX;

    USART_Init(USART1, &USART_InitStructure);
    USART_INT_Set(USART1, USART_INT_RBNE, ENABLE);
    USART_Enable(USART1, ENABLE);

    GPIO_PinAFConfig(UART1TX_GPIO, UART1TX_PIN, GPIO_AF_1);
    GPIO_PinAFConfig(UART1RX_GPIO, UART1RX_PIN, GPIO_AF_1);

    GPIO_InitStructure.GPIO_Pin = UART1TX_PIN;
    GPIO_InitStructure.GPIO_Mode  = GPIO_MODE_AF;
    GPIO_InitStructure.GPIO_Speed = GPIO_SPEED_50MHZ;
    GPIO_InitStructure.GPIO_OType = GPIO_OTYPE_PP;
    GPIO_InitStructure.GPIO_PuPd  = GPIO_PUPD_NOPULL;
    GPIO_Init(UART1TX_GPIO, &GPIO_InitStructure);

    GPIO_InitStructure.GPIO_Pin = UART1RX_PIN;
    GPIO_InitStructure.GPIO_Mode  = GPIO_MODE_AF;
    GPIO_InitStructure.GPIO_Speed = GPIO_SPEED_50MHZ;
    GPIO_InitStructure.GPIO_OType = GPIO_OTYPE_PP;
    GPIO_InitStructure.GPIO_PuPd  = GPIO_PUPD_NOPULL;
    GPIO_Init(UART1RX_GPIO, &GPIO_InitStructure);

    GPIO_InitStructure.GPIO_Pin = UART1EN_PIN;
    GPIO_InitStructure.GPIO_Mode  = GPIO_MODE_OUT;
    GPIO_InitStructure.GPIO_Speed = GPIO_SPEED_50MHZ;
    GPIO_InitStructure.GPIO_OType = GPIO_OTYPE_PP;
    GPIO_InitStructure.GPIO_PuPd  = GPIO_PUPD_NOPULL;
    GPIO_Init(UART1EN_GPIO, &GPIO_InitStructure);  
   
    UART1RXEN();
    //UART1TXEN();
}
配置函数
21ic公开课,21ic网友共同的学习圈子!学单片机、嵌入式、模拟、电源……就看这里 http://open.21ic.com 移步更多21ic独家微课:http://open.21ic.com/list/3/0/0

2

主题

15

帖子

45

积分

实习生

 楼主| 发表于 2017-4-19 19:08 | 显示全部楼层 |返回版面
void USART1_IRQHandler(void)
{
    if(USART_GetIntBitState(USART1,USART_INT_RBNE) != RESET)
    {
        //USART_ClearIntBitState(USART1,USART_INT_ORE);
        if(RxCounter > 7) RxCounter = 0;
        
        RxBuffer[RxCounter++] = (u8)USART_DataReceive(USART1);
    }
    USART_ClearIntBitState(USART1,USART_INT_ORE);
}
21ic公开课,21ic网友共同的学习圈子!学单片机、嵌入式、模拟、电源……就看这里 http://open.21ic.com 移步更多21ic独家微课:http://open.21ic.com/list/3/0/0

3

主题

37

帖子

111

积分

中级技术员

发表于 2017-4-20 17:53 | 显示全部楼层 |返回版面
顶  学习下很好
21ic公开课,21ic网友共同的学习圈子!学单片机、嵌入式、模拟、电源……就看这里 http://open.21ic.com 移步更多21ic独家微课:http://open.21ic.com/list/3/0/0

74

主题

3270

帖子

1万

积分

资深工程师

发表于 2017-4-22 12:09 | 显示全部楼层 |返回版面
cug_niubosong 发表于 2017-4-19 19:06
void uart1_config(void)
{
    USART_InitPara USART_InitStructure;

这个配置函数的很重要。
21ic公开课,21ic网友共同的学习圈子!学单片机、嵌入式、模拟、电源……就看这里 http://open.21ic.com 移步更多21ic独家微课:http://open.21ic.com/list/3/0/0

2

主题

15

帖子

45

积分

实习生

 楼主| 发表于 2017-4-24 15:38 | 显示全部楼层 |返回版面
smilingangel 发表于 2017-4-22 12:09
这个配置函数的很重要。

这个问题已经解决了,函数都没有问题,是我马虎,用错串口了
21ic公开课,21ic网友共同的学习圈子!学单片机、嵌入式、模拟、电源……就看这里 http://open.21ic.com 移步更多21ic独家微课:http://open.21ic.com/list/3/0/0
您需要登录后才可以回帖 登录 | 注册

本版积分规则

分享 快速回复 返回顶部 返回列表