解释代码extern u16 ONE_SECOND_REACH_FLAG; extern u32 time_times; extern u32 alarm_delay_time; extern u16 alarm_delay_flag; extern uint32_t INPUT_DATA; u16 FARAWAY_SWTICH_FLAG = 0; u16 LOCAL_SWTICH_FLAG = 0; extern u16 CONTROL_COIL_DATA; u16 local_control_flag = 0; u16 far_control_flag = 0; extern u16 SET_PWM_DATA[4]; int main(void) { SystemInit(); NVIC_Configuration(); FLASH_Unlock(); RELAY_OUTPUT_IO_Init(); Adc_Init(); WWDG_NVIC_Init(); Timer2_Init(); CAN_Config(); SWITCH_INPUT_GPIO_Config(); USART5_Initialise(38400); NETIP_to_mcu_Initialise(9600); USART422_Initialise(9600); USART232_Initialise(9600); //初始化 RTU模式 从机地址为1 UART2 9600 无校验 eMBInit(MB_RTU, 0x01, 0x01, 9600, MB_PAR_NONE); //启动FreeModbus eMBEnable(); while (1) { // INPUT_DATA = 0x00000004; Calcu_FP_TEMP(); eMBPoll(); //modbus if (ONE_SECOND_REACH_FLAG) //1s { ONE_SECOND_REACH_FLAG = 0; // get422_ready_data(); //422 // netip_get_work_state_data(); //网口 // get232_ready_register(); //232 getusart5_ready_data(); } // SET_PWM_DATA[0] = 50; // SET_PWM_DATA[1] = 50; // SET_PWM_DATA[2] = 50; // SET_PWM_DATA[3] = 50; // scheduled_can_transmission();//can scan_input_state(); // communication485_protocol_solution();//485 //通信收发机 协议 方案 communicationusart5_protocol_solution(); //103 // getusart5_ready_data(); //获取485准备指示 get485_ready_register(); // communication422_protocol_solution(); // netip_communication_protocol_solution(); // communication_uart3_protocol_solution(); //232 //测试板 test_board_prog(); //控制 线圈 CONTROL_COIL(); } }
时间: 2023-05-25 08:04:13 浏览: 133
该代码主要是一个嵌入式系统的主函数,其中包含了一些变量的声明和初始化以及各种外设的初始化。
其中,extern关键字表示该变量在其他文件中已经定义过,现在只需要声明一下就可以在本文件中使用了。
在while(1)循环中,对各种外设进行轮询和处理,如modbus通信、UART通信、CAN总线通信、485通信等等。
同时,在每个1秒钟的时间间隔内,获取各个通信模块的数据,并进行一些控制操作,如控制输出、控制线圈等等。
总之,该代码的目的是让嵌入式系统能够高效地运行各种外设和通信模块,并实现控制和控制策略。
相关问题
extern DWORD AUTOSTOP_TIME_HOUR;
根据提供的引用内容,我们可以得知extern是一个关键字,用于在C或C++程序中声明一个变量或函数是在其他文件或模块中定义的。而DWORD是Windows API中定义的一种无符号整数类型,其大小为32位。因此,extern DWORD AUTOSTOP_TIME_HOUR;是在当前文件或模块中声明了一个名为AUTOSTOP_TIME_HOUR的变量,其类型为DWORD,并且该变量的定义在其他文件或模块中。
请解释以下代码:extern Volt_Curr Volt_CurrPara; extern ADCSamp ADCSampPara
这段代码是在声明全局变量和结构体参数。其中,extern用于声明变量或函数是在其他文件中定义的,而不是在当前文件中定义的。Volt_Curr和ADCSamp都是结构体名称,Volt_CurrPara和ADCSampPara是结构体的实例化对象。该代码片段是在文件的顶部进行声明,以允许其他函数在代码中使用这些变量和结构体参数。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)