stm32f103用hal库写一个如果串口1接收到数据12,则点亮led1的代码,源码
时间: 2024-12-15 16:15:50 浏览: 9
STM32F103单片机HAL库例程-USART串口1接收数据控制LED灯.rar
5星 · 资源好评率100%
STM32F103使用HAL库编写程序,首先需要包含必要的头文件并初始化串口和LED。这是一个基本的示例,假设你已经配置了GPIO和USART HAL:
```c
#include "stm32f1xx_hal.h"
#include "stm32f1xx_hal_gpio.h"
#include "stm32f1xx_hal_usart.h"
// LED1 GPIO配置
GPIO_TypeDef* Led1GPIO = GPIOA;
GPIO_PinState Led1State = GPIO_PIN_SET; // 设置LED1为高电平状态
void USART1_IRQHandler(void) {
static uint8_t RxData = 0; // 保存接收的数据
if (USART_GetFlagStatus(USART1, USART_FLAG_RXNE)) { // 检查接收标志位是否置位
RxData = USART_ReceiveData(USART1); // 接收一字符
if (RxData == 12) { // 如果接收到12
GPIO_SetPinState(Led1GPIO, Led1State); // 点亮LED1
}
}
}
int main(void) {
// 初始化硬件资源
HAL_Init();
SystemClock_Config(); // 配置系统时钟
MX_USART1_UART_Init(); // 初始化USART1
// 开启串口中断服务函数
HAL_NVIC_EnableIRQ(USART1_IRQn);
NVIC_SetPriority(USART1_IRQn, 0x0F); // 设置中断优先级
while (1) {
// 主循环,这里可以添加其他任务
}
}
阅读全文