双11狂欢大促

盲盒赢 定制羽绒服

开启惊喜盲盒,抽取你的专属好礼

— 惊喜奖品抢先看 —

STM32F103 UART4 设置使能中断,程序无法运行

dpbug_cn dpbug_cn 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区

STM32F103 将UART4设置为使能中断则程序无法运行,注释掉USART_ITConfig( UART4, USART_IT_RXNE, ENABLE)程序就可以运行了,什么原因呢?

UART4配置代码:
void USART4_Init( unsigned int baud )
{
GPIO_InitTypeDef gpioInitStruct;
USART_InitTypeDef usartInitStruct;
NVIC_InitTypeDef nvicInitStruct;

RCC_APB2PeriphClockCmd( RCC_APB2Periph_GPIOC, ENABLE );
RCC_APB1PeriphClockCmd( RCC_APB1Periph_UART4, ENABLE );

gpioInitStruct.GPIO_Pin = GPIO_Pin_10;
gpioInitStruct.GPIO_Mode = GPIO_Mode_AF_PP;
gpioInitStruct.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init( GPIOC, &gpioInitStruct );

gpioInitStruct.GPIO_Pin = GPIO_Pin_11;
gpioInitStruct.GPIO_Mode = GPIO_Mode_IN_FLOATING;
gpioInitStruct.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init(GPIOC, &gpioInitStruct);

usartInitStruct.USART_BaudRate = baud;
usartInitStruct.USART_WordLength = USART_WordLength_8b;
usartInitStruct.USART_StopBits = USART_StopBits_1;
usartInitStruct.USART_Parity = USART_Parity_No;
usartInitStruct.USART_HardwareFlowControl = USART_HardwareFlowControl_None;
usartInitStruct.USART_Mode = USART_Mode_Rx | USART_Mode_Tx;
USART_Init( UART4, &usartInitStruct );

USART_Cmd( UART4, ENABLE );

// USART_ITConfig( UART4, USART_IT_RXNE, ENABLE); // 带着这行代码就无法运行,注释掉后可以运行!!!!!!
USART_ClearFlag( UART4, USART_FLAG_TC );

nvicInitStruct.NVIC_IRQChannel = UART4_IRQn;
nvicInitStruct.NVIC_IRQChannelPreemptionPriority = 3;
nvicInitStruct.NVIC_IRQChannelSubPriority = 3;
nvicInitStruct.NVIC_IRQChannelCmd = ENABLE;
NVIC_Init(&nvicInitStruct);

}


请各位高手不吝指教,谢谢!
...全文
评论 4
收藏 已收藏
分享
返回顶部
dpbug_cn
单片机/工控 27,522 成员 28,796 内容