Tutorial: Custom initialization
Custom MCU initialization
Instead of writing initial setting functions for each registers, you can call MCU_init() to call the commonly used default initialization.
Define this in ecSTM32F411.h.
void MCU_init(void){
    // CLOCK PLL 84MHz
    RCC_PLL_init();
    
    // SysTick 1msec
    SysTick_init();    
    
    // Button PC13
    GPIO_init(PC_13, INPUT);
    GPIO_pupd(PC_13, EC_PD);    
    
    // LED PA5
    GPIO_init(PA_5, OUTPUT);    
    // TIMx Default Initialization
    // ...
    // PWM Default Initialization
    // ...        
    // USART Default Initialization
    // ...
    // Others
}In main source code,
#include “ecSTM32F411.h”	// includes all necessary library
// Initialization
void setup(){
	MCU_init();
	// Modify or Add more initializations
	// Modify or Add more initializations
}
// Main 
void main(){
	setup( );
	while(1){
	// polling logic goes here
	};
}Examples of default initialization
Clock
PLL 84MHz
SysTick
tick period of 1msec
GPIO
Evaluation board Button : PC13
Evaluation board LED : PA5
TIMx
Timer2 Period: 1msec
Timer2 Interrupt: 1mec
Last updated
Was this helpful?