Author:AXYZdong
自动化专业 工科男
有一点思考,有一点想法,有一点理性
点亮 LED
我用的硬件是 STM32F407 最小系统板,其实它和 F103 差别不大,只是它的处理速度要快一点吧。(STM32F1 基础性 主频 72M &STM32F4 高性能 主频 168M)这个开发板是从某宝上买的,价格也不贵,四五十块钱适合学生党。
贴上图片
用的是标准库,话不多说直接上代码
1、LED 相关配置函数 bsp_led.c
#include "bsp_led.h"
void LED_GPIO_Config()
{
/*开GPIO的时钟*/
RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOA, ENABLE); //使能GPIOA时钟
/*定义一个GPIO初始化结构体*/
GPIO_InitTypeDef GPIO_InitStruct;
/*配置GPIO初始化结构体的成员*/
GPIO_InitStruct.GPIO_Pin = GPIO_Pin_6 | GPIO_Pin_7; //LED0和LED1对应IO口
GPIO_InitStruct.GPIO_Mode = GPIO_Mode_OUT; //普通输出模式
GPIO_InitStruct.GPIO_OType = GPIO_OType_PP; //推挽输出
GPIO_InitStruct.GPIO_Speed = GPIO_Low_Speed; //低频率
GPIO_InitStruct.GPIO_PuPd = GPIO_PuPd_UP; //上拉
/*调用GPIO初始化函数,把配置好的结构体成员的参数写入寄存器*/
GPIO_Init(GPIOA,&GPIO_InitStruct); //GPIO初始化
GPIO_ResetBits(GPIOA,GPIO_Pin_6 | GPIO_Pin_7); //PA6和PA7口置低
}
复制代码
GPIO 可以根据自己的硬件资源自行配置。
2、与 LED 相关的头文 bsp_led.h
#ifndef _BSP_LED_H
#define _BSP_LED_H
#include "stm32f4xx.h"
void LED_GPIO_Config(void);
#endif
复制代码
3、主函数 main.c
#include "stm32f4xx.h"
#include "bsp_led.h"
void delay(uint32_t count)
{
for( ;count!=0;count--);
}
main()
{
LED_GPIO_Config();
while(1)
{
GPIO_ResetBits(GPIOA,GPIO_Pin_6);
delay(0x888888);
GPIO_SetBits(GPIOA,GPIO_Pin_6);
GPIO_ResetBits(GPIOA,GPIO_Pin_7);
delay(0x888888);
GPIO_SetBits(GPIOA,GPIO_Pin_7);
}
}
复制代码
这里点亮 LED 的同时还增加了 delay 的延时函数,从而产生闪烁的效果。
好啦,代码的主体部分已经展示,至于代码中使用的标准库小伙伴们可自行去官网下载或者我在文末附上此次工程的下载链接。
点亮LED工程压缩包
下一篇:【STM32】GPIO 输入—按键检测
码字不易,大家的支持就是我坚持下去的动力。点赞后不要忘了关注我哦!
评论