写一个STM32串口中断程序例子给我
时间: 2023-03-12 09:06:39 浏览: 127
下面是一个简单的STM32串口中断程序例子: #include "stm32f10x.h" //定义中断服务函数
void USART1_IRQHandler(void)
{
uint8_t i;
if(USART_GetITStatus(USART1, USART_IT_RXNE) != RESET) //接收中断(接收到的数据必须是0x0d 0x0a结尾)
{
i = USART_ReceiveData(USART1); //获取接收到的数据
USART_ClearITPendingBit(USART1, USART_IT_RXNE); //清除中断标志
}
}//中断初始化函数
void USART_IRQ(void)
{
NVIC_InitTypeDef NVIC_InitStructure;
NVIC_InitStructure.NVIC_IRQChannel = USART1_IRQn; //使能串口1中断通道
NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority=3 ;//抢占优先级3
NVIC_InitStructure.NVIC_IRQChannelSubPriority = 3;//子优先级3
NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;//IRQ通道使能
NVIC_Init(&NVIC_InitStructure);//根据指定的参数初始化VIC寄存器
USART_ITConfig(USART1, USART_IT_RXNE, ENABLE);//开启串口接受中断
}
阅读全文