From e8fae59212dd962e2f13137f53d70bd1625891fb Mon Sep 17 00:00:00 2001 From: zhangbo <zhangbo@qq.com> Date: 星期五, 28 二月 2025 13:56:50 +0800 Subject: [PATCH] 修改串口蓝牙转发 --- keil/include/main/main.c | 104 +++++++++++++++------------------------------------ 1 files changed, 31 insertions(+), 73 deletions(-) diff --git a/keil/include/main/main.c b/keil/include/main/main.c index 80d62a6..ffe4fed 100644 --- a/keil/include/main/main.c +++ b/keil/include/main/main.c @@ -354,44 +354,9 @@ lora_tx_flag++; } - -//void uart0_receive_callback() -//{ -// uint8_t buff[buff_lenth]={0}; -// uint8_t lenth=0; -// -// uart_receive(UART_ID0,Forward_BT_buff,buff_lenth,uart0_receive_callback); -// memcpy(buff,Forward_BT_buff,1024); -// for(int n=0;n<1024;n++) -// { -// if(buff[n]==0x55) -// { -// if(buff[n+1]==0xAA) -// { -// if(buff[n+2]==0x41) -// { -// lenth=buff[n+4]; -// memcpy(DMA_RXBuf_BT,&buff[n+4],lenth); -// } -// } -// -// } -// } -// memset(buff, 0, buff_lenth); -// memset(DMA_RXBuf_BT, 0, buff_lenth); -// if(buff[0]==0x55||buff[1]==0xAA||buff[2]==0x41) -// { -// uint8_t lenth=0; -// lenth=((buff[4]*2)+(buff[4]*2)+1); -// memcpy(DMA_RXBuf_BT,&buff[4],lenth); -// } -//} - -//uint8_t base_station_count = 0; -//uint8_t last_ids[MAX_BASE_STATIONS] = {0}; void uart0_receive_callback() { - uart_receive(UART_ID0,m_EUART_DMA_RXBuf,EUART_RX_BUF_SIZE,uart0_receive_callback); + uart_receive(UART_ID0,m_EUART_DMA_RXBuf,EUART_RX_BUF_SIZE,uart0_receive_callback); } @@ -413,7 +378,7 @@ { Usart1ParseDataCallback = UsartParseDataHandler;//需改为默认为gps处理,UsartParseDataHandler为升级处理当调试时候改为 parameter_init_anchor();//g_com_map表初始化角色默认为基站 - g_com_map[DEV_ID]=0x1234; + g_com_map[DEV_ID]=0x1131; // g_com_map[GROUP_ID]=1; dev_id=g_com_map[DEV_ID];//这里不太对 group_id=g_com_map[GROUP_ID];//组ID @@ -444,7 +409,7 @@ port = g_com_map[TCP_PORT]; g_com_map[VERSION] = (1<<8)|11; LOG_INFO(TRACE_MODULE_APP,"设备ID: %x .\r\n",dev_id); - LOG_INFO(TRACE_MODULE_APP,"固件版本:UWB-4G手环 V%d.%d. \r\n",g_com_map[VERSION]>>8,g_com_map[VERSION]&0xff); + LOG_INFO(TRACE_MODULE_APP,"固件版本:BGK-mk+蓝牙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); } @@ -452,8 +417,11 @@ void IdleTask(void) { +// BT_LED_ON; UART0_CheckReceive(); +// BT_LED_OFF; } + int bind_check(void) { if(g_com_map[BIND_DEV_ID]!=0x00) @@ -503,14 +471,10 @@ #define TEST_SPI_INTERUPT_MODE 1 #define TEST_SPI_DMA_MODE 2 #define TEST_SPI_MODE TEST_SPI_POLL_MODE -//#define ADC_PIN IO_PIN_0 -//#define UART0_TX IO_PIN_5 -//#define UART0_RX IO_PIN_6 -//#define UART1_TX IO_PIN_1 -//#define UART1_RX + void Board_gpio_init() { - // SPI0 MOSI/MISO/CLK/CS + //SPI0/MOSI/MISO/CLK/CS io_pin_mux_set(LORA_CS, IO_FUNC0); gpio_pin_set_dir(LORA_CS , GPIO_DIR_OUT, 0); io_pull_set(LORA_CS, IO_HIGH_Z, IO_PULL_UP_NONE); @@ -524,16 +488,14 @@ // //ADC // io_pin_mux_set(ADC_PIN, IO_FUNC1); // io_pull_set(ADC_PIN, IO_HIGH_Z, IO_PULL_UP_NONE); + //串口0 io_pin_mux_set(UART0_RX, IO_FUNC4); io_pin_mux_set(UART0_TX, IO_FUNC4); board_debug_console_open(TRACE_PORT_UART0); -// uart_receive(UART_ID0,Forward_BT_buff,buff_lenth,uart0_receive_callback); uart_receive(UART_ID0,m_EUART_DMA_RXBuf,EUART_RX_BUF_SIZE,uart0_receive_callback);//开启dma -// uart_receive(UART_ID0,&uart0_buffer,1024,uart0_receive_callback); -// uart_receive(UART_ID0,DMA_RXBuf_BT,buff_lenth,uart0_receive_callback); - + //串口1 io_pin_mux_set(UART1_RX, IO_FUNC4); io_pin_mux_set(UART1_TX, IO_FUNC4); @@ -578,7 +540,7 @@ uint8_t flag_4guart_needinit=0; #define TX_LEN 10 #define RX_LEN 200 -uint8_t tx_test_buf[TX_LEN] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9}; + extern uint8_t RX_Buffer[RX_LEN]; extern uint16_t BufferSize; static uint16_t source_id; @@ -618,17 +580,13 @@ uint8_t tx_buf[5]={0,1,0,1,1}; uint32_t sleep_time_count=0; uint32_t uwb_ceju_count=0; - -//ceshi -//uint8_t no_rx_flag=0; -//xtal_38m4_off_time(sleep_time_count); /********************************************************************************************************/ static void Lora_irq_handler(enum IO_PIN_T pin) { uint16_t checksum1; rf_irq_process(); -// gpio_pin_set(IO_PIN_5);//测试 + LORA_LED_OFF; no_rx_flag=0; tx_flag=rf_get_transmit_flag(); recv_flag=rf_get_recv_flag(); @@ -681,25 +639,23 @@ switch(RX_Buffer[PWTAG_RW_FLAG_IDX]) { case WGRSP_RWTAG_NONE: - -// wg_report_freq = RX_Buffer[POLL_FREQ_IDX]+400; -// memcpy(&rec_delaytime,&RX_Buffer[NEXTPOLL_TIME_IDX],2); -// if(report_ancnum<2) -// { -// datalen_offset = report_ancnum*85; -// }else{ -// datalen_offset = (report_ancnum-1)*46+85; -// } -// rec_secdelay = RX_Buffer[PWTAG_SECDELAY_IDX]; -// if(BufferSize!=13||rec_secdelay>20) -// { -// rec_secdelay = 0; -// } -// -// sleep_time_count = rec_delaytime*3.2768 - delaytime-datalen_offset; -// while(sleep_time_count>=32768) -// sleep_time_count-=32768; -// sleep_timer_start(sleep_time_count); + wg_report_freq = RX_Buffer[POLL_FREQ_IDX]+400; + memcpy(&rec_delaytime,&RX_Buffer[NEXTPOLL_TIME_IDX],2); + if(report_ancnum<2) + { + datalen_offset = report_ancnum*85; + }else{ + datalen_offset = (report_ancnum-1)*46+85; + } + rec_secdelay = RX_Buffer[PWTAG_SECDELAY_IDX]; + if(BufferSize!=13||rec_secdelay>20) + { + rec_secdelay = 0; + } + sleep_time_count = rec_delaytime - delaytime-datalen_offset; + while(sleep_time_count>=1000) + sleep_time_count-=1000; + sleep_timer_start(sleep_time_count); break; case WGRSP_RWTAG_READ: @@ -770,7 +726,9 @@ //rf_set_mode(RF_MODE_STB3); rf_set_transmit_flag(RADIO_FLAG_IDLE); Loratx_flag++; + LORA_LED_ON; rf_enter_single_timeout_rx(100); + } if((recv_flag == RADIO_FLAG_RXTIMEOUT)) { -- Gitblit v1.9.3