stm32点亮led灯。

发布于:2023-07-04 ⋅ 阅读:(95) ⋅ 点赞:(0)

新手学习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 
有什么疑惑可以一起交流。


网站公告

今日签到

点亮在社区的每一天
去签到