学习STM32的第一课,都是点亮LED。
芯片:STM32F107RC
系统时钟:72MHz
LED引脚:板载引脚PD2,正极接3.3V,负极接PD2,低电平点亮
第一种方法:使用库函数操作
LED引脚配置:
void LED_Init(void)
{
GPIO_InitTypeDef GPIO_InitStruct;//GPIO配置结构体
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOD, ENABLE);//使能PD2的时钟,GPIOD
//PD2引脚配置
GPIO_InitStruct.GPIO_Pin = GPIO_Pin_2;//PD2引脚
GPIO_InitStruct.GPIO_Mode = GPIO_Mode_Out_PP;//推挽输出
GPIO_InitStruct.GPIO_Speed = GPIO_Speed_50MHz;//50MHz
GPIO_Init(GPIOD, &GPIO_InitStruct);//GPIO配置
}
主函数:
int main(void)
{
delay_init();//延时函数初始化
LED_Init();//led的引脚初始化
while(1)
{
GPIO_ResetBits(GPIOD, GPIO_Pin_2);//PD2输出低电平,点亮
delay_ms(200); //延时200ms
GPIO_SetBits(GPIOD, GPIO_Pin_2);//PD2输出高电平,熄灭
delay_ms(200); //延时200ms
}
}
第二种方法:使用寄存器操作
LED引脚配置:
void LED_Init(void)
{
RCC->APB2EN