前言:由于老师要求掌握STM32基础知识,所以特此学习江科大B站视频。光看光做是不行的,还要写文章进行积累。这节课是入门,俗话说师傅领进门,修行靠个人。
一.实验要求
能在STM32F103最小系统版上点亮一个LED小灯。
二.实验过程
关键是代码编写,从中了解到如果使用某一个IO口,我们就先把他的时钟打开然后初始化。这两者是关键的步骤,缺一不可。假设我们使用PA0(使用其他IO与之同理)。
代码如下:
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE);//APB2中开启GPIOA和GPIOB
GPIO_InitTypeDef GPIO_InitStructure;
//开启PA0的工作模式和速度
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0 ;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz ;
GPIO_Init(GPIOA,&GPIO_InitStructure);//GPIO_InitStructure是结构体,在函数引用加取地址符
while(1){
GPIO_ResetBits(GPIOA, GPIO_Pin_0);//设置LED为低电平
Delay_ms(500);//延时
GPIO_SetBits(GPIOA, GPIO_Pin_0);//设置LED为高电平
Delay_ms(500);
GPIO_WriteBit(GPIOA, GPIO_Pin_0, Bit_RESET);设置LED为低电平
Delay_ms(500);
GPIO_WriteBit(GPIOA, GPIO_Pin_0, Bit_SET);//设置LED为高电平
Delay_ms(500);
}
三.实验现象
四.实验总结
学习了配置时钟以及高低电平的设置。进一步了解了GPIO_ResetBits(),GPIO_SetBits(),GPIO_WriteBit(GPIOA, GPIO_Pin_0, Bit_RESET)。