//串口2初始化函数
void usart2_init(void)
{
GPIO_InitTypeDef GPIO_InitStructure;
USART_InitTypeDef USART_InitStructure;
NVIC_InitTypeDef NVIC_InitStructure;
RCC_APB1PeriphClockCmd(RCC_APB1Periph_USART2, ENABLE);
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE);
/* Configure USART2_Tx as output */
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_2;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;;
GPIO_Init(GPIOA, &GPIO_InitStructure);
/* Configure USART2_Rx as input floating */
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_3;
GPIO_InitStructure.GPIO_Mode = GPIO

本文介绍了在STM32中,同时启用串口接收(USART_IT_RXNE)和发送(USART_IT_TXE)中断时,程序会死在初始化阶段的原因。通过分析代码发现,当解除发送中断(USART_IT_TXE)的注释时,程序会陷入死锁状态。详细分析了中断处理函数和主函数,展示了如何实现串口与PC通信,以及在中断处理中清除中断标志和处理溢出的情况。
最低0.47元/天 解锁文章

被折叠的 条评论
为什么被折叠?



