【1】STM32:跑马灯配置
作者:互联网
一、库函数版本
1.新建一个 led.h 文件
#ifndef _LED_H #define _LED_H #include "sys.h" #define LED0 PBout(5) // DS0 #define LED1 PEout(5) // DS1 void LED_Init(void); // LED接口初始化 #endif
这段代码里面最关键就是 2 个宏定义,通过位带操作 PB5 输出高低电平从而控制 LED0 。
LED0=1; //通过位带操作控制 LED0 的引脚 PB5 输出高电平 LED0=0; //通过位带操作控制 LED0 的引脚 PB5 输出低电平
同样也可以使用固件库操作和寄存器操作,来实现 IO 口操作。
GPIO_SetBits(GPIOB, GPIO_Pin_5); //设置 GPIOB.5 输出 1,等同 LED0=1; GPIO_ResetBits (GPIOB, GPIO_Pin_5); //设置 GPIOB.5 输出 0,等同 LED0=0;
还可以通过直接操作寄存器,BRR 和 BSRR 的方式来操作 IO 口输出高低电平。
GPIOB->BRR=GPIO_Pin_5; //设置 GPIOB.5 输出 1,等同 LED0=1; GPIOB->BSRR=GPIO_Pin_5; //设置 GPIOB.5 输出 0,等同 LED0=0;
2.新建一个 led.c文件
#include "led.h" void LED_Init(void) { GPIO_InitTypeDef GPIO_InitStructure; // 使能GPIOB、GPIOE端口时钟 RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB|RCC_APB2Periph_GPIOE, ENABLE); // 配置GPIOB.5 推挽输出 GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; GPIO_InitStructure.GPIO_Pin = GPIO_Pin_5; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; GPIO_Init(GPIOB, &GPIO_InitStructure); GPIO_SetBits(GPIOB, GPIO_Pin_5); // 配置GPIOE.5 推挽输出 GPIO_InitStructure.GPIO_Pin = GPIO_Pin_5; GPIO_Init(GPIOE, &GPIO_InitStructure); GPIO_SetBits(GPIOE, GPIO_Pin_5); }
标签:LED0,GPIOB,Pin,输出,配置,STM32,跑马灯,InitStructure,GPIO 来源: https://www.cnblogs.com/djcoder/p/13782373.html