main.c 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. #include "../CMSIS/gd32f10x.h"
  2. #include "systick.h"
  3. #include "../Hardware/boardinit.h"
  4. #include "../App/xspDataOpt.h"
  5. #include "../App/taskOpt.h"
  6. #include "../App/air780e.h"
  7. #include "../App/masterslave.h"
  8. extern volatile uint32_t g_tick;
  9. int main(void)
  10. {
  11. systick_config();
  12. board_init();
  13. // init_flash();
  14. rct_init();
  15. epprom_power_up_deal();
  16. ota_power_up_read_update_status();
  17. printf_dev_msg();
  18. srand(g_devMsg.devSn);
  19. //powerup_read_record_from_flash(g_xspReDa.data);
  20. //power_up_read_comm_min_time();
  21. uart_init();
  22. init_mqtt_power_up(); //连接4G
  23. init_run_data();
  24. while(1){
  25. if(key_scan()){
  26. printf("按键按下 按键=%x, 次数=%d\r\n",g_keyinfo.keyVal,g_keyinfo.count);
  27. key_opteration();
  28. g_keyinfo.count = 0;
  29. g_keyinfo.keyVal = 0;
  30. }
  31. if((B4G_HAVE == g_devMsg.bHave4G)){ // 有4G模块
  32. if((0==g_4gMsg.bconnect) && (WORK_UPDATE != g_devMsg.workMode)){ // 重连4G模块
  33. g_devMsg.baskIdentity = 0x00;
  34. if(timeout_isOut(&g_4gMsg.timer)){ // 上次时间超时
  35. init_4g_power_up();
  36. init_mqtt_power_up();
  37. }
  38. }
  39. dev_4g_up_status_to_server(); // 有4G的从设备上发状态信息
  40. master_deal_4g_rx_data(); // 处理4G的接收fifo
  41. if(WORK_UPDATE != g_devMsg.workMode) {
  42. master_work_loop();
  43. }
  44. if(1 == g_up7segData.bOpen) open_8seg_test_mode();// 调试模式
  45. }
  46. analysis_485_rx_fifo(); // 读取485的接收fifo
  47. master_deal_4g_tx_data(); // 读取 4G的发送fifo,并发送数据到服务器
  48. if(WORK_UPDATE == g_devMsg.workMode){
  49. ota_check_update_timer();
  50. ota_offline_handle();//离线升级
  51. }
  52. ota_update_deal_upstatus();//处理升级的状态上报
  53. }
  54. }