stm32寄存器版——跑马灯

Posted zhenwgei

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了stm32寄存器版——跑马灯相关的知识,希望对你有一定的参考价值。

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

 

以上是关于stm32寄存器版——跑马灯的主要内容,如果未能解决你的问题,请参考以下文章

STM32 学习4 寄存器编程跑马灯示例

STM32入门踩坑笔记——

STM32F103五分钟入门系列时钟框图+相关寄存器总结+系统时钟来源代码(寄存器)

STM32F103五分钟入门系列SysTick滴答定时器+SysTick中断实现跑马灯

正点原子STM32(基于HAL库)2

STM32F103(二十)DAC(贼详细)