STM32别名区端口从定义头文件
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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-