From b13574876322e59f75f26ac38f72c6b19c9d4aba Mon Sep 17 00:00:00 2001 From: chen <15335560115@163.com> Date: 星期五, 27 六月 2025 14:02:08 +0800 Subject: [PATCH] 刚解决完网关下发会导致异常问题,但蓝牙那边mk给蓝牙发未配置成功未解决,开始调lora功耗 --- keil/include/src/Radio/lora_1268.c | 46 ++++++++++++++++++++++++++++++++++++++-------- 1 files changed, 38 insertions(+), 8 deletions(-) diff --git a/keil/include/src/Radio/lora_1268.c b/keil/include/src/Radio/lora_1268.c index c45ce99..dccdedf 100644 --- a/keil/include/src/Radio/lora_1268.c +++ b/keil/include/src/Radio/lora_1268.c @@ -313,7 +313,7 @@ checksum = Checksum_u16(lora_sendbuffer,9+data_length); memcpy(&lora_sendbuffer[9+data_length],&checksum,2); Radio.Send(lora_sendbuffer,data_length+11); - +LOG_INFO(TRACE_MODULE_APP, "进入回复\r\n"); //LORA_3029_SINGLE_SEND(lora_sendbuffer,data_length+11,0); // Delay_Ms(100); } @@ -360,7 +360,20 @@ } - +void lora_in_sleep(void) +{ + //SPI0/MOSI/MISO/CLK/CS +// gpio_pin_set(LORA_CS); +// 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; //////int8_t RssiValue = 0; @@ -377,13 +390,16 @@ //uint16_t current_count; //extern wg_state_enum wg_state; uint8_t txdone=0; +uint8_t send_flag; void OnTxDone( void ) { txdone++; + 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) @@ -393,7 +409,9 @@ } else { + Radio.Rx( 50 ); + send_flag=1; //LORA_LED_OFF; } } @@ -427,6 +445,9 @@ uint8_t LoraUp_flag; uint16_t REV_WG_pack=0; 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; @@ -459,8 +480,8 @@ switch(RX_Buffer[PWTAG_RW_FLAG_IDX]) { case WGRSP_RWTAG_NONE: - REV_WG_pack++; - wg_report_freq = RX_Buffer[POLL_FREQ_IDX]+400; + REV_WG_pack++;//此处刚放开 + wg_report_freq = RX_Buffer[POLL_FREQ_IDX]+400;//此处刚放开未测试 // memcpy(&rec_delaytime,&RX_Buffer[NEXTPOLL_TIME_IDX],2); // if(report_ancnum<2) @@ -504,6 +525,7 @@ LoraSendComMap(WGRSP_RWTAG_READ); break; case WGRSP_RWTAG_WRITE: + rec_index = RX_Buffer[PWTAG_WRITE_IDX_IDX]; switch(rec_index) { @@ -516,12 +538,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(); 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]; @@ -546,7 +573,8 @@ } } - } + } + if(!no_rx_flag) { if(lora_jianting_flag&&LoraUp_flag==0) @@ -555,6 +583,7 @@ Radio.Rx(0); } } + } void OnTxTimeout( void ) @@ -570,6 +599,7 @@ void OnRxTimeout( void ) { Radio.Standby(); + if(lora_jianting_flag) { SwitchLoraSettings(UWB_CHANNEL_FRQ+group_id,UWB_CHANNEL_SF,0); -- Gitblit v1.9.3