你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

【MCU实战经验】STM32F407使用位绑定区操作IO引脚

[复制链接]
scotthsl 发布时间:2014-4-21 10:03
 参考正点原子F103系列的代码,对F407进行了适配,同时代码也兼容F1系列的
 
代码在F4Discovery上验证通过,使用位绑定别名区来操作板子上的四个用户LED
 
 
// Header        :
// File Name:bit_banding.h
// Author        :***
// Date                :2014/04/04
// Explain        :       
#ifndef __BIT_BANDING_H__
#define __BIT_BANDING_H__
 
 
//M4内核的GPIO寄存器基地址等
#if defined (STM32F40_41xxx) || defined (STM32F427_437xx) || defined (STM32F429_439xx) || defined (STM32F401xx) || defined (STM32F40XX) || defined (STM32F427X)
//这些宏定义在使用最新库函数时,都会有定义
 
#include "stm32f4xx.h"
 
#define GPIO_REG_ADDR_BASE                0x40020000ul
#define GPIO_REG_ADDR_OFFSET        0x400ul
 
#define GPIO_ODR_OFFSET                        0x14ul
#define GPIO_IDR_OFFSET                        0x10ul
 
#endif
 
//M3内核的GPIO寄存器基地址
#if defined (STM32F10X_LD) || defined (STM32F10X_LD_VL) || defined (STM32F10X_MD) || defined (STM32F10X_MD_VL) || defined (STM32F10X_HD) || defined (STM32F10X_HD_VL) || defined (STM32F10X_XL) || defined (STM32F10X_CL) 
 
#include "stm32f10x.h"
 
#define GPIO_REG_ADDR_BASE                0x40010800ul
#define GPIO_REG_ADDR_OFFSET        0x400ul
 
#define GPIO_ODR_OFFSET                        0x0Cul
#define GPIO_IDR_OFFSET                        0x08ul
 
#endif
 
 
//别名区的基地址的末地址,在M3和M4中是一样的,位地址的计算公式也是一样的
 
//外设别名区的基地址
#define BIT_BAND_ALIAS_PERIPHERAL_BASE        0x42000000ul
 
#define BIT_BAND_ALIAS_PERIPHERAL_END        0x43FFFFFFul
 
//SRAM别名区基地址
#define BIT_BAND_ALIAS_SRAM_BASE                0x22000000ul
//
#define BIT_BAND_ALIAS_SRAM_END                        0x23FFFFFFul
 
 
//在bitband区中 位地址的计算公式
#define BIT_WORD_ADDR(ByteAddr, BitNumber)        ((ByteAddr&0xF0000000) + 0x2000000 + (ByteAddr&0x000FFFFF)*32 + (BitNumber&0x0000000F)*4)
 
 
//将地址转换成指针,这样才能读写地址中的值
#define CONVERT_TO_PTR(BitWordAddr)                ( *( (volatile unsigned long *)BitWordAddr ) )
 

//BitNumber

STM32F40xTemplate.rar

下载

686.02 KB, 下载次数: 18

收藏 评论0 发布时间:2014-4-21 10:03

举报

0个回答
关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版