diff options
Diffstat (limited to 'STM32F429ZIT6_HelloWorld/main.c')
-rw-r--r-- | STM32F429ZIT6_HelloWorld/main.c | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/STM32F429ZIT6_HelloWorld/main.c b/STM32F429ZIT6_HelloWorld/main.c new file mode 100644 index 0000000..0025c55 --- /dev/null +++ b/STM32F429ZIT6_HelloWorld/main.c @@ -0,0 +1,28 @@ +#include <stdint.h> +#include <stdbool.h> + +uint32_t *RCC = (uint32_t *) 0x40023800; +uint32_t *AHB1ENR = (uint32_t *) 0x40023830; +uint32_t *GPIOB_MODER = (uint32_t *) 0x40020400; +uint32_t *GPIOB_ODR = (uint32_t *) 0x40020414; +uint32_t *GPIOB = (uint32_t *) 0x40020400; +uint32_t *GPIOA_MODER = (uint32_t *) 0x40020000; +uint32_t *GPIOA = (uint32_t *) 0x40020000; + +#define set(reg, bit, val) *(reg) ^= (-(val) ^ *(reg)) & (1UL << (bit)) + +int main(void) { + set(AHB1ENR, 1 /* GPIOBEN */, true); + set(AHB1ENR, 0 /* GPIOAEN */, true); + + set(GPIOB_MODER, 0 /* MODER0 */, true); + set(GPIOB_MODER, 1 /* MODER0 */, false); + set(GPIOB_MODER, 14 /* MODER7 */, true); + set(GPIOB_MODER, 15 /* MODER7 */, false); + set(GPIOB_MODER, 28 /* MODER14 */, true); + set(GPIOB_MODER, 29 /* MODER14 */, false); + + set(GPIOB_ODR, 0 /* ODR0 */, true); + set(GPIOB_ODR, 7 /* ODR7 */, true); + set(GPIOB_ODR, 14 /* ODR14 */, true); +} |