一。首先头文件LED定义
1 # ifndef __Led_H 2 #define __Led_H 3 #include "sys.h" 4 #define LED0 PBout(5) // 5 #define LED1 PEout(5) 6 void LED_Init(void); 7 #endif
二 LED.c
3.GPIO_CRL端口配置低寄存器
GPIO_CRH端口配置高寄存器
GPIO_IDR端口输入寄存器
GPIO_ODR端口输出寄存器
GPIO_BSRR端口位设置/清除寄存器
GPIO-BRR端口位清除寄存器
GPIO_LCKR端口配置锁存寄存器
每一组CNFy[1:0]和MODEx[1:0]为一组;
#include LED.h void LED_Init() { RCC->APB2ENR|=1<<3; //使能PORTB RCC->APB2ENR|=1<<6; //使能PORTE GPIOB->CRL&=0XFF0FFFFF; //清0 GPIOB->CRL|=0X00300000; //PB.5推挽输出 3->0011 GPIOB->ODR|=1<<5; //.PBS输出高 GPIOE->CRL&=0XFF0FFFFF; //清0 GPIOE->CRL|=0X00300000; //PE.5推挽输出 GPIOE->ODR|=1<<5; //.PES输出高 }
清0操作:&=把要赋值的那位写0,其他写1;
三.main 函数
#include "delay.h" #include "sys.h" #include "led.h" main() { Stm32_Clock_Init(9); //系统时钟设置 delay_init (72); //延时初始化 LED_Init(); //LED连接的硬件接口 while(1) { LED1=1;LED0=0; delay_ms(300); LED1=0;LED0=1; delay_ms(300); } }