From 36336123917b1442954faaa78bd6647f99501af2 Mon Sep 17 00:00:00 2001 From: chen <15335560115@163.com> Date: 星期日, 29 六月 2025 18:02:58 +0800 Subject: [PATCH] 将剩下2个模式休眠模式改为成功休眠的代码,并实测可以成功休眠MK和lora休眠功耗17ua左右 --- keil/include/src/Radio/lora_1268.c | 50 ++++++++++++++++++++++++++++++++++---------------- 1 files changed, 34 insertions(+), 16 deletions(-) diff --git a/keil/include/src/Radio/lora_1268.c b/keil/include/src/Radio/lora_1268.c index e3c848a..1a5759c 100644 --- a/keil/include/src/Radio/lora_1268.c +++ b/keil/include/src/Radio/lora_1268.c @@ -364,13 +364,28 @@ { //SPI0/MOSI/MISO/CLK/CS // gpio_pin_set(LORA_CS); + +// io_pin_mux_set(LORA_CS, IO_FUNC0); +// io_pin_mux_set(LORA_MOSI, IO_FUNC2); +// io_pin_mux_set(LORA_MISO, IO_FUNC2); +// io_pin_mux_set(LORA_CLK, IO_FUNC2); +// io_pin_mux_set(LORA_IRQ, IO_FUNC0); +// io_pin_mux_set(LORA_NRST, IO_FUNC0); + +// io_pin_mux_set(LORA_MOSI, IO_FUNC0); +// io_pin_mux_set(LORA_MISO, IO_FUNC0); +// io_pin_mux_set(LORA_CLK, IO_FUNC0); +// //io_pull_set(LORA_IRQ, IO_PULL_UP, IO_PULL_UP_LEVEL4); +// io_pull_set(LORA_MOSI, IO_PULL_UP, IO_PULL_UP_LEVEL4);//功耗有影响 +// io_pull_set(LORA_CLK, IO_PULL_UP, IO_PULL_UP_LEVEL4);//功耗有影响 +// +// gpio_pin_set_dir(LORA_MOSI,GPIO_DIR_OUT,0); +// gpio_pin_set_dir(LORA_MISO,GPIO_DIR_OUT,0); +// gpio_pin_set_dir(LORA_CLK,GPIO_DIR_OUT,0); // gpio_pin_clr(LORA_MOSI); -// gpio_pin_clr(LORA_MISO); // gpio_pin_clr(LORA_CLK); -// gpio_pin_clr(LORA_IRQ); - //gpio_pin_clr(LORA_NRST); - //gpio_pin_clr(LORA_NRST);//lora休眠 - Radio.Standby(); + + Radio.Sleep(); } ////States_t State = LOWPOWER; @@ -396,8 +411,9 @@ if(flag_writepara_needreset) //配置写入完成设备需要重启 { - printf("网关下发配置写入完成,重启"); - SCB->AIRCR = 0X05FA0000|(unsigned int)0x04; //软复位回到bootloader + LOG_INFO(TRACE_MODULE_APP,"网关下发配置写入完成,重启\r\n"); +// SCB->AIRCR = 0X05FA0000|(unsigned int)0x04; //软复位回到bootloader + sys_reset(0); } Radio.Standby(); if(LoraUp_flag) @@ -445,6 +461,7 @@ uint8_t rxdone=0; extern uint16_t set_mk_time; extern mk_send_message_to_BLE(void); +uint8_t tt4=1; void OnRxDone( uint8_t *payload, uint16_t size, int16_t rssi, int8_t snr ) { uint16_t checksum1; @@ -522,6 +539,7 @@ LoraSendComMap(WGRSP_RWTAG_READ); break; case WGRSP_RWTAG_WRITE: + rec_index = RX_Buffer[PWTAG_WRITE_IDX_IDX]; switch(rec_index) { @@ -534,18 +552,17 @@ default : memcpy(&rec_value,&RX_Buffer[PWTAG_WRITE_VALUE_IDX],2); g_com_map[rec_index/2] = rec_value; -// if(rec_index/2==POWER)//新增判断 -// { -// memcpy(&set_mk_time,&RX_Buffer[PWTAG_WRITE_VALUE_IDX],2); -// //mk_send_message_to_BLE(); //发送给蓝牙 -// //LOG_INFO(TRACE_MODULE_APP, "修改成功g_com表为%#x,时间为%#x\r\n",g_com_map[POWER],set_mk_time); -// } - // save_com_map_to_flash(); + if(rec_index/2==POWER)//新增判断 + { + memcpy(&set_mk_time,&RX_Buffer[PWTAG_WRITE_VALUE_IDX],2); + mk_send_message_to_BLE(); //发送给蓝牙 + //LOG_INFO(TRACE_MODULE_APP, "修改成功g_com表为%#x,时间为%#x\r\n",g_com_map[POWER],set_mk_time); + } + save_com_map_to_flash(); LoraRspWriteCommap(SUBMSG_WRITE_ANCPARA); flag_writepara_needreset = 1; no_rx_flag = 1; } - break; case WGRSP_RWTAG_UPDATE: rec_index = RX_Buffer[PWTAG_WRITE_IDX_IDX]; @@ -571,7 +588,7 @@ } } -LOG_INFO(TRACE_MODULE_APP, "进入回复2\r\n"); + if(!no_rx_flag) { if(lora_jianting_flag&&LoraUp_flag==0) @@ -580,6 +597,7 @@ Radio.Rx(0); } } + } void OnTxTimeout( void ) -- Gitblit v1.9.3