zoukankan      html  css  js  c++  java
  • STM32F407 跑马灯 寄存器版 个人笔记

    更多原理请参考跑马灯 库函数版 个人笔记

    步骤

    1. 使能IO口时钟。配置相关寄存器寄存器RCC->AHB1ENR

    2. 初始化IO口模式。配置四个配置寄存器
      GPIOx_MODER/ GPIOx_OTYPER/ GPIOx_OSPEEDR/ GPIOx_PUPDR

    3. 操作IO口,输出高低电平。配置寄存器GPIOX_ODR或者BSRRL/BSRRH。

    代码

    led.c

    #include "led.h"
    #include "stm32f4xx.h"
    void LED_Init(){
    	//1.使能pf9 和pf 10 的时钟
    	//打开中文参考手册,找到时钟使能寄存器ah
    	/*
    	6.3.12 RCC AHB1 外设时钟使能寄存器 (RCC_AHB1ENR)
    	*/
    	//查手册知,PF是第五位,故第五位置1,其余位不变
    	RCC->AHB1ENR |= 1<<5;
    
    	
    	//2.GPIO_init
    	//GPIOF)_9
    	GPIOF->MODER &= ~(3<<2*9);   //查手册知,19,18位为01(通用输出模式)先都置为0    ;        gpiof9,每个引脚两位
    	GPIOF->MODER |= 1<<2*9;      //再把18位置为1
    	
    	GPIOF->OSPEEDR &= ~(3<<2*9);  //19~18   10  fast 50MHz
    	GPIOF->OSPEEDR |= 2<<2*9;
    	
    	GPIOF->PUPDR &= ~(3<<2*9);  //查手册知,19,18位为01
    	GPIOF->PUPDR|= 1<<2*9; 
    	
    	GPIOF->OTYPER &= ~(1<<9);    //第九十位为0
    	
    
    	//GPIOF)_10
    	GPIOF->MODER &= ~(3<<2*10);   //查手册知,19,18位为01(通用输出模式)先都置为0    ;        gpiof9,每个引脚两位
    	GPIOF->MODER |= 1<<2*10;      //再把18位置为1
    	
    	GPIOF->OSPEEDR &= ~(3<<2*10);  //19~18   10  fast 50MHz
    	GPIOF->OSPEEDR |= 2<<2*10;
    	
    	GPIOF->PUPDR &= ~(3<<2*10);  //查手册知,19,18位为01
    	GPIOF->PUPDR|= 1<<2*10; 
    	
    	GPIOF->OTYPER &= ~(1<<10);    //第九十位为0
    	
    	//3.输出高低电平
    	GPIOF->ODR |= 1<<9;
    	GPIOF->ODR |= 1<<10;
    }
    
    
    

    led.h

    #ifndef __LED_H
    #define __LED_H
    void LED_Init(void);
    #endif
    
    

    main.c

    #include "stm32f4xx.h"
    #include "led.h"
    #include "delay.h"
    int main()
    {
    	delay_init(168);
    	LED_Init();
    	while(1){
    		Stm32_Clock_Init(336,8,2,7);//设置时钟,168Mhz,(先开始没加这一句,延时速度很慢)
    		GPIOF->ODR &=~(1<<9);
    		GPIOF->ODR |=1<<10;
    		delay_ms(500);
    	
    		
    		GPIOF->ODR |=1<<9;
    		GPIOF->ODR &=~(1<<10);
    		delay_ms(500);
    	}
    }
    
    
    
    
  • 相关阅读:
    页面小标签
    mysql 给表和字段加注释
    jackson中的@JsonBackReference
    spring boot 学习
    bootstrapTable 学习使用
    $.ajax()方法详解
    2020全新出发,DevExpress WPF 计划发布功能蓝图—Part 5
    Web UI开发神器—Kendo UI for jQuery数据管理之搜索/分页功能
    Winforms界面开发小技巧揭秘!DevExpress 自动建议功能
    Themes、Windows UI控件新玩法—DevExpress WPF v19.2
  • 原文地址:https://www.cnblogs.com/YuQiao0303/p/10006174.html
Copyright © 2011-2022 走看看