From 2cf92336e004870731aad3975849a5dc52f14054 Mon Sep 17 00:00:00 2001 From: chen <15335560115@163.com> Date: 星期一, 19 五月 2025 18:15:33 +0800 Subject: [PATCH] 刚移植完lora代码不进入lora回调未解决 --- keil/include/main/main.c | 114 +++++++++++++++++++++++++++++++++++++++++++++++++++++++- 1 files changed, 111 insertions(+), 3 deletions(-) diff --git a/keil/include/main/main.c b/keil/include/main/main.c index 6c9ab6b..4399dbf 100644 --- a/keil/include/main/main.c +++ b/keil/include/main/main.c @@ -113,11 +113,13 @@ //***************************************************************************** #define WSF_BUF_POOLS 5 void Fira_Change_Task(void); -extern uint8_t normal_flag,log_4g_enable_flag; +extern uint8_t normal_flag,log_4g_enable_flag,lora_tx_flag; extern uint16_t ip0,ip1,ip2,ip3,port; uint8_t group_id,enable_sleep_count; uint32_t dev_id; uint16_t disoffset; +uint8_t flag_sleeptimer,flag_secondtask,secondtask_count; +float nomove_count; // Default pool descriptor. static wsfBufPoolDesc_t poolDescriptors[WSF_BUF_POOLS] = { {32, 26}, {64, 24}, {128, 4}, {256 + 32, 4}, {1024 + 32, 2}, @@ -126,6 +128,17 @@ static void sleep_timer_callback(void *dev, uint32_t time) { // LOG_INFO(TRACE_MODULE_APP, "Wake up by sleep timer %d\r\n", time); +} +static void sleep_timer_callback_normal(void *dev, uint32_t time) +{ + if(secondtask_count++%2==0) + { + flag_secondtask = 1; + }else{ + flag_secondtask = 0; + } +// if(delaysleep_count>0) +// delaysleep_count--; } void Program_Init(void) { @@ -158,7 +171,87 @@ 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",ip0,ip1,ip2,ip3,port); } +void MinuteTask(void) +{ +// adc_get(&sample[0], NUM_SAMPLES, adc_callback);//adc采样 +} +/********************************************************************************************************/ +static void Lora_irq_handler(enum IO_PIN_T pin) +{ + RadioIrqProcess(); +} +void SecondTask(void) +{static uint8_t second_count; + if(second_count++>60) + { + second_count = 0; + MinuteTask(); + } + lora_tx_flag=1; + //Lora_Tx_Poll(); +// //UWB状态检测 +//if(!power_low_flag)//低供电下不需要检测重连 +// { +// if(IfTCPConnected()) +// { +// TCP_reconnect_timer =0; +// flag_TCP_reconnectting = 0; +// } else { +// if(TCP_reconnect_timer<30)//如果TCP没有连接,每隔10分钟尝试连接30秒 +// { +// flag_TCP_reconnectting = 1; +// } else { +// flag_TCP_reconnectting = 0; +// } +// if(TCP_reconnect_timer++>600) +// { +// TCP_reconnect_timer = 0; +// } +// } +// } + + HIDO_TimerTick(); + if(nomove_count<=g_com_map[NOMOVESLEEP_TIME])//防止溢出 + nomove_count++; + else{ + nomove_count=g_com_map[NOMOVESLEEP_TIME]+1; + } +} +void spi_init(void) +{ + struct SPI_CFG_T usr_spi_cfg = + { + .bit_rate = 1000000, + .data_bits = 8, +//#if TEST_SPI_MASTER + .slave = 0, +//#else +// .slave = 1, +//#endif + .clk_phase = 0, + .clk_polarity = 0, + .ti_mode = 0, +//#if (TEST_SPI_MODE == TEST_SPI_POLL_MODE) + .dma_rx = false, + .dma_tx = false, + .int_rx = false, + .int_tx = false, +//#elif (TEST_SPI_MODE == TEST_SPI_INTERUPT_MODE) +// .dma_rx = false, +// .dma_tx = false, +// .int_rx = true, +// .int_tx = true, +//#elif (TEST_SPI_MODE == TEST_SPI_DMA_MODE) +// .dma_rx = true, +// .dma_tx = true, +// .int_rx = false, +// .int_tx = false, +//#endif + }; + + spi_open(SPI_ID0, &usr_spi_cfg); +} static void board_init(void) { uint32_t internal_flash = (REG_READ(0x40000018) >> 17) & 0x1; @@ -204,10 +297,12 @@ gpio_pin_set_dir(IO_PIN_4, GPIO_DIR_OUT, 0); #else Program_Init(); - // led - board_led_init(); + spi_init(); + // 模式判断脚和spi nrst脚初始化 + board_mode_pin_init(); // board_led_on(BOARD_LED_1); #endif + Board_LORA_NVIC_Init(Lora_irq_handler); board_configure(); } @@ -242,6 +337,7 @@ uart_receive(UART_ID1,m_EUART_DMA_RXBuf,EUART_RX_BUF_SIZE,uart_receive_callback); } +uint8_t bat_percent; int main(void) { // Initialize MCU system @@ -358,12 +454,24 @@ } }else{ // adc_open(&usr_adc_cfg); + Lora_1268_Init(); + SwitchLoraSettings(478,7,22); Uwb_init();//默认为我们测距配置 OpenUWB(); 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_normal); + sleep_timer_start(__MS_TO_32K_CNT(SLEEP_TIMER_NUM));//测试 while (1) { uwb_app_poll();//我们的测距逻辑 + Lora_Tx_Poll(); + + if(flag_secondtask) + { + flag_secondtask = 0; + SecondTask(); + } IdleTask(); } } -- Gitblit v1.9.3