aboutsummaryrefslogtreecommitdiff
path: root/STM32F429ZIT6_HelloWorld/main.c
diff options
context:
space:
mode:
Diffstat (limited to 'STM32F429ZIT6_HelloWorld/main.c')
-rw-r--r--STM32F429ZIT6_HelloWorld/main.c28
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);
+}