stm32f103 串口2接收中断

Creator_莫言 Creator_莫言 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
问题描述:串口2配置如下,与PC端连接,发送数据PC端可以正常收到,当PC端发送数据时。板子卡死。
问题:请问下面的中断配置哪里不对吗?我替换USART_IT_RXNE成USART_IT_TC也会卡死。就好像只要触发串口2的中断都会死掉。串口1也是一样


/* Enable USART1 and GPIOA clock */
RCC_APB2PeriphClockCmd (RCC_APB2Periph_USART1 | RCC_APB2Periph_GPIOA | RCC_APB2Periph_SPI1 |
RCC_APB2Periph_GPIOD | RCC_APB2Periph_AFIO , ENABLE);
RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM2 | RCC_APB1Periph_USART2, ENABLE);



/* Configure USART2 Rx (PA3) as input floating */
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_3;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;
GPIO_Init(GPIOA, &GPIO_InitStructure);

/* Configure USART2 Tx (PA2) as alternate function push-pull */
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_2;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_2MHz;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;
GPIO_Init(GPIOA, &GPIO_InitStructure);

USART_InitStructure.USART_BaudRate = 115200;
USART_InitStructure.USART_WordLength = USART_WordLength_8b;
USART_InitStructure.USART_StopBits = USART_StopBits_1;
USART_InitStructure.USART_Parity = USART_Parity_No ;
USART_InitStructure.USART_HardwareFlowControl = USART_HardwareFlowControl_None;
USART_InitStructure.USART_Mode = USART_Mode_Rx | USART_Mode_Tx;
USART_Init(USART2, &USART_InitStructure);

/* USART2 recv event interrupt */
USART_ITConfig(USART2,USART_IT_RXNE,ENABLE);
/* Enable USART2 */
USART_Cmd(USART2, ENABLE);



/* USART2 recv interrupt */
NVIC_InitTypeDef NVIC_InitStructureUart;
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_1);
NVIC_InitStructureUart.NVIC_IRQChannel=USART2_IRQn;
NVIC_InitStructureUart.NVIC_IRQChannelPreemptionPriority = 0;
NVIC_InitStructureUart.NVIC_IRQChannelSubPriority = 1;
NVIC_InitStructureUart.NVIC_IRQChannelCmd = ENABLE;
NVIC_Init(&NVIC_InitStructureUart);



void USART2_IRQHandle(void)
{
uart_printf("USART2_IRQHandle\r\n");
if(USART_GetITStatus(USART2,USART_IT_RXNE) != RESET)
{
uart_printf("USART2_IRQHandle\r\n");
uint8_t RX_dat = USART_ReceiveData(USART2);
}
}
...全文
评论 5
收藏 已收藏
分享
返回顶部
Creator_莫言
单片机/工控 27,522 成员 28,796 内容