开发板 USART1 采用中断方式从 PC 机接收一个字符存入数组 ch 中。当 接收到字符'p'和'n'时,分别点亮和熄灭 PD7 引脚连接的 LED 灯(假设 PD7 输 出低电平时 LED 灯亮)。写出相应的串口中断回调函数。
时间: 2024-05-15 16:15:43 浏览: 74
USART1接发-把中断接收到的数据放到数组中.zip_STM32F103_STM32F103 USART1_USART1接发-
```c
#include "stm32f10x.h"
#define LED_PIN GPIO_Pin_7
#define LED_PORT GPIOD
uint8_t ch[10];
uint8_t count = 0;
void USART1_IRQHandler(void)
{
if (USART_GetITStatus(USART1, USART_IT_RXNE) != RESET) //判断USART1接收中断是否发生
{
ch[count++] = USART_ReceiveData(USART1); //读取接收到的数据
if (count >= 10) count = 0; //防止数组越界
if (ch[count-1] == 'p')
{
GPIO_ResetBits(LED_PORT, LED_PIN); //点亮LED
}
else if (ch[count-1] == 'n')
{
GPIO_SetBits(LED_PORT, LED_PIN); //熄灭LED
}
}
}
```
阅读全文