stm32学习笔记---串口中断
//中断初始化
void uart1_NVIC_init(void)
{
NVIC_InitTypeDef NVIC_InitStruct;
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_1); //中断分组
NVIC_InitStruct.NVIC_IRQChannel = USART1_IRQn;
NVIC_InitStruct.NVIC_IRQChannelCmd = ENABLE;
NVIC_InitStruct.NVIC_IRQChannelPreemptionPriority = 1;
NVIC_InitStruct.NVIC_IRQChannelSubPriority = 6;
NVIC_Init(&NVIC_InitStruct);
}
在user下找到此文件
unsigned char CMD = 0;
void USART1_IRQHandler(void)
{
if(USART_GetITStatus(USART1, USART_IT_RXNE) == SET)
{
USART_ClearITPendingBit(USART1, USART_IT_RXNE);
CMD = USART1->DR;
switch(CMD)
{
case '1':
led_control(LED_ALL,LED_OFF);
led_control(LED_RED,LED_ON);
uart1_putc(CMD);
break;
case '2':
led_control(LED_ALL,LED_OFF);
led_control(LED_GREEN,LED_ON);
uart1_putc(CMD);
break;
case '3':
led_control(LED_ALL,LED_OFF);
led_control(LED_BLUE,LED_ON);
uart1_putc(CMD);
break;
}
CMD = 0;
}
}