1.新建工程,这边先套用了原子的工程模板
2.编写LED.C文件,GPIO引脚使能,查看原理图,发现我的开发板LED灯连接的引脚为PB9和PE5,于是我们初始化PB9和PE5即可
#include "LED.h"
void LED1_INIT(void){
GPIO_InitTypeDef GPIO_InitStructure;//初始化GPIOB时钟
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB,ENABLE);//PB时钟使能
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;//设置推挽输出模式
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_9;//设置引脚为PB9
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;//设置频率50MHZ
GPIO_Init(GPIOB,&GPIO_InitStructure);//初始化PB9
}
void LED2_INIT(void){
GPIO_InitTypeDef GPIO_InitStructure;//初始化GPIOE时钟
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOE,ENABLE);//PB时钟使能
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;//设置推挽输出模式
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_5;//设置引脚为PE5
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;//设置频率50MHZ
GPIO_Init(GPIOE,&GPIO_InitStructure);//初始化PE5
}
3.编写头文件,声明函数
#ifndef __LED_H
#define __LED_H
#include "stm32f10x.h"
void LED1_INIT(void);
void LED2_INIT(void);
#endif
4.在main函数中测试
#include "stm32f10x.h"
#include "LED.h"
#define LED1 GPIO_Pin_9
#define LED2 GPIO_Pin_5
void Delay(u32 count)
{
u32 i=0;
for(;i<count;i++);
}
int main(void)
{
LED1_INIT();
LED2_INIT();
while(1)
{
GPIO_ResetBits(GPIOB,LED1);
GPIO_SetBits(GPIOE,LED2);
Delay(3000000);
GPIO_SetBits(GPIOB,LED1);
GPIO_ResetBits(GPIOE,LED2);
Delay(3000000);
}
}
此例程链接如下,删除网址中的中文即可正常进行访问
链接:https://p删an.bai除du.co中m/文s/1wxKjCzb21R9_Nj0gFwHz5w?p中w文d=l27m
使用的开发版为STM32F103系列只需修改相应引脚和时钟即可