You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
KED/bsl/csl/stm32f042/gpio/gpioMap.hpp

46 lines
1.1 KiB

/*
* My gola is to write my own gio lib
*
*/
//USER LED GREEN
//PORT B
//PIN 3
//#define PERIPH_BASE (0x40000000UL)
#define AHB1_PERIPH_OFFSET (0x00020000UL)
#define AHB1_PERIPH_BASE (PERIPH_BASE + AHB1_PERIPH_OFFSET)
#define AHB2_PERIPH_OFFSET (0x08000000UL)
#define AHB2_PERIPH_BASE (PERIPH_BASE + AHB2_PERIPH_OFFSET)
#define GPIOA_OFFSET (0x0000U)
//#define GPIOA_BASE (AHB2_PERIPH_BASE + GPIOA_OFFSET)
#define GPIOB_OFFSET (0x00000400UL)
//#define GPIOB_BASE (AHB2_PERIPH_BASE + GPIOB_OFFSET)
#define RCC_OFFSET (0x00021000UL)
//#define RCC_BASE (AHB1_PERIPH_BASE + RCC_OFFSET)
//https://stackoverflow.com/questions/18785991/define-regx-volatile-unsigned-int-x
#define AHBENR_OFFSET (0x14UL)
#define RCC_AHBENR (*(volatile unsigned int *)(RCC_BASE + AHBENR_OFFSET))
#define IOPAEN (1U << 17)
#define IOPBEN (1U << 18)
#define MODER_OFFSET (0x00UL)
#define GPIOX_MODER (*(volatile unsigned int *)(GPIOB_BASE + MODER_OFFSET))
#define GPIOX_ODR_OFFSET (0x14UL)
#define GPIOB_ODR (*(volatile unsigned int *)(GPIOB_BASE + GPIOX_ODR_OFFSET))
#define PINB3 (1U<<3)
#define LED_PIN PINB3