stm32寄存器版——跑马灯

馋奶兔 提交于 2019-12-03 07:24:17

一。首先头文件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);
   }
}

 

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!