/*
**********************************************************************
*name: IE_stm32_gpio.h
*author: Samuel Igwe
*date: 07/16/2013
*description: Igbo Embedded stm32_gpio header
**********************************************************************
*/
#ifndef IE_STM32_GPIO
#define IE_STM32_GPIO
#define PTR_STM32_GPIO_A_BASE 0x40010800
#define PTR_STM32_GPIO_B_BASE 0x40010c00
#define PTR_STM32_GPIO_C_BASE 0x40011000
#define PTR_STM32_GPIO_D_BASE 0x40011400
/*
**********************************************************************
*port configuration #defines
**********************************************************************
*/
#define STM32_GPIO_CNF0_OFFSET 2
#define STM32_GPIO_CNF_MASK 3
#define STM32_GPIO_CNF_IN_ANALOG 0
#define STM32_GPIO_CNF_IN_FLOATING 1
#define STM32_GPIO_CNF_IN_PULL_UP_DOWN 2
#define STM32_GPIO_CNF_OUT_GEN_PUSH_PULL 0
#define STM32_GPIO_CNF_OUT_GEN_OPEN_DRAIN 1
#define STM32_GPIO_CNF_OUT_ALT_PUSH_PULL 2
#define STM32_GPIO_CNF_OUT_ALT_OPEN_DRAIN 3
#define STM32_GPIO_MODE1_OFFSET 4
#define STM32_GPIO_MODE_INPUT_MODE 0
#define STM32_GPIO_MODE_OUTPUT_10MHZ 1
#define STM32_GPIO_MODE_OUTPUT_2MHZ 2
#define STM32_GPIO_MODE_OUTPUT_50MHZ 3
/*
**********************************************************************
*port configuration register low
**********************************************************************
*/
#define PTR_STM32_GPIO_A_CRL (volatile unsigned int *)(PTR_STM32_GPIO_A_BASE + 0)
#define PTR_STM32_GPIO_B_CRL (volatile unsigned int *)(PTR_STM32_GPIO_B_BASE + 0)
#define PTR_STM32_GPIO_C_CRL (volatile unsigned int *)(PTR_STM32_GPIO_C_BASE + 0)
#define PTR_STM32_GPIO_D_CRL (volatile unsigned int *)(PTR_STM32_GPIO_D_BASE + 0)
/*
**********************************************************************
*port configuration register high
**********************************************************************
*/
#define PTR_STM32_GPIO_A_CRH (volatile unsigned int *)(PTR_STM32_GPIO_A_BASE + 4)
#define PTR_STM32_GPIO_B_CRH (volatile unsigned int *)(PTR_STM32_GPIO_B_BASE + 4)
#define PTR_STM32_GPIO_C_CRH (volatile unsigned int *)(PTR_STM32_GPIO_C_BASE + 4)
#define PTR_STM32_GPIO_D_CRH (volatile unsigned int *)(PTR_STM32_GPIO_D_BASE + 4)
/*
**********************************************************************
*port input data register
**********************************************************************
*/
#define PTR_STM32_GPIO_A_IDR (volatile unsigned int *)(PTR_STM32_GPIO_A_BASE + 8)
#define PTR_STM32_GPIO_B_IDR (volatile unsigned int *)(PTR_STM32_GPIO_B_BASE + 8)
#define PTR_STM32_GPIO_C_IDR (volatile unsigned int *)(PTR_STM32_GPIO_C_BASE + 8)
#define PTR_STM32_GPIO_D_IDR (volatile unsigned int *)(PTR_STM32_GPIO_D_BASE + 8)
#define STM32_GPIO_IDR_MASK 0x0ffff
/*
**********************************************************************
*port output data register
**********************************************************************
*/
#define PTR_STM32_GPIO_A_ODR (volatile unsigned int *)(PTR_STM32_GPIO_A_BASE + 12)
#define PTR_STM32_GPIO_B_ODR (volatile unsigned int *)(PTR_STM32_GPIO_B_BASE + 12)
#define PTR_STM32_GPIO_C_ODR (volatile unsigned int *)(PTR_STM32_GPIO_C_BASE + 12)
#define PTR_STM32_GPIO_D_ODR (volatile unsigned int *)(PTR_STM32_GPIO_D_BASE + 12)
#define STM32_GPIO_ODR_MASK 0x0ffff
/*
**********************************************************************
*port bit set/reset register
**********************************************************************
*/
#define PTR_STM32_GPIO_A_BSRR (volatile unsigned int *)(PTR_STM32_GPIO_A_BASE + 16)
#define PTR_STM32_GPIO_B_BSRR (volatile unsigned int *)(PTR_STM32_GPIO_B_BASE + 16)
#define PTR_STM32_GPIO_C_BSRR (volatile unsigned int *)(PTR_STM32_GPIO_C_BASE + 16)
#define PTR_STM32_GPIO_D_BSRR (volatile unsigned int *)(PTR_STM32_GPIO_D_BASE + 16)
#define STM32_GPIO_BSRR_BR_MASK (0x0ffff << 16)
#define STM32_GPIO_BSRR_BS_MASK (0x0ffff << 0)
/*
**********************************************************************
*port bit reset register
**********************************************************************
*/
#define PTR_STM32_GPIO_A_BRR (volatile unsigned int *)(PTR_STM32_GPIO_A_BASE + 20)
#define PTR_STM32_GPIO_B_BRR (volatile unsigned int *)(PTR_STM32_GPIO_B_BASE + 20)
#define PTR_STM32_GPIO_C_BRR (volatile unsigned int *)(PTR_STM32_GPIO_C_BASE + 20)
#define PTR_STM32_GPIO_D_BRR (volatile unsigned int *)(PTR_STM32_GPIO_D_BASE + 20)
#define STM32_GPIO_BR_MASK 0x0ffff
/*
**********************************************************************
*port configuration lock register
**********************************************************************
*/
#define PTR_STM32_GPIO_A_LCKR (volatile unsigned int *)(PTR_STM32_GPIO_A_BASE + 24)
#define PTR_STM32_GPIO_B_LCKR (volatile unsigned int *)(PTR_STM32_GPIO_B_BASE + 24)
#define PTR_STM32_GPIO_C_LCKR (volatile unsigned int *)(PTR_STM32_GPIO_C_BASE + 24)
#define PTR_STM32_GPIO_D_LCKR (volatile unsigned int *)(PTR_STM32_GPIO_D_BASE + 24)
#define STM32_GPIO_LCKR_MASK 0x1ffff
#define STM32_GPIO_LCKR_LCKK 0x10000
#endif
Thursday, July 18, 2013
IE_stm32_gpio.h
Subscribe to:
Post Comments (Atom)
No comments:
Post a Comment