#include "McuBspSys.h" #include "McuBspRtc.h" #include "McuBspTimer.h" #include "McuTaskFlash.h" #include "McuTaskImu.h" #include "McuTaskInPara.h" #include "McuTaskLowPower.h" #include "McuTaskManyPara.h" #include "McuTaskPosition.h" #include "McuTaskBlueTooth.h" #include "McuBspGpio.h" #include "BeiDouHtyDrv.h" #include #include /* 初始化任务 */ static void AppInit(void); /* APP的各任务 */ static void AppTask(void); /* APP测试程序 */ static void AppTest(void); int main(void) { uint8_t mode = 0; /* 初始化系统 */ McuBspSysInit(); /* 初始化RTC */ McuBspRtcInit(); McuTaskFlashInit(); /* 北斗初始化 */ McuDrvBeiDouHtyInit(); McuDrvBeiDouHtyConfOpposite("0917587", strlen("0917587")); /* 写入数据 */ McuTaskFlashWriteOpt("App Join Success\r\n", strlen("App Join Success\r\n")); /* 蓝牙任务初始化 */ McuTaskBlueToothInit(); /* 测试引入的开启北斗 */ if (0 == McuDrvBeiDouHtyPowerSta()) { int j = 0; McuDrvBeiDouHtyOpenPower(); while (1) { HAL_Delay(10); j++; if (j >= 6000) { break; } } } do { // mode = TaskBlueToothGetAppMode(); // if (mode == 0) { // int j = 0; // /* 通知上位机,蓝牙进入低功耗模式 */ // if (0 == TaskBlueToothGetBluetoothMode()) { // TaskBlueToothJoinLowPowerNoticePlat(); // } // /* 将北斗模块断电处理 */ // if (0 != McuDrvBeiDouHtyPowerSta()) { // McuDrvBeiDouHtyClosePower(); // } // /* 进入休眠 */ // McuTaskSleep(); // /* 从完全低功耗唤醒之后的动作 */ // while (1) { // HAL_Delay(10); // j++; // if (j >= 6000) { // break; // } // McuTaskBlueTooth(); // mode = TaskBlueToothGetAppMode(); // if (mode != 0) { // AppInit(); // McuTaskImuBeiDouAsk(); // McuTaskInParaBeiDouAsk(); // McuTaskManyParaBeiDouAsk(); // McuTaskPositionBeiDouAsk(); // /* 打开北斗通信 */ // if (0 == McuDrvBeiDouHtyPowerSta()) { // McuDrvBeiDouHtyOpenPower(); // } // HAL_Delay(60000); // break; // } // } // } else if (mode == 1) { // TaskBlueToothNewTimer(); // while (1) { // AppTask(); // mode = TaskBlueToothGetAppMode(); // if (mode != 1) { // TaskBlueToothDelTimer(); // break; // } // /* 通知上位机,蓝牙进入低功耗模式 */ // if (0 == TaskBlueToothGetBluetoothMode()) { // TaskBlueToothJoinLowPowerNoticePlat(); // } // /* 判断是否有北斗任务在执行,没有就进行关闭 */ // if ((0 == (0x01 & McuTaskImuAskStatus())) && (0 == (0x01 & McuTaskInParaAskStatus())) && // (0 == (0x01 & McuTaskManyParaAskStatus())) && (0 == (0x01 & McuTaskPositionAskStatus()))) { // McuDrvBeiDouHtyClosePower(); // } // /* 进入低功耗 */ // if (0 == McuTaskFlashGetAsk() && 0 == McuTaskImuAskStatus() && 0 == McuTaskInParaAskStatus() && 0 == McuTaskManyParaAskStatus() && 0 == McuTaskPositionAskStatus() && 0 == TaskBlueToothGetBluetoothMode()) { // McuTaskLowPowerJoin(); // } // } // } else if (mode == 2) { // TaskBlueToothNewTimer(); // while (1) { // AppTest(); // mode = TaskBlueToothGetAppMode(); // if (mode != 2) { // TaskBlueToothDelTimer(); // break; // } // /* 通知上位机蓝牙进入低功耗模式 */ // if (0 == TaskBlueToothGetBluetoothMode()) { // TaskBlueToothJoinLowPowerNoticePlat(); // } // } // } AppTest(); } while (1); return 0; } /* 初始化任务 */ static void AppInit(void) { /* 初始化定时器 */ McuBspTimerInit(); /* FLASH任务初始化 */ McuTaskFlashConfInit(); /* 姿态任务初始化 */ McuTaskImuInit(); /* 内部环境任务初始化 */ McuTaskInParaInit(); /* 多参数任务初始化 */ McuTaskManyParaInit(); /* 定位任务初始化 */ McuTaskPositionInit(); } /* APP的各任务 */ static void AppTask(void) { uint32_t j = 0; /******************************************* FLASH任务 ***********************************/ while (1) { j = 0; if (0 == McuTaskFlashGetAsk()) { break; } McuTaskFlash(NULL); /* 等待发送再次被置位 */ while (1) { HAL_Delay(15); j++; if (j >= 1000) { break; } McuTaskBlueTooth(); if (0 != McuTaskFlashGetSendFlag()) { break; } } if (j >= 1000) { McuTaskFlashClearAsk(); break; } } /****************************************** IMU任务 *************************************/ if (McuTaskImuAskStatus()) { McuTaskImuTask(); } McuTaskBlueTooth(); /************************************* 内部环境参量任务 **********************************/ if (McuTaskInParaAskStatus()) { McuTaskInParaTask(); } McuTaskBlueTooth(); /*************************************** 多参数任务 *************************************/ if (McuTaskManyParaAskStatus()) { McuTaskManyPara(); } McuTaskBlueTooth(); /**************************************** 位置任务 **************************************/ if (McuTaskPositionAskStatus()) { McuTaskPosition(); } McuTaskBlueTooth(); } static void AppTest(void) { uint32_t j = 0; AppInit(); McuTaskImuBeiDouAsk(); McuTaskInParaBeiDouAsk(); McuTaskManyParaBeiDouAsk(); McuTaskPositionBeiDouAsk(); /******************************************* FLASH任务 ***********************************/ while (1) { j = 0; if (0 == McuTaskFlashGetAsk()) { break; } McuTaskFlash(NULL); /* 等待发送再次被置位 */ while (1) { HAL_Delay(15); j++; if (j >= 1000) { break; } McuTaskBlueTooth(); if (0 != McuTaskFlashGetSendFlag()) { break; } } if (j >= 1000) { McuTaskFlashClearAsk(); break; } } /****************************************** IMU任务 *************************************/ if (McuTaskImuAskStatus()) { McuTaskImuTask(); } McuTaskBlueTooth(); /************************************* 内部环境参量任务 **********************************/ if (McuTaskInParaAskStatus()) { McuTaskInParaTask(); } McuTaskBlueTooth(); /*************************************** 多参数任务 *************************************/ if (McuTaskManyParaAskStatus()) { McuTaskManyPara(); } McuTaskBlueTooth(); /**************************************** 位置任务 **************************************/ if (McuTaskPositionAskStatus()) { McuTaskPosition(); } McuTaskBlueTooth(); }