#include "stm32f4xx_rcc.h" #include "led.h" // #include "lcd.h" #include "rs485.h" #include "dwin.h" volatile uint32_t system_tick_cnt; void system_tick_init(void) { RCC_ClocksTypeDef rcc_clocks; system_tick_cnt = 0; RCC_GetClocksFreq(&rcc_clocks); SysTick_CLKSourceConfig(SysTick_CLKSource_HCLK); SysTick_Config(rcc_clocks.HCLK_Frequency / 1000); } void led_loop(void) { static uint32_t tick = 0; if (system_tick_cnt - tick > 500) { led_toggle(); tick = system_tick_cnt; } } void system_init(void) { led_init(); system_tick_init(); // lcd_init(); rs485_init(); dwin_init(); } int main(void) { system_init(); NVIC_PriorityGroupConfig(NVIC_PriorityGroup_4); SCB->VTOR = 0x08000000; __enable_irq(); while (1) { led_loop(); // lcd_loop(); rs485_loop(); dwin_loop(); } return 0; } void SysTick_Handler(void) { system_tick_cnt++; }