企业🤖AI智能体构建引擎,智能编排和调试,一键部署,支持私有化部署方案 广告
  main函数主要的工作是初始化各个层级的功能,并进入到系统调度中,并非所有的功能都需要使用,在实际项目开发中,我们可以按需进行选择性的应用,main函数内容如下: ``` #include "main.h" /* Tasks */ #include "task_example.h" #include "task_system.h" /* Libs */ #include "atcmd.h" /* Services */ #include "svc_log.h" #include "svc_humiture.h" #include "svc_msg.h" #include "svc_hid.h" #include "svc_database.h" #include "svc_system.h" /* HAL */ #include "hal_lcd.h" #include "hal_vht2x.h" #include "hal_button.h" #include "hal_led.h" #include "hal_i2c.h" #include "hal_uart.h" #include "hal_iwdg.h" #ifdef __LPM__ #include "hal_rtc.h" #include "hal_lpm.h" #endif /* __LPM__ */ #include "hal_flash.h" #include "hal_ioctl.h" #include "hal_idt.h" #include "hal_systick.h" #include "hal_system.h" static void hal_init(void); static void svc_init(void); static void libs_init(void); static void task_init(void); /* * Main function. */ int main(void) { hal_init(); svc_init(); libs_init(); task_init(); svc_system_run(); } /* * Initial HAL */ void hal_init() { hal_system_init(); hal_systick_init(); hal_idt_init(); hal_ioctl_init(); hal_flash_init(); #ifdef __LPM__ hal_lpm_init(); hal_rtc_init(); #endif hal_iwdg_init(); hal_uart_init(); hal_i2c_init(); hal_led_init(); hal_button_init(); hal_vht2x_init(0); hal_lcd_init(); } void svc_init() { #ifdef __LPM__ svc_system_init(5000); #else svc_system_init(2000); #endif svc_database_init(); svc_hid_init(); svc_msg_init(); svc_humiture_init(); svc_log_init(); } void libs_init() { atcmd_init(); } void task_init() { task_system_init(); task_example_init(); } ```