STM32别名区端口从定义头文件

  • 格式:doc
  • 大小:69.50 KB
  • 文档页数:14

下载文档原格式

  / 14
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

/***********************************************

*@file name : gpioremap.h

*@by : artisan CO.,L TD

* : artisan

*@version : V1.0.0

*@date :08/06/2010

**************************************************/

/*************************************************

别名区重映射实现端口位操作

GPIOA BASE ADDRESS 0x4001 0800

END ADDRESS 0x4001 0BFF

GPIOB BASE ADDRESS 0x4001 0C00

END ADDRESS 0x4001 0FFF

GPIOC BASE ADDRESS 0x4001 1000

END ADDRESS 0x4001 13FF

GPIOD BASE ADDRESS 0x4001 1400

END ADDRESS 0x4001 17FF

GPIOE BASE ADDRESS 0x4001 1800

END ADDRESS 0x4001 1BFF

GPIOF BASE ADDRESS 0x4001 2000

END ADDRESS 0x4001 23FF

GPIOG BASE ADDRESS 0x4001 2000

END ADDRESS 0x4001 23FF

GPIO_CLR OFFSET ADDRESS OX00 //GPIO Config low reg

GPIO_CHR OFFSET ADDRESS OX04 //GPIO Config high reg

GPIO_IDR OFFSET ADDRESS OX08 //GPIO Data InPut reg

GPIO_ODR OFFSET ADDRESS OX0C //GPIO Data OutPut reg

GPIO_BSRR OFFSET ADDRESS OX10 //GPIO Bit SET/CLR reg

GPIO_BRR OFFSET ADDRESS OX14 //GPIO Bit CLR reg

GPIO_LCKR OFFSET ADDRESS OX18 //GPIO LOCK Config reg

计算公式

别名区= ADDRESS=0x4200 0000 + ((GPIOX BASE ADDRESS - 0X4000 0000 + reg

OFFSET ADDRESS )*0x20)+ (GPIO_Pin_x*4) //X为端口号x 为引脚号

*************************************************/

#ifndef __GPIO_REMAP_H

#define __GPIO_REMAP_H

#define SUBADD 0x42000000

#define uSUBADD 0x40000000

#define GPIOA_BASE_ADDRESS 0x40010800

#define GPIOB_BASE_ADDRESS 0x40010C00

#define GPIOC_BASE_ADDRESS0x40011000

#define GPIOD_BASE_ADDRESS 0x40011400

#define GPIOE_BASE_ADDRESS0x40011800

#define GPIOF_BASE_ADDRESS 0x40012000

#define GPIOG_BASE_ADDRESS 0x40012000

#define GPIO_IDR_OFFSET_ADDRESS 0x08

#define GPIO_ODR_OFFSET_ADDRESS 0x0c

#define GPIO_BIT_0 0

#define GPIO_BIT_1 1

#define GPIO_BIT_2 2

#define GPIO_BIT_3 3

#define GPIO_BIT_4 4

#define GPIO_BIT_5 5

#define GPIO_BIT_6 6

#define GPIO_BIT_7 7

#define GPIO_BIT_8 8

#define GPIO_BIT_9 9

#define GPIO_BIT_10 10

#define GPIO_BIT_11 11

#define GPIO_BIT_12 12

#define GPIO_BIT_13 13

#define GPIO_BIT_14 14

#define GPIO_BIT_15 15

// GPIOA InPut Mode

#define GPIOA_Pin0_InPut ((volatile unsigned long *) (SUBADD+(GPIOA_BASE_ADDRESS-

uSUBADD+GPIO_IDR_OFFSET_ADDRESS)*0x20+(GPIO_BIT_0*4)))

#define GPIOA_Pin1_InPut ((volatile unsigned long *) (SUBADD+(GPIOA_BASE_ADDRESS-

uSUBADD+GPIO_IDR_OFFSET_ADDRESS)*0x20+(GPIO_BIT_1*4)))

#define GPIOA_Pin2_InPut ((volatile unsigned long *) (SUBADD+(GPIOA_BASE_ADDRESS-

uSUBADD+GPIO_IDR_OFFSET_ADDRESS)*0x20+(GPIO_BIT_2*4)))

#define GPIOA_Pin3_InPut ((volatile unsigned long *) (SUBADD+(GPIOA_BASE_ADDRESS-

uSUBADD+GPIO_IDR_OFFSET_ADDRESS)*0x20+(GPIO_BIT_3*4)))

#define GPIOA_Pin4_InPut ((volatile unsigned long *) (SUBADD+(GPIOA_BASE_ADDRESS-

uSUBADD+GPIO_IDR_OFFSET_ADDRESS)*0x20+(GPIO_BIT_4*4)))

#define GPIOA_Pin5_InPut ((volatile unsigned long *) (SUBADD+(GPIOA_BASE_ADDRESS-

uSUBADD+GPIO_IDR_OFFSET_ADDRESS)*0x20+(GPIO_BIT_5*4)))

#define GPIOA_Pin6_InPut ((volatile unsigned long *) (SUBADD+(GPIOA_BASE_ADDRESS-