硬汉嵌入式论坛

 找回密码
 立即注册
查看: 569|回复: 1
收起左侧

[技术讨论] 串口2配置接收中断 不进中断问题

[复制链接]

1

主题

1

回帖

4

积分

新手上路

积分
4
发表于 2022-12-13 16:15:12 | 显示全部楼层 |阅读模式
大佬们。帮忙看看为啥不进中断啊 F051单片机
//PA2--TxA3--Rx;usart2
void Usart2_Init(uint16_t Bound){
    RCC->APB1ENR |= 0x01 << 17 ;//使能usart2时钟
    RCC->APB1RSTR |= 0x01 << 17;//复位usart2所有寄存器
    RCC->APB1RSTR &= ~(0x01 << 17);//关闭复位

    RCC->AHBENR |= 0x01 << 17;//使能PA端口时钟
    GPIOA->MODER &= ~(0x03 << 4 | 0x03 << 6);//模式清空
    GPIOA->MODER |= 0x02 << 4 | 0x02 << 6;//复用功能打开
    GPIOA->OTYPER &= ~(0x01 << 2 | 0x01 << 3);//推挽模式
    GPIOA->OSPEEDR &= ~(0x03 << 4 | 0x03 << 6);//低速模式
    GPIOA->UPDR &= ~(0x03 << 4 | 0x03 << 6);//浮空模式
    GPIOA->AFR[0] = 0xffff00ff;
    GPIOA->AFR[0] = 0x00001100;//复用AF1模式

    USART2->CR1 &= ~(0x01 << 15);//配置16倍过采样模式
    USART2->CR1 &= ~(0x01 << 12);//配置字长模式1+8+n
    USART2->CR1 |= 0x01 << 5;//接收中断非空使能
    USART2->CR1 |= 0x01 << 3 | 0x01 << 2;//接收和发送器使能
    USART2->CR2 &= ~(0x03 << 12);//配置为1个停止位
    USART2->BRR = 48000000 / Bound;//配置波特率

    uint32_t prio = NVIC_EncodePriority(7 - 2 ,3 ,3);
    NVIC_SetPriority(USART2_IRQn,prio);
    NVIC_EnableIRQ(USART2_IRQn);
    USART2->CR1 |= 0x01 << 0;//使能串口2
}

回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107049
QQ
发表于 2022-12-14 10:45:31 | 显示全部楼层
有标准库,HAL或者LL库的配置吗,寄存器写法没法一目了然的帮你看配置是否有问题。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2024-5-15 21:06 , Processed in 0.233017 second(s), 25 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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