From deaaa18131675b17ef4fa49befa80cfb09778898 Mon Sep 17 00:00:00 2001
From: zhangbo <zhangbo@qq.com>
Date: 星期五, 13 六月 2025 18:09:02 +0800
Subject: [PATCH] 这是工卡机测试版本
---
keil/include/main/main.c | 520 ++++++++++++++++++++++++++++++++++++++++++++-------------
1 files changed, 397 insertions(+), 123 deletions(-)
diff --git a/keil/include/main/main.c b/keil/include/main/main.c
index 3f692d9..070b989 100644
--- a/keil/include/main/main.c
+++ b/keil/include/main/main.c
@@ -44,8 +44,11 @@
#define UWB_OPEN_COUNT 1
#define UWB_MEASUREMENT_INTERVAL 5
-#define UWB_MEASUREMENT_INTERVAL_SLEEP 60
+#define UWB_MEASUREMENT_INTERVAL_SLEEP 30
+#define INACTIVE_TIMEOUT 30
+
+uint8_t input5v_flag=0;
extern uint8_t mUsartReceivePack[100];
extern uint8_t mUsart2ReceivePack[150];
extern uint8_t state5V_prase_flag,gps_prase_flag;
@@ -79,12 +82,8 @@
} Operation_step;
Operation_step UWB_work_state;
-// 定义状态
-typedef enum {
- STATE_NORMAL, // 正常状态,3秒测距上传一次
- STATE_SLEEP // 休眠状态,1分钟测距上传一次
-} CountState_t;
+uint32_t gpsbaudrate;
uint32_t uwb_time_count = 0; // 定时器计数值
//uint32_t step_count = 0; // 步数计数
//uint32_t last_step_count = 0; // 上一次步数
@@ -134,31 +133,69 @@
uart_receive(UART_ID1,m_EUART_DMA_RXBuf,EUART_RX_BUF_SIZE,uart_receive_callback);
}
uint8_t deep_sleep_falg=1;
+extern uint8_t userkey_state;
+extern uint8_t heartbeasend_flag;
+uint8_t sleepflag;
+uint32_t sleepflagtime;
+uint8_t onlyoneflag=1;
void mcu_deep_sleep(void)
{
-// uint32_t lock;
-// trace_flush();
-// lock = int_lock();
-//// LOG_INFO(TRACE_MODULE_APP, "进入深度休眠\r\n");
+
+ uint32_t lock;
+ trace_flush();
+ lock = int_lock();
+// LOG_INFO(TRACE_MODULE_APP, "进入深度休眠\r\n");
// gps_air780_power_change(0,0);//关闭gps,4G
- deep_sleep_falg=0;
- PCA9555_Set_One_Value_Output(LED_POWER,0);//输出低电平关闭LED
+ PCA9555_Set_One_Value_Output(LED_POWER,0);//输出低电平关闭LED
PCA9555_Set_One_Value_Output(GPS_POWER,0);//关闭gps,4G
- PCA9555_Set_One_Value_Config(MAIN_RI,0);//配置4G唤醒引脚为输入
-// PCA9555_Set_One_Value_Output(MAIN_RI,1);
- boot_deinit();
- CloseUWB();
PCA9555_Set_One_Value_Output(AIR780E_ENBALE,0);//关闭gps,4G
-
-// sleep_timer_stop();
-// //adc_close();
-// power_enter_power_down_mode(1);
-// delay_us(200000);
+ sleep_timer_stop();
+ //adc_close();
+ power_enter_power_down_mode(1);
+// LOG_INFO(TRACE_MODULE_APP, "从休眠出来\r\n");
+ sys_reset(0);
+ int_unlock(lock);
+//// uint32_t lock;
+//// trace_flush();
+//// lock = int_lock();
+////// LOG_INFO(TRACE_MODULE_APP, "进入深度休眠\r\n");
+//// gps_air780_power_change(0,0);//关闭gps,4G
+// deep_sleep_falg=0;
+// PCA9555_Set_One_Value_Output(LED_POWER,0);//输出低电平关闭LED
+// PCA9555_Set_One_Value_Output(GPS_POWER,0);//关闭gps,4G
+//// PCA9555_Set_One_Value_Config(MAIN_RI,0);//配置4G唤醒引脚为输入
+////
+////// PCA9555_Set_One_Value_Output(MAIN_RI,1);
+// boot_deinit();
+// CloseUWB();
+// if(onlyoneflag)
+// {
+// onlyoneflag=0;
+// userkey_state=4;
+// heartbeasend_flag = 1;
+// sleepflag=1;
+// sleepflagtime=HIDO_TimerGetTick();
+// }
+// if(sleepflag)
+// {
+// if(HIDO_TimerGetTick() - sleepflagtime>3)
+// {
+// PCA9555_Set_One_Value_Output(AIR780E_ENBALE,0);//关闭gps,4G
+// }
+// }
+//
+//// PCA9555_Set_One_Value_Output(AIR780E_ENBALE,0);//关闭gps,4G
+//
+//// sleep_timer_stop();
+//// //adc_close();
+//// power_enter_power_down_mode(1);
+//// delay_us(200000);
-// sys_reset(0);
-//// LOG_INFO(TRACE_MODULE_APP, "从休眠出来\r\n");
-// int_unlock(lock);
+//// sys_reset(0);
+////// LOG_INFO(TRACE_MODULE_APP, "从休眠出来\r\n");
+//// int_unlock(lock);
}
+uint8_t jiancebat_percent_flag;
static void adc_callback(void *data, uint32_t number)
{
uint32_t *result = (uint32_t *)data;
@@ -181,16 +218,21 @@
bat_percent = ((fVoltage_mv - 3300) /8);
}
}
- if(fVoltage_mv<3300)
- {
- //power_low_flag=1;
- //gps_air780_power_change(gps_power_state,0);//gps原样,关闭4G
-// LOG_INFO(TRACE_MODULE_APP, "电池电压低于3.3V,4G,GPS停止工作\r\n");
- }else{
- //power_low_flag=0;
- //gps_air780_power_change(gps_power_state,1);//gps原样,开启4G
-// LOG_INFO(TRACE_MODULE_APP, "电池电压正常,4G,GPS,正常工作\r\n");
- }
+ if(bat_percent>100)
+ bat_percent=100;
+ if(bat_percent<0)
+ bat_percent=0;
+ jiancebat_percent_flag=1;
+// if(fVoltage_mv<3300)
+// {
+// //power_low_flag=1;
+// //gps_air780_power_change(gps_power_state,0);//gps原样,关闭4G
+//// LOG_INFO(TRACE_MODULE_APP, "电池电压低于3.3V,4G,GPS停止工作\r\n");
+// }else{
+// //power_low_flag=0;
+// //gps_air780_power_change(gps_power_state,1);//gps原样,开启4G
+//// LOG_INFO(TRACE_MODULE_APP, "电池电压正常,4G,GPS,正常工作\r\n");
+// }
PCA9555_Set_One_Value_Output(ADC_MINIUS,1);//拉高
}
extern uint8_t gps_uwb_flag,gps_need_data_flag;
@@ -207,10 +249,37 @@
{
if(nomove_count>g_com_map[NOMOVESLEEP_TIME]&&g_com_map[IMU_ENABLE]==1)
{//power_wakeup_enable((enum POWER_WAKEUP_SOURCE_T)ACCLERATE_DETECT_Pin, POWER_WAKEUP_LEVEL_HIGH);
+ if(onlyoneflag)
+ {
+ onlyoneflag=0;
+ nomove_count=0;
+ userkey_state=4;
+ heartbeasend_flag = 1;
+ sleepflag=1;
+ sleepflagtime=HIDO_TimerGetTick();
+ }
+ }
+ if(sleepflag)
+ {
+ if(HIDO_TimerGetTick() - sleepflagtime>3)
+ {
power_wakeup_enable((enum POWER_WAKEUP_SOURCE_T)PCA_INPUT_DETECT, POWER_WAKEUP_LEVEL_LOW);
mcu_deep_sleep();
- }
+ }
+ }
}
+void powerON_Task(void)
+{
+if(deep_sleep_falg==0)
+{
+PCA9555_Set_One_Value_Output(PWR_ENABLE,1);
+}
+
+}
+uint16_t gaodu;
+uint8_t guanjiflag;
+uint8_t heartbeasend_flag;
+uint32_t guanjiflagtime;
void UserKeyTask(void)
{
if(!read_userkey_input_pca())
@@ -245,19 +314,17 @@
led4g=WHITE;
powerled=WHITE;
Set4LEDColor(uwbled,rtkled,led4g,powerled);
- delay_ms(500);
- keystarttime = HIDO_TimerGetTick();
- PCA9555_Set_One_Value_Output(LED_POWER,0);//输出低电平关闭LED
- PCA9555_Set_One_Value_Output(AIR780E_ENBALE,0);
- PCA9555_Set_One_Value_Output(GPS_POWER,0);//关GPS
- PCA9555_Set_One_Value_Output(PWR_ENABLE,0);//低电平关闭
-
+ delay_ms(500);
+// keystarttime = HIDO_TimerGetTick();
+// PCA9555_Set_One_Value_Output(LED_POWER,0);//输出低电平关闭LED
+// PCA9555_Set_One_Value_Output(AIR780E_ENBALE,0);
+// PCA9555_Set_One_Value_Output(GPS_POWER,0);//关GPS
+// PCA9555_Set_One_Value_Output(PWR_ENABLE,0);//低电平关闭
+ heartbeasend_flag = 1;
+ guanjiflag=1;
+ userkey_state = 2;
+ guanjiflagtime=HIDO_TimerGetTick();
}
-// if(HIDO_TimerGetTick() - keystarttime2>10)
-// {
-//
-// g_com_map[CNT_RESTART] = 1;
-// }
}else
{
keystarttime = HIDO_TimerGetTick();
@@ -301,25 +368,33 @@
HIDO_TimerTick();
// if(nomove_count<=g_com_map[NOMOVESLEEP_TIME])//防止溢出
nomove_count++;
+ gaodu=GetPressAndHeight()*100;
// else{
// nomove_count=g_com_map[NOMOVESLEEP_TIME]+1;
// }
}
uint8_t tt=1;
uint8_t flag_sleeptimer,flag_secondtask,secondtask_count,log_4g_enable_flag;
-uint8_t uwb_enable_flag=0;
+uint8_t uwb_offtime_count=0;
uint8_t input5v_time;
extern uint8_t taglist_num;
uint8_t gps_ntripsend;
static void sleep_timer_callback(void *dev, uint32_t time)
{
+// powerON_Task();
if(secondtask_count++%2==0)
{
input5v_time=1;
flag_secondtask = 1;
- #ifdef UWB_1_5HZ
- uwb_time_count++;
- #endif
+ if(g_com_map[UWBFrequency]>1)
+ {uwb_time_count++;}
+// #endif
+ uwb_offtime_count++;
+ if(uwb_offtime_count>60)
+ {
+ uwb_offtime_count=0;
+ current_state = STATE_SLEEP;
+ }
if(!read_5v_input_pca())
{
if(bat_percent>15)
@@ -334,13 +409,16 @@
// uart_send(UART_ID1, ceshidata, 50,NULL);
}
input5v_time=1;
- if(taglist_num==0)
+ if(taglist_num==0&&g_com_map[UWBFrequency]==1&&g_com_map[UWBENBLE]==1)
{
-// CloseUWB();
-// Uwb_init();
-// OpenUWB();
+ CloseUWB();
+ Uwb_init();
+ OpenUWB();
}
+ if(g_com_map[UWBENBLE]==1)
+ {
upload_apppoll();
+ }
}else{
flag_secondtask = 0;
}
@@ -349,6 +427,57 @@
delaysleep_count--;
}
+#ifdef JIBU_XIUMIAN
+
+uint16_t sleep_time=0;
+uint32_t state_start_time_jibu=0;
+uint8_t exercise_state=0;
+uint32_t step_count = 0; // 步数计数
+uint32_t last_step_count = 0; // 上一次步数
+void check_step_and_update_state(void)
+{
+ if ((step_count != last_step_count))
+ {
+ // 步数有变化,重置状态为正常状态
+ last_step_count = step_count;
+
+ if(current_state == STATE_SLEEP)
+ {
+ state_start_time_jibu = uwb_time_count;
+ state_start_time=uwb_time_count;
+ }
+// if (current_state != STATE_NORMAL)
+// {
+// // 关闭可能正在运行的UWB
+// if (uwb_is_on) {
+// CloseUWB();
+// UWB_LED_OFF;
+// uwb_is_on = false;
+// }
+// current_state = STATE_NORMAL;
+// state_start_time = uwb_time_count; // 重置测距周期
+// }
+ current_state = STATE_NORMAL;
+ exercise_state=1;
+ last_step_count = step_count;
+
+ }
+ else
+ {
+ // 步数没有变化,检查是否需要切换到休眠状态
+ if (current_state == STATE_NORMAL)
+ {
+ uint32_t inactive_time = uwb_time_count - state_start_time_jibu;
+ if (inactive_time >= INACTIVE_TIMEOUT)
+ { // 30秒后切换到休眠状态
+ current_state = STATE_SLEEP;
+ exercise_state=2;
+ state_start_time_jibu=uwb_time_count;
+ }
+ }
+ }
+}
+#endif
static void pca_handler(enum IO_PIN_T pin)
{
PCA9555_readdata(PCA9555_DEVICE_ADDR,pca9555writedata_input);//读输入寄存器的值
@@ -369,6 +498,7 @@
uint8_t gps_need_data_flag,gps_open_flag;
void Program_Init(void)
{
+ uint32_t gpsbaudrate1;
Usart1ParseDataCallback = UsartParseDataHandler;//需改为默认为gps处理,UsartParseDataHandler为升级处理当调试时候改为
parameter_init_anchor();//g_com_map表初始化角色默认为基站
dev_id=g_com_map[DEV_ID];//这里不太对
@@ -381,8 +511,36 @@
send_struct.alarmDistence=prewarning_distance;//更新报警距离
memcpy(&send_struct.gunLableId,&g_com_map[BIND_DEV_ID],2);//更新绑定ID
send_struct.tagId=dev_id;//更新设备ID
- tag_frequency = 1000/g_com_map[COM_INTERVAL];
-
+ g_com_map[MOTOR_ONTIME_INDEX]=10;
+ tag_frequency = 1000/g_com_map[COM_INTERVAL];
+ gpsbaudrate=(g_com_map[GPSBAUDRATE1_INDEX]<<16)|g_com_map[GPSBAUDRATE2_INDEX];
+ if(gpsbaudrate==9600)
+ {
+ gpsbaudrate = 3;
+ gpsbaudrate1=9600;
+ }
+ else if(gpsbaudrate==115200)
+ {
+ gpsbaudrate = 7;
+ gpsbaudrate1=115200;
+ }
+ else
+ {
+ gpsbaudrate = 3;
+ gpsbaudrate1=9600;
+ }
+ if(g_com_map[GPSENBLE]>1)
+ {
+ g_com_map[GPSENBLE]=1;
+ }
+ if(g_com_map[UWBENBLE]>1)
+ {
+ g_com_map[UWBENBLE]=1;
+ }
+ if(g_com_map[UWBFrequency]>10)
+ {
+ g_com_map[UWBFrequency]=1;
+ }
// g_com_map[IP_0]=111;
// g_com_map[IP_1]=198;
// g_com_map[IP_2]=60;
@@ -423,20 +581,25 @@
UWB_work_state = SEARCH_DEV;
}
//g_com_map[SEND_4G_SECOND]
- if(g_com_map[SEND_4G_SECOND]<30)
- {
- gps_open_flag=0;
- }else{
- gps_open_flag=1;
- }
+// if(g_com_map[SEND_4G_SECOND]<30)
+// {
+// gps_open_flag=0;
+// }else{
+// gps_open_flag=1;
+// }
g_com_map[MODBUS_MODE] = 0;
log_4g_enable_flag=g_com_map[LOG_4G_ENABLE];
- g_com_map[VERSION] = (1<<8)|10;
-
+ g_com_map[VERSION] = (1<<8)|23;
+
LOG_INFO(TRACE_MODULE_APP,"设备ID: %x .\r\n",dev_id);
LOG_INFO(TRACE_MODULE_APP,"固件版本:4G-GPS定位工卡 V%d.%d. \r\n",g_com_map[VERSION]>>8,g_com_map[VERSION]&0xff);
LOG_INFO(TRACE_MODULE_APP,"服务器地址: %d.%d.%d.%d:%d.\r\n",g_com_map[IP_0],g_com_map[IP_1],g_com_map[IP_2],g_com_map[IP_3],g_com_map[PORT]);
+ LOG_INFO(TRACE_MODULE_APP,"设备UWB状态: %x .\r\n",g_com_map[UWBENBLE]);
+ LOG_INFO(TRACE_MODULE_APP,"设备GPS状态: %x .\r\n",g_com_map[GPSENBLE]);
+ LOG_INFO(TRACE_MODULE_APP,"设备UWB工作间隔: %x .\r\n",g_com_map[UWBFrequency]);
+ LOG_INFO(TRACE_MODULE_APP,"设备GPS工作间隔: %x .\r\n",g_com_map[GPSFrequency]);
+ LOG_INFO(TRACE_MODULE_APP,"当前GPS工作波特率: %d .\r\n",gpsbaudrate1);
if(g_com_map[RTCMMODE_INDEX] == RTCMMODE_TCP)
{
LOG_INFO(TRACE_MODULE_APP,"TCP_RTCM模式,服务器地址: %d.%d.%d.%d:%d.\r\n",g_com_map[TCP_IP_0],g_com_map[TCP_IP_1],g_com_map[TCP_IP_2],g_com_map[TCP_IP_3],g_com_map[TCP_PORT]);
@@ -461,10 +624,16 @@
uint8_t bat_percent_old=100;
uint8_t input5vflag;
extern uint8_t ota_flag;
+uint8_t bat_percent_only_one=1;
+extern uint8_t jiancebat_percent_flag;
void IdleTask(void)
{
if(read_5v_input_pca())
{
+ if(input5v_flag==0)
+ {
+ NVIC_SystemReset();
+ }
if(state5v==0)
{
state5v=1;
@@ -483,6 +652,7 @@
while(1)
{
nomove_count = 0;
+ wdt_ping(WDT_ID0);//喂狗
// adctick = HIDO_TimerGetTick();
if(HIDO_TimerGetTick()-adctick>600) //10分钟采样一次 电量
{
@@ -555,7 +725,8 @@
}
}
}
- NVIC_SystemReset();
+// NVIC_SystemReset();
+// PCA9555_Set_One_Value_Output(PWR_ENABLE,0);
input5vflag=1;
}
else
@@ -567,7 +738,13 @@
state5V_prase_flag=state5v;
gps_prase_flag=1;//恢复gps解析
uart1_change_from_debug_to_gps();//测试
- PCA9555_Set_One_Value_Output(MCU_A,0);//输出低电平切换为GPS
+// PCA9555_Set_One_Value_Output(MCU_A,0);//输出低电平切换为GPS
+ PCA9555_Set_One_Value_Output(LED_POWER,0);//输出低电平关闭LED
+ PCA9555_Set_One_Value_Output(AIR780E_ENBALE,0);
+ PCA9555_Set_One_Value_Output(GPS_POWER,0);//关GPS
+ PCA9555_Set_One_Value_Output(PWR_ENABLE,0);//低电平关闭
+ delay_us(1000000);
+
}
}
UART_CheckReceive();
@@ -591,6 +768,30 @@
powerled=0;
Set4LEDColor(LEDOFF,LEDOFF,LEDOFF,LEDOFF);
}
+ if(bat_percent<1&&bat_percent_only_one&&jiancebat_percent_flag)
+ {
+ userkey_state=3;
+ heartbeasend_flag = 1;
+ guanjiflag=1;
+ guanjiflagtime=HIDO_TimerGetTick();
+ bat_percent_only_one=0;
+ }
+ if(guanjiflag)
+ {
+ rtkled=WHITE;
+ uwbled=WHITE;
+ led4g=WHITE;
+ powerled=WHITE;
+ Set4LEDColor(uwbled,rtkled,led4g,powerled);
+ if(HIDO_TimerGetTick() - guanjiflagtime>3)
+ {
+ PCA9555_Set_One_Value_Output(LED_POWER,0);//输出低电平关闭LED
+ PCA9555_Set_One_Value_Output(AIR780E_ENBALE,0);
+ PCA9555_Set_One_Value_Output(GPS_POWER,0);//关GPS
+ PCA9555_Set_One_Value_Output(PWR_ENABLE,0);//低电平关闭
+ }
+
+ }
}
void boot_deinit(void)
{
@@ -610,51 +811,95 @@
extern uint32_t uwb_time_count;
uint8_t GPS_UPLOAD_FLAG=0;
+uint32_t elapsed_time_jibu;
void upload_apppoll()
{
- uint32_t elapsed_time_jibu;
-#ifdef UWB_1_5HZ
-
- switch (current_state)
- {
- case STATE_NORMAL:
+ if(current_state==STATE_NORMAL)
+ {
+ if(g_com_map[UWBFrequency]>1)
+ {
elapsed_time_jibu = uwb_time_count - state_start_time;
- switch(elapsed_time_jibu)
- {
- case UWB_OPEN_COUNT:
- CloseUWB();
-// uwbled = LEDOFF;
- UWBSendUDPTask();
- GPS_UPLOAD_FLAG=1;
- break;
-
- case UWB_MEASUREMENT_INTERVAL:
- OpenUWB();
-// uwbled = WHITE;
+ if(elapsed_time_jibu==1)
+ {
+ CloseUWB();
+ UWBSendUDPTask();
+ }
+ else if(elapsed_time_jibu==g_com_map[UWBFrequency])
+ {
+ taglist_num = 0;
+ CloseUWB();
+ Uwb_init();
+ OpenUWB();
state_start_time = uwb_time_count;
-
- break;
- }
- break;
- case STATE_SLEEP:
+ }
+ }
+ else
+ {}
+ }
+ else if(current_state==STATE_SLEEP)
+ {
elapsed_time_jibu = uwb_time_count - state_start_time;
- switch(elapsed_time_jibu)
- {
- case UWB_OPEN_COUNT:
+ switch(elapsed_time_jibu)
+ {
+ case UWB_OPEN_COUNT:
+ CloseUWB();
+ UWBSendUDPTask();
+ break;
+
+ case UWB_MEASUREMENT_INTERVAL_SLEEP:
+ taglist_num = 0;
+ CloseUWB();
+ Uwb_init();
+ OpenUWB();
+ state_start_time = uwb_time_count;
+ break;
+ }
+ }
+// switch (current_state)
+// {
+////#ifdef UWB_1_5HZ
+// if(g_com_map[UWBFrequency]>1)
+// {
+// case STATE_NORMAL:
+// elapsed_time_jibu = uwb_time_count - state_start_time;
+// if(elapsed_time_jibu)
+// {
+// CloseUWB();
+// UWBSendUDPTask();
+// }
+// else if(elapsed_time_jibu==g_com_map[UWBFrequency])
+// {
+// taglist_num = 0;
+// CloseUWB();
+// Uwb_init();
+// OpenUWB();
+// state_start_time = uwb_time_count;
+// }
+// }
+// else
+// {}
+////#endif
+// case STATE_SLEEP:
+// elapsed_time_jibu = uwb_time_count - state_start_time;
+// switch(elapsed_time_jibu)
+// {
+// case UWB_OPEN_COUNT:
+// CloseUWB();
+// UWBSendUDPTask();
+// break;
+//
+// case UWB_MEASUREMENT_INTERVAL_SLEEP:
+// taglist_num = 0;
+// CloseUWB();
+// Uwb_init();
+// OpenUWB();
+// state_start_time = uwb_time_count;
+// break;
+// }
+// break;
+// }
- CloseUWB();
- break;
-
- case UWB_MEASUREMENT_INTERVAL_SLEEP:
-
- OpenUWB();
- state_start_time = uwb_time_count;
- break;
- }
- break;
- }
-#endif
}
uint8_t flag_4guart_needinit=0;
@@ -664,13 +909,34 @@
int test1,test3;
uint32_t test4;
extern uint8_t receive_flag;
-int main(void)
+static void app_wdt_callback(void *dev, uint32_t status)
{
+ ASSERT(status, "WDT TIMEOUT,程序复位");
+ //LOG_INFO(TRACE_MODULE_APP, "程序卡死,看门狗复位");
+}
+ struct WDT_CFG_T app_wdt_cfg = {
+ .timeout = 32768 * 30,
+ .rst_en = true,
+ .int_en = true,
+ .callback = app_wdt_callback,
+ };
+int main(void)
+ {
__enable_irq();
board_clock_run();
boot_deinit();
board_pins_config();
- board_debug_console_open_baud(TRACE_PORT_UART1,BAUD_115200);
+ gpio_open();
+ IIC2_Init();
+ Accelerometer_Init();
+// delay_ms(100);
+ BarInit();
+// delay_ms(100);
+// gaodu=GetPressAndHeight();
+ PCA9555_init();
+ board_debug_console_open_baud(TRACE_PORT_UART1,BAUD_921600);
+ pca_input_detection_init(pca_handler);//pca检测输入
+// while(1);
// Reset reason
reset_cause_get();
reset_cause_clear();
@@ -684,7 +950,7 @@
}
else
{
- board_calibration_params_default();
+ board_calibration_params_default();
}
calib_chip();
wdt_close(WDT_ID0);
@@ -706,27 +972,19 @@
TCPClient_Init_1();
}
// HTTPClient_Init();
- gpio_open();
+ wdt_open(WDT_ID0,&app_wdt_cfg);//30s检测喂狗
LED_output_init();//配置彩色灯引脚
- IIC2_Init();
- Accelerometer_Init();
- PCA9555_init();
+
+
WT588E02B_Init();
adc_open(&usr_adc_cfg);
uart_receive(UART_ID1,m_EUART_DMA_RXBuf,EUART_RX_BUF_SIZE,uart_receive_callback);
power_init();
- sleep_timer_open(true, SLEEP_TIMER_MODE_RELOAD, sleep_timer_callback);
- sleep_timer_start(__MS_TO_32K_CNT(SLEEP_TIMER_NUM));//测试
- PCA9555_Set_One_Value_Output(ADC_MINIUS,0);//拉低
- adc_get(&sample[0], NUM_SAMPLES, adc_callback);//adc采样
- pca_input_detection_init(pca_handler);//pca检测输入
Uwb_init();
- #ifdef UWB_CK
- OpenUWB();
- #endif
-// DBG_SetMode(DBG_MODE_SHELL);
-// Shell_Init();
-
+ if(g_com_map[UWBFrequency]&&g_com_map[UWBENBLE])
+ {
+ OpenUWB();
+ }
if(!read_5v_input_pca())
{
Set4LEDColor(BLUE,GREEN,WHITE,RED);
@@ -735,19 +993,34 @@
delay_ms(500);
Set4LEDColor(LEDOFF,LEDOFF,LEDOFF,LEDOFF);
}
+
g_com_map[MODBUS_MODE] = 0;
state5v=0;
state5V_prase_flag=state5v;
gps_prase_flag=1;//恢复gps解析
uart1_change_from_debug_to_gps();//测试
PCA9555_Set_One_Value_Output(MCU_A,0);//输出低电平切换为GPS
+ if(g_com_map[UWBENBLE]==0)
+ {
+ CloseUWB();
+ }
+ sleep_timer_open(true, SLEEP_TIMER_MODE_RELOAD, sleep_timer_callback);
+ sleep_timer_start(__MS_TO_32K_CNT(SLEEP_TIMER_NUM));//测试
+ PCA9555_Set_One_Value_Output(ADC_MINIUS,0);//拉低
+ adc_get(&sample[0], NUM_SAMPLES, adc_callback);//adc采样
+
+ gaodu=GetPressAndHeight()*100;
+ if(read_init_5v_input_pca())
+ {input5v_flag=1;}
while (1)
{
+
uwb_app_poll();
Internet_Poll();
HIDO_TimerPoll();
HIDO_ATLitePoll();
TCPClient_Poll();
+ wdt_ping(WDT_ID0);//喂狗
if(g_com_map[RTCMMODE_INDEX] == RTCMMODE_TCP)
{
TCPClient_Poll_1();
@@ -759,5 +1032,6 @@
}
IMUTask();
IdleTask();
+ check_step_and_update_state();
}
}
--
Gitblit v1.9.3