基于STM32F103点亮一盏LED寄存器版自学笔记
建立一个led.c头文件
硬件电路图两盏led分别接GPIOE.5和GPIOB.5
#include “led.h”
#include “stm32f10x.h”
void LED_Init(void)
{
/使能GPIOE和GPIOB的IO时钟/
RCC->APB2ENR|=1<<3;
RCC->APB2ENR|=1<<6;
//GPIOB.5
/gpio0gpio7端口配置低寄存器CRL,gpio8gpio15端口配置高寄存器CRH/
GPIOB->CRL&=0xFF0FFFFF;//仅对GPIOB.5 清零
GPIOB->CRL|=0x00300000;//对GPIOB.5设置为最大为50M的推挽输出模式
GPIOB->ODR|=1<<5;//设置端口5为高电平
GPIOE->CRL&=0xFF0FFFFF;
GPIOE->CRL|=0x00300000;
GPIOE->ODR|=1<<5;
//GPIOE.5
}
建立一个led.h头文件
#ifndef __LED_H
#define __LED_H
void LED_Init(void);
#endif
建立一个main.c头文件
#include “stm32f10x.h”
#include “delay.h”
#include “led.h”
int main(void)
{
delay_init();
LED_Init();
while(1){
GPIOB->ODR|=1<<5;
GPIOE->ODR|=1<<5;
delay_ms(500);
GPIOB->ODR&=~(1<<5);
GPIOE->ODR&=~(1<<5);
delay_ms(500);
}
}