1、参考资料 《STM32F1开发指南-寄存器》-第六章 跑马灯实验6.1小节
《STM32中文参考手册_V10》-8.2 GPIO寄存器描述 7.3.7 APB2外设时钟使能寄存器(RCC_APB2ENR)
2、编写步骤:
使能IO口时钟。配置寄存器RCC_APB2ENR。
初始化IO口模式。配置寄存器GPIOx_CRH/CRL
操作IO口,输出高低电平。配置寄存器GPIOX_ODR或者BSRR/BRR。
3、详细
新建文件夹HARDWARE,在此文件夹中新建led.c,led.h 在工程中新建分组HARDWARE,在path中添加路径
RCC_APB2ENR寄存器
led.c
#include "led.h"
#include "stm32f10x.h"
void LED_Init()
{
//对PB和PE进行时钟使能
RCC->APB2ENR |= 1<<3; //使能GPIOB
RCC->APB2ENR |= 1<<6; //使能GPIOE
//GPIOB.5 推挽输出,速度50MHz
GPIOB->CRL &= 0xFF0FFFFF; //将5四个位清零
GPIOB->CRL |= 0x00300000; //赋值
GPIOB->ODR |= 1<<5; //PB5输出高电平
//GPIOE.5
GPIOE->CRL &= 0xFF0FFFFF; //将5四个位清零
GPIOE->CRL |= 0x00300000; //赋值
GPIOE->ODR |= 1<<5; //PE5输出高电平
}
main.c
int main()
{
while(1)
{
GPIOB->ODR |= 1<<5; //PB5输出高电平
GPIOE->ODR |= 1<<5; //PE5输出高电平
delayms(300);
GPIOB->ODR &= ~(1<<5); //PB5输出低电平
GPIOE->ODR &= ~(1<<5); //PE5输出低电平
delayms(300);
}
《STM32中文参考手册_V10》-8.2 GPIO寄存器描述 7.3.7 APB2外设时钟使能寄存器(RCC_APB2ENR)
2、编写步骤:
使能IO口时钟。配置寄存器RCC_APB2ENR。
初始化IO口模式。配置寄存器GPIOx_CRH/CRL
操作IO口,输出高低电平。配置寄存器GPIOX_ODR或者BSRR/BRR。
3、详细
新建文件夹HARDWARE,在此文件夹中新建led.c,led.h 在工程中新建分组HARDWARE,在path中添加路径
RCC_APB2ENR寄存器
led.c
#include "led.h"
#include "stm32f10x.h"
void LED_Init()
{
//对PB和PE进行时钟使能
RCC->APB2ENR |= 1<<3; //使能GPIOB
RCC->APB2ENR |= 1<<6; //使能GPIOE
//GPIOB.5 推挽输出,速度50MHz
GPIOB->CRL &= 0xFF0FFFFF; //将5四个位清零
GPIOB->CRL |= 0x00300000; //赋值
GPIOB->ODR |= 1<<5; //PB5输出高电平
//GPIOE.5
GPIOE->CRL &= 0xFF0FFFFF; //将5四个位清零
GPIOE->CRL |= 0x00300000; //赋值
GPIOE->ODR |= 1<<5; //PE5输出高电平
}
main.c
int main()
{
while(1)
{
GPIOB->ODR |= 1<<5; //PB5输出高电平
GPIOE->ODR |= 1<<5; //PE5输出高电平
delayms(300);
GPIOB->ODR &= ~(1<<5); //PB5输出低电平
GPIOE->ODR &= ~(1<<5); //PE5输出低电平
delayms(300);
}
}