From e7bad2338d19ebba1a73fa3aac2d1b0c642127b0 Mon Sep 17 00:00:00 2001
From: zhangbo <zhangbo@qq.com>
Date: 星期一, 25 八月 2025 09:12:37 +0800
Subject: [PATCH] 修改协议内容V1.76

---
 源码/核心板/Src/main.c |   74 +++++++++++++++++++++++++++++++-----
 1 files changed, 63 insertions(+), 11 deletions(-)

diff --git "a/\346\272\220\347\240\201/\346\240\270\345\277\203\346\235\277/Src/main.c" "b/\346\272\220\347\240\201/\346\240\270\345\277\203\346\235\277/Src/main.c"
index 1c48faa..a9144a5 100644
--- "a/\346\272\220\347\240\201/\346\240\270\345\277\203\346\235\277/Src/main.c"
+++ "b/\346\272\220\347\240\201/\346\240\270\345\277\203\346\235\277/Src/main.c"
@@ -142,7 +142,7 @@
         
 	OUT485_ENABLE;
 	ComMapCheck();	
-	g_com_map[VERSION] = 1<<8|64;
+	g_com_map[VERSION] = 1<<8|76;
     FLASH_Read(FLASH_HARDWARE_FLAG, (uint8_t*)&g_com_map[HARDWAREFLAG_INDEX], 16);
     dist_threshold = (g_com_map[SPEEDFILTER_THRES]*10)/(1000/g_com_map[COM_INTERVAL]);
      if(dist_threshold<300)
@@ -169,15 +169,15 @@
 	
 	if(g_com_map[DEV_ROLE])
 	{
-	printf("标签ID: %d .\r\n",dev_id);
-	printf("通讯间隔: %d ms.\r\n",g_com_map[COM_INTERVAL]);
-	printf("单次通讯基站数量: %d个.\r\n",g_com_map[MAX_REPORT_ANC_NUM]);
+//	printf("标签ID: %d .\r\n",dev_id);
+//	printf("通讯间隔: %d ms.\r\n",g_com_map[COM_INTERVAL]);
+//	printf("单次通讯基站数量: %d个.\r\n",g_com_map[MAX_REPORT_ANC_NUM]);
 	}else{
 	
 	anchor_type = dev_id%g_com_map[MAX_REPORT_ANC_NUM];
-	printf("基站ID: %x .\r\n",dev_id);
-	printf("基站类型: %c .\r\n",anchor_type+0x41);
-	printf("单次通讯基站数量: %d个.\r\n",g_com_map[MAX_REPORT_ANC_NUM]);
+//	printf("基站ID: %x .\r\n",dev_id);
+//	printf("基站类型: %c .\r\n",anchor_type+0x41);
+//	printf("单次通讯基站数量: %d个.\r\n",g_com_map[MAX_REPORT_ANC_NUM]);
 	}
 	OUT485_DISABLE;
 //	printf("DEVICE PAIRID: %d .\r\n",g_com_map[PAIR_ID]);
@@ -224,7 +224,7 @@
 void IdleTask(void)
 {
 		
-			UART_CheckReceive();
+        UART_CheckReceive();
 		UART_CheckSend();
 	
 	if(heartbeat_timer>1000)
@@ -245,7 +245,7 @@
 //						NVIC_SystemReset();
 //					}
 //				}
-	  flag_newsecond=0;
+	    flag_newsecond=0;
 		tagpos_binary=0;
 		memcpy(ancidlist_send,ancidlist_rec,ancidlist_num*2);
 		ancidlist_num=0;
@@ -304,8 +304,59 @@
 		{
 				SCB->AIRCR = 0X05FA0000|(unsigned int)0x04; //软复位回到bootloader   
 		}
+     //   g_com_map[RELAY1_STATE_INDEX] = READ_RELAY1;
+	//	g_com_map[RELAY2_STATE_INDEX] = READ_RELAY2;
 
 	}
+//uint8_t at_cmd[3]={0x2B,0x2B,0x2B};
+//uint8_t at_cmd1[2]={0x41,0x54};
+ 
+char at_cmd2[22]={"AT+CAN=500,0000,NDTF\r\n"};  //AT+CAN?\r\n
+char at_cmd3[9]={"AT+CAN?\r\n"}; 
+char at_cmd4[9]={"AT+EXAT\r\n"}; 
+void send_to_ECAN()
+{
+//    g_com_map[NEARBASE_ID1]=0x12;
+//    g_com_map[NEARBASE_ID2]=0x34;
+    uint8_t id_high = g_com_map[NEARBASE_ID1];  // 0x12
+    uint8_t id_low = g_com_map[NEARBASE_ID2];   // 0x34
+    
+
+    uint16_t frame_id = (id_high << 8) | id_low;
+    
+    uint32_t decimal_id = frame_id;  // 0x1234 = 4660  
+    
+    if(decimal_id > 0x1FFFFFFF) 
+    {
+    printf("错误:帧ID超出扩展帧范围!");
+    return;
+    }
+    
+    const char *frame_type = (frame_id <= 0x7FF) ? "NDTF" : "EDTF";
+    
+
+    snprintf(at_cmd2, sizeof(at_cmd2), 
+             "AT+CAN=250,%x,%s\r\n", 
+             frame_id, 
+             frame_type);
+
+    printf("+++");
+    delay_ms(500);
+    
+    printf("AT");
+    delay_ms(500);
+    
+
+    printf("%s", at_cmd2);
+    
+    delay_ms(200);
+    
+    printf("%s", at_cmd3);
+    
+    delay_ms(200);
+    
+    printf("%s", at_cmd4);  
+}
     
 int main(void)
 {
@@ -314,7 +365,7 @@
 	//StartUpTest();
 	Program_Init();
 	Dw1000_Init();
-  delay_ms(10);	
+    delay_ms(10);	
 	Dw1000_App_Init();
     /* Loop forever initiating ranging exchanges. */
 	RCC_APB1PeriphClockCmd(RCC_APB1Periph_PWR, ENABLE);
@@ -322,9 +373,10 @@
 	usart_send[1]=0xAA;
 	usart_send_anc[0]=0x55;
 	usart_send_anc[1]=0xAA;
-
+    send_to_ECAN();
 	while(1)
 	{
+
 	g_start_sync_flag=0;
 	if(g_start_send_flag)
 	{

--
Gitblit v1.9.3