#include "stm32f4xx.h"
// Define macros for enabling GPIO clocks
#define GPIOAEN (1U<<0) // Enable clock for GPIOA
#define GPIOCEN (1U<<2) // Enable clock for GPIOC
// Define macros for GPIO pins
#define PIN5 (1U<<5) // Pin 5
#define PIN13 (1U<<13) // Pin 13
// Simple delay function
void delay(int duration){
for(int i = 0; i < duration; i++) {
// Busy-wait delay
}
}
int main(void){
// Enable GPIOA and GPIOC clocks
RCC->AHB1ENR |= GPIOAEN;
RCC->AHB1ENR |= GPIOCEN;
// Set PA5 as output (00: input, 01: output)
GPIOA->MODER &= ~(3U << (5 * 2)); // Clear mode bits for PA5
GPIOA->MODER |= (1U << (5 * 2)); // Set PA5 to output mode
// Set PC13 as input (default mode)
GPIOC->MODER &= ~(3U << (13 * 2)); // Ensure PC13 is set as input
while (1) {
// Check if PC13 is high
if (GPIOC->IDR
Loading
st-nucleo-c031c6
st-nucleo-c031c6