stm32f103 串口2接收中断
问题描述:串口2配置如下,与PC端连接,发送数据PC端可以正常收到,当PC端发送数据时。板子卡死。
问题:请问下面的中断配置哪里不对吗?我替换USART_IT_RXNE成USART_IT_TC也会卡死。就好像只要触发串口2的中断都会死掉。串口1也是一样
问题:请问下面的中断配置哪里不对吗?我替换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);
}
}
...全文
相关推荐
STM32F103串口DMA接收
在STM32F103单片机上实现,串口2通过DMA接收数据数据,并将接收的数据通过串口1发送出去。
STM32串口USART2发送接收程序
运行的芯片是STM32F103RCT6 使用单独的USART2通道 功能:使用串口调试助手,发送什么就返回什么 程序说明:本程序是用野火的程序移植后修改的
stm32串口1+2同时中断输入
stm32f103系列单片机,串口1+2同时中断输入,串口1配置:PA9,PA10。串口2:PA2,PA3引脚。 都可以中断输入,输出。
STM32F103单片机用DMA+串口空闲中断接收不定长数据
在STM32F103C8T6单片机上用串口2空闲中断加 DMA方式接收串口不定长数据。
STM32 串口2自发自收
STM32F10X,主函数,串口一的配置(初始化+中断配置+中断接收函数)


单片机/工控
