```c
include "stm32f10x.h" // 包含STM32F10x系列微控制器的头文件
void LED_Init(void) {
GPIO_InitTypeDef GPIO_InitStructure;
// 使能GPIOB时钟
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE);
// 配置GPIOB第5引脚为输出模式,推挽输出,速度为50MHz
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_5;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
// 初始化GPIOB
GPIO_Init(GPIOB, &GPIO_InitStructure);
}
int main(void) {
LED_Init(); // 调用LED初始化函数
while (1) {
// 点亮LED灯
GPIO_SetBits(GPIOB, GPIO_Pin_5);
// 延时一段时间
HAL_Delay(1000);
// 熄灭LED灯
GPIO_ResetBits(GPIOB, GPIO_Pin_5);
// 延时一段时间
HAL_Delay(1000);
}
return 0;
}
```
代码说明:
包含头文件 :`include "stm32f10x.h"` 包含了STM32F10x系列微控制器的所有外设初始化函数和定义。
LED_Init函数
使能GPIOB时钟:`RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE);`
配置GPIOB第5引脚为输出模式,推挽输出,速度为50MHz:
```c
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_5;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
```
初始化GPIOB:`GPIO_Init(GPIOB, &GPIO_InitStructure);`
main函数
调用`LED_Init()`函数初始化LED灯。
使用一个无限循环来点亮和熄灭LED灯,实现闪烁效果。
注意事项:
确保在`main`函数之前调用`LED_Init()`函数,以确保LED灯在程序启动时被正确初始化。
使用`HAL_Delay`函数来实现延时,这是STM32F10x系列微控制器中常用的延时方法。
这个示例代码展示了如何在STM32F103微控制器上初始化并控制LED灯。根据具体的应用需求,可以修改和扩展这个代码。