新手学习stm32
学习32第一个程序就是点亮led灯。本人用的是野火的指南者开发板。先上电路图。
如图所示,为led模块电路图,由图可知,此模块为共阳极。只需将引脚变成低电平即可使led灯亮。此次代码点亮B0。代码如下。
stm32要进行引脚初始化,led.c文件中定义如下:
#include "led.h"
void LED_G_Init(void)//初始化灯
{
GPIO_InitTypeDef GPIO_InitStruct;//结构图定义
RCC_APB2PeriphClockCmd(LED_G_CLK,ENABLE);//总线2时钟开关
GPIO_InitStruct.GPIO_Pin = LED_G_PIN;//引脚
GPIO_InitStruct.GPIO_Mode = GPIO_Mode_Out_PP;//模式为推挽输出
GPIO_InitStruct.GPIO_Speed = GPIO_Speed_50MHz;//设置频率为50HZ
GPIO_Init(LED_G_PORT, &GPIO_InitStruct);//GPIO初始化
}
每使用一个引脚都需要将GPIO进行初始化。
头文件代码如下:
#ifndef _DSP_LED_H
#define _DSP_LED_H
#include "stm32f10x.h"
//定义led灯端口
#define LED_G_PIN GPIO_Pin_0
#define LED_G_PORT GPIOB
#define LED_G_CLK RCC_APB2Periph_GPIOB
//初始化灯
void LED_G_Init(void);
#endif /*_DSP_LED_H*/
上面就已经将led灯初始化完成了,现在编写主函数:
int main(void)
{
LED_G_Init();//初始化调用
GPIO_SetBits(GPIOB, GPIO_Pin_0);//因为初始化使GPIO会初始化为低电平,所以如果不是点评增高,led灯会直接变亮。所以调用此函数,使其电平变高。
GPIO_ResetBits(GPIOB, GPIO_Pin_0);//电平为低,点亮灯,这两个函数都是在32库里面的,可直接调用。
}
以上就可点亮一个灯了。虽然不是很难,但刚开始学习使用时因为接触到寄存器的配置,比51还是难很多的,新手还是会迷。
代码链接:https://pan.baidu.com/s/1CJkXt8mRiO4aNu-pOz5sTg
提取码:liu1
有什么疑惑可以一起交流。