소스 검색

多串口调试

yidong.fan 4 달 전
부모
커밋
5442111a8b

+ 8 - 4
WZYXHT_V1.12507260002.X/WZYXHT_V1.12507260002.X/Motor.c

@@ -316,7 +316,8 @@ void Motor1Home(unsigned int pulseoffset,unsigned int MOVEspd,unsigned int LEAVs
         T5CONbits.TON=1;
         PulseNum=0;       
         while(PulseNum < Motor1.Overshoot_Pulse*2); 
-        T5CONbits.TON=0;       
+        T5CONbits.TON=0;       		
+    	Delay1ms(1000);
         MOTOR1_DIR = MOTOR1_FORWARD;    
         Freq=5000000/LEAVspd;          
         TMR5=0;
@@ -399,7 +400,8 @@ void Motor2Home(unsigned int pulseoffset,unsigned int MOVEspd,unsigned int LEAVs
         T5CONbits.TON=1;
         PulseNum=0;        
         while(PulseNum < Motor2.Overshoot_Pulse*2); 
-        T5CONbits.TON=0;        
+        T5CONbits.TON=0;        	
+    	Delay1ms(1000);
         MOTOR2_DIR = MOTOR2_FORWARD;            
         Freq=5000000/LEAVspd;
         TMR5=0;
@@ -482,7 +484,8 @@ void Motor3Home(unsigned int pulseoffset,unsigned int MOVEspd,unsigned int LEAVs
         T5CONbits.TON=1;
         PulseNum=0;        
         while(PulseNum < Motor3.Overshoot_Pulse*2); 
-        T5CONbits.TON=0;    
+        T5CONbits.TON=0;    		
+    	Delay1ms(1000);
         MOTOR3_DIR = MOTOR3_FORWARD; 
         Freq=5000000/LEAVspd;
         TMR5=0;
@@ -565,7 +568,8 @@ void Motor4Home(unsigned int pulseoffset,unsigned int MOVEspd,unsigned int LEAVs
         T5CONbits.TON=1;
         PulseNum=0;        
         while(PulseNum < Motor4.Overshoot_Pulse*2);  
-        T5CONbits.TON=0;    
+        T5CONbits.TON=0;    		
+    	Delay1ms(1000);
         MOTOR4_DIR = MOTOR4_FORWARD; 
         Freq=5000000/LEAVspd;
         TMR5=0;

+ 3 - 3
WZYXHT_V1.12507260002.X/WZYXHT_V1.12507260002.X/nbproject/Makefile-genesis.properties

@@ -1,10 +1,10 @@
 #
-#Mon Aug 04 13:25:12 CST 2025
+#Tue Jan 20 15:41:00 CST 2026
 default.languagetoolchain.version=2.10
 default.Pack.dfplocation=
 conf.ids=default
-default.languagetoolchain.dir=C\:\\Program Files\\Microchip\\xc16\\v2.10\\bin
-host.id=1lj1-c7wd-qs
+default.languagetoolchain.dir=D\:\\Program Files\\Microchip\\xc16\\v2.10\\bin
+host.id=1707-dsfu-bg
 configurations-xml=ed15cc36d40c270060cb3e593bb16a1c
 default.com-microchip-mplab-mdbcore-PICKit3Tool-PICkit3DbgToolManager.md5=50072f33d27b72924000ca2dca4b7622
 com-microchip-mplab-nbide-embedded-makeproject-MakeProject.md5=e62346c0c0ecee2637e613b49cb7b7fa

+ 12 - 12
WZYXHT_V1.12507260002.X/WZYXHT_V1.12507260002.X/nbproject/Makefile-local-default.mk

@@ -15,22 +15,22 @@
 # $ makeMP_CC="/opt/microchip/mplabc30/v3.30c/bin/pic30-gcc" ...  
 #
 SHELL=cmd.exe
-PATH_TO_IDE_BIN=C:/Program Files/Microchip/MPLABX/v6.15/mplab_platform/platform/../mplab_ide/modules/../../bin/
+PATH_TO_IDE_BIN=D:/Program Files/Microchip/MPLABX/v6.15/mplab_platform/platform/../mplab_ide/modules/../../bin/
 # Adding MPLAB X bin directory to path.
-PATH:=C:/Program Files/Microchip/MPLABX/v6.15/mplab_platform/platform/../mplab_ide/modules/../../bin/:$(PATH)
+PATH:=D:/Program Files/Microchip/MPLABX/v6.15/mplab_platform/platform/../mplab_ide/modules/../../bin/:$(PATH)
 # Path to java used to run MPLAB X when this makefile was created
-MP_JAVA_PATH="C:\Program Files\Microchip\MPLABX\v6.15\sys\java\zulu8.64.0.19-ca-fx-jre8.0.345-win_x64/bin/"
+MP_JAVA_PATH="D:\Program Files\Microchip\MPLABX\v6.15\sys\java\zulu8.64.0.19-ca-fx-jre8.0.345-win_x64/bin/"
 OS_CURRENT="$(shell uname -s)"
-MP_CC="C:\Program Files\Microchip\xc16\v2.10\bin\xc16-gcc.exe"
+MP_CC="D:\Program Files\Microchip\xc16\v2.10\bin\xc16-gcc.exe"
 # MP_CPPC is not defined
 # MP_BC is not defined
-MP_AS="C:\Program Files\Microchip\xc16\v2.10\bin\xc16-as.exe"
-MP_LD="C:\Program Files\Microchip\xc16\v2.10\bin\xc16-ld.exe"
-MP_AR="C:\Program Files\Microchip\xc16\v2.10\bin\xc16-ar.exe"
-DEP_GEN=${MP_JAVA_PATH}java -jar "C:/Program Files/Microchip/MPLABX/v6.15/mplab_platform/platform/../mplab_ide/modules/../../bin/extractobjectdependencies.jar"
-MP_CC_DIR="C:\Program Files\Microchip\xc16\v2.10\bin"
+MP_AS="D:\Program Files\Microchip\xc16\v2.10\bin\xc16-as.exe"
+MP_LD="D:\Program Files\Microchip\xc16\v2.10\bin\xc16-ld.exe"
+MP_AR="D:\Program Files\Microchip\xc16\v2.10\bin\xc16-ar.exe"
+DEP_GEN=${MP_JAVA_PATH}java -jar "D:/Program Files/Microchip/MPLABX/v6.15/mplab_platform/platform/../mplab_ide/modules/../../bin/extractobjectdependencies.jar"
+MP_CC_DIR="D:\Program Files\Microchip\xc16\v2.10\bin"
 # MP_CPPC_DIR is not defined
 # MP_BC_DIR is not defined
-MP_AS_DIR="C:\Program Files\Microchip\xc16\v2.10\bin"
-MP_LD_DIR="C:\Program Files\Microchip\xc16\v2.10\bin"
-MP_AR_DIR="C:\Program Files\Microchip\xc16\v2.10\bin"
+MP_AS_DIR="D:\Program Files\Microchip\xc16\v2.10\bin"
+MP_LD_DIR="D:\Program Files\Microchip\xc16\v2.10\bin"
+MP_AR_DIR="D:\Program Files\Microchip\xc16\v2.10\bin"

+ 2 - 2
WZYXHT_V1.12507260002.X/WZYXHT_V1.12507260002.X/nbproject/private/configurations.xml

@@ -4,8 +4,8 @@
   <defaultConf>0</defaultConf>
   <confs>
     <conf name="default" type="2">
-      <platformToolSN>:=MPLABComm-USB-Microchip:=&lt;vid>04D8:=&lt;pid>900A:=&lt;rev>0002:=&lt;man>Microchip Technology Inc.:=&lt;prod>PICkit 3:=&lt;sn>BUR182473687:=&lt;drv>x:=&lt;xpt>h:=end</platformToolSN>
-      <languageToolchainDir>C:\Program Files\Microchip\xc16\v2.10\bin</languageToolchainDir>
+      <platformToolSN>:=MPLABComm-USB-Microchip:=&lt;vid>04D8:=&lt;pid>900A:=&lt;rev>0002:=&lt;man>Microchip Technology Inc.:=&lt;prod>PICkit 3:=&lt;sn>DEFAULT_PK3 :=&lt;drv>x:=&lt;xpt>h:=end</platformToolSN>
+      <languageToolchainDir>D:\Program Files\Microchip\xc16\v2.10\bin</languageToolchainDir>
       <mdbdebugger version="1">
         <placeholder1>place holder 1</placeholder1>
         <placeholder2>place holder 2</placeholder2>

+ 6 - 3
WZYXHT_V1.12507260002.X/WZYXHT_V1.12507260002.X/nbproject/private/private.xml

@@ -77,10 +77,13 @@
         </file>
     </editor-bookmarks>
     <open-files xmlns="http://www.netbeans.org/ns/projectui-open-files/2">
+        <group name="source"/>
         <group>
-            <file>file:/E:/30.%20BTD24018-WZYXPOCT/01.Code/current/WZYXHT_V1.02412310001.X/command.c</file>
-            <file>file:/E:/30.%20BTD24018-WZYXPOCT/01.Code/current/WZYXHT_V1.02412310001.X/Instrument_EEPROM_Param.c</file>
+            <file>file:/F:/library/source/WZYXHT_V1.12507260002.X/WZYXHT_V1.12507260002.X/Motor.c</file>
+            <file>file:/F:/library/source/WZYXHT_V1.12507260002.X/WZYXHT_V1.12507260002.X/command.c</file>
+            <file>file:/F:/library/source/WZYXHT_V1.12507260002.X/WZYXHT_V1.12507260002.X/main.c</file>
+            <file>file:/F:/library/source/WZYXHT_V1.12507260002.X/WZYXHT_V1.12507260002.X/Delay.c</file>
+            <file>file:/F:/library/source/WZYXHT_V1.12507260002.X/WZYXHT_V1.12507260002.X/system.c</file>
         </group>
-        <group name="source"/>
     </open-files>
 </project-private>

+ 1 - 1
WZYXPCR_NO1.20250726.X/WZYXPCR_NO1.20250726.X/nbproject/Makefile-genesis.properties

@@ -1,5 +1,5 @@
 #
-#Tue Sep 23 18:16:52 CST 2025
+#Wed Jan 21 13:16:46 CST 2026
 default.languagetoolchain.version=2.10
 default.Pack.dfplocation=C\:\\Users\\onechip\\.mchp_packs\\Microchip\\dsPIC33E-GM-GP-MC-GU-MU_DFP\\1.0.23
 conf.ids=default

+ 1 - 1
WZYXPCR_NO1.20250726.X/WZYXPCR_NO1.20250726.X/nbproject/private/configurations.xml

@@ -4,7 +4,7 @@
   <defaultConf>0</defaultConf>
   <confs>
     <conf name="default" type="2">
-      <platformToolSN>:=MPLABComm-USB-Microchip:=&lt;vid>04D8:=&lt;pid>900A:=&lt;rev>0002:=&lt;man>Microchip Technology Inc.:=&lt;prod>PICkit 3:=&lt;sn>BUR202239188:=&lt;drv>x:=&lt;xpt>h:=end</platformToolSN>
+      <platformToolSN>:=MPLABComm-USB-Microchip:=&lt;vid>04D8:=&lt;pid>900A:=&lt;rev>0002:=&lt;man>Microchip Technology Inc.:=&lt;prod>PICkit 3:=&lt;sn>DEFAULT_PK3 :=&lt;drv>x:=&lt;xpt>h:=end</platformToolSN>
       <languageToolchainDir>D:\Program Files\Microchip\xc16\v2.10\bin</languageToolchainDir>
       <mdbdebugger version="1">
         <placeholder1>place holder 1</placeholder1>

+ 1 - 9
WZYXPCR_NO1.20250726.X/WZYXPCR_NO1.20250726.X/nbproject/private/private.xml

@@ -2,17 +2,9 @@
 <project-private xmlns="http://www.netbeans.org/ns/project-private/1">
     <editor-bookmarks xmlns="http://www.netbeans.org/ns/editor-bookmarks/2" lastBookmarkId="0"/>
     <open-files xmlns="http://www.netbeans.org/ns/projectui-open-files/2">
-        <group name="source">
-            <file>file:/F:/library/source/WZYXPCR_NO1.20250726.X/WZYXPCR_NO1.20250726.X/file/Uart.c</file>
-            <file>file:/F:/library/source/WZYXPCR_NO1.20250726.X/WZYXPCR_NO1.20250726.X/file/Delay.c</file>
-            <file>file:/F:/library/source/WZYXPCR_NO1.20250726.X/WZYXPCR_NO1.20250726.X/file/DS1802.c</file>
-            <file>file:/F:/library/source/WZYXPCR_NO1.20250726.X/WZYXPCR_NO1.20250726.X/file/Uart.h</file>
-            <file>file:/F:/library/source/WZYXPCR_NO1.20250726.X/WZYXPCR_NO1.20250726.X/file/main.c</file>
-            <file>file:/F:/library/source/WZYXPCR_NO1.20250726.X/WZYXPCR_NO1.20250726.X/file/EEPROM.c</file>
-        </group>
         <group>
-            <file>file:/F:/library/source/WZYXPCR_NO1.20250726.X/WZYXPCR_NO1.20250726.X/file/Uart.c</file>
             <file>file:/F:/library/source/WZYXPCR_NO1.20250726.X/WZYXPCR_NO1.20250726.X/file/main.c</file>
+            <file>file:/F:/library/source/WZYXPCR_NO1.20250726.X/WZYXPCR_NO1.20250726.X/file/Interrupt.c</file>
         </group>
     </open-files>
 </project-private>

+ 2 - 2
WZYX_UART_V1.1250726.X/WZYX_UART_V1.1250726.X/Pin.c

@@ -34,10 +34,10 @@ void Pin_Init(){
 	RPINR18bits.U1RXR = 48; //上电默认屏幕使用    
 	RPINR19bits.U2RXR= 43;
 	RPINR17bits.U3RXR = 29;
-//	RPINR27bits.U4RXR = 48;
+	RPINR27bits.U4RXR = 17;//串口4收 映射到RF5 原理图上PIC_FXD1
     
 	
-//    _RP10R = 3;  //上电默认PC使用
+    _RP10R = 24;  //串口4发 映射到RF4 原理图上PIC_TXD1
     _RP1R = 3; //上电默认屏幕使用    
 	_RP5R = 5;
 	_RP14R = 22 ;

+ 519 - 152
WZYX_UART_V1.1250726.X/WZYX_UART_V1.1250726.X/Uart.c

@@ -4,15 +4,26 @@
 /*******************************************************************************
  * 函数名称:Check
  *******************************************************************************/
-unsigned int Check(unsigned char *p,unsigned char num)
-{
-	unsigned char i=0;
-    unsigned int uiCheckSum=0;
-	for(i=0;i<num;i++){
-		uiCheckSum += *p;
-		p++;
-	}
-    return uiCheckSum;
+#define OUTTIME2S 200
+#define OUTTIME60S 6000
+unsigned char g_ucTX_DMA[MAX_UART_BUFFER_SIZE] __attribute__((eds));
+
+uint32_t   uart1_header = 0;
+uint32_t   uart1_last = 0;
+uint32_t   uart4_header = 0;
+uint32_t   uart4_last = 0;
+uint32_t   uart1_recOK = 0;
+
+
+extern unsigned int ms10_conter;
+unsigned int Check(unsigned char *p, unsigned char num) {
+  unsigned char i = 0;
+  unsigned int uiCheckSum = 0;
+  for (i = 0; i < num; i++) {
+    uiCheckSum += *p;
+    p++;
+  }
+  return uiCheckSum;
 }
 
 void InitUart1(void){	  
@@ -22,21 +33,47 @@ void InitUart1(void){
     U1MODEbits.ABAUD = 0;   
     U1MODEbits.LPBACK = 0;  
 
-    //    U1BRG = 31;     
-//    U1BRG = 259;           
-    U1BRG =0x67;           
-    
-    U1STAbits.UTXISEL0 = 1;
-    U1STAbits.UTXISEL1 = 0;
-    U1STAbits.URXISEL = 0;
-
-    IEC0bits.U1TXIE = 0;
-    IEC0bits.U1RXIE = 1;
-    U1MODEbits.UARTEN = 1;
-    U1STAbits.UTXEN = 1;
-    IPC2bits.U1RXIP = 7;
-    IPC3bits.U1TXIP = 7;    
-   
+  //    U1BRG = 31;
+  //    U1BRG = 259;
+  U1BRG = 0x67;
+
+  U1STAbits.UTXISEL1 = 0;
+  U1STAbits.UTXISEL0 = 1;
+  U1STAbits.URXISEL = 0;
+
+  IEC0bits.U1TXIE = 0;
+  IEC0bits.U1RXIE = 1;
+  U1MODEbits.UARTEN = 1;
+  U1STAbits.UTXEN = 1;
+  IPC2bits.U1RXIP = 7;
+  IPC3bits.U1TXIP = 7;
+
+
+
+  _U1TXIF = 0; // Clear UART TX IF to prevent erroneous DMA operation
+  // Configure DMA channel
+  DMACH5 = 0;
+  DMACH5bits.SAMODE = 1; // Source Address incremented after operation
+  DMACH5bits.DAMODE = 0; // Destination Address unchanged after operation
+  DMACH5bits.TRMODE = 0; // One Shot Mode
+  DMACH5bits.SIZE = 1;   // Transfer size of 1 byte
+
+  DMAINT5 = 0;
+  DMAINT5bits.CHSEL = 68; // DMA Trigger is U4 TX Interrupt
+
+  DMADST5 = (uint16_t)&U1TXREG;
+
+  // Set up interrupts and interrupt priorities as desired
+  _DMA5IF = 0;
+  _DMA5IE = 0;
+  _DMA5IP = 3;
+
+  _U1RXIF = 0;
+  _U1RXIE = 1;
+  _U1RXIP = 3;
+
+
+  
 }
 void InitUart2(void){
 	
@@ -61,51 +98,71 @@ void InitUart2(void){
     IPC7bits.U2TXIP = 6;      
     
 }
-void InitUart3(void){
-	
-	
-	U3MODEbits.STSEL=0;
-	U3MODEbits.PDSEL=0;
-	U3MODEbits.BRGH=0;
-	U3MODEbits.ABAUD=0;
-	U3MODEbits.LPBACK=0;
-	
-	U3BRG = 0x67;
-	
-	U3STAbits.UTXISEL1=0;
-	U3STAbits.UTXISEL0=1;
-	U3STAbits.URXISEL=1;
-	
-    IEC5bits.U3TXIE = 0;
-    IEC5bits.U3RXIE = 1;    
-	U3MODEbits.UARTEN=1;
-	U3STAbits.UTXEN=1;
-    IPC20bits.U3RXIP = 6;
-    IPC20bits.U3TXIP = 6;      
-    
+void InitUart3(void) {
+
+  U3MODEbits.STSEL = 0;
+  U3MODEbits.PDSEL = 0;
+  U3MODEbits.BRGH = 0;
+  U3MODEbits.ABAUD = 0;
+  U3MODEbits.LPBACK = 0;
+
+  U3BRG = 0x67;
+
+  U3STAbits.UTXISEL1 = 0;
+  U3STAbits.UTXISEL0 = 1;
+  U3STAbits.URXISEL = 0;
+
+  IEC5bits.U3TXIE = 0;
+  IEC5bits.U3RXIE = 1;
+  U3MODEbits.UARTEN = 1;
+  U3STAbits.UTXEN = 1;
+  IPC20bits.U3RXIP = 6;
+  IPC20bits.U3TXIP = 6;
 }
-void InitUart4(void){
-	
-	
-	U4MODEbits.STSEL=0;
-	U4MODEbits.PDSEL=0;
-	U4MODEbits.BRGH=0;
-	U4MODEbits.ABAUD=0;
-	U4MODEbits.LPBACK=0;
-	
-	U4BRG = 0x67;
-	
-	U4STAbits.UTXISEL1=0;
-	U4STAbits.UTXISEL0=1;
-	U4STAbits.URXISEL=1;
-	
-    IEC5bits.U4TXIE = 0;
-    IEC5bits.U4RXIE = 1;    
-	U4MODEbits.UARTEN=1;
-	U4STAbits.UTXEN=1;
-    IPC22bits.U4RXIP = 6;
-    IPC22bits.U4TXIP = 6;      
-    
+void InitUart4(void) {
+
+  U4MODEbits.STSEL = 0;
+  U4MODEbits.PDSEL = 0;
+  U4MODEbits.BRGH = 0;
+  U4MODEbits.ABAUD = 0;
+  U4MODEbits.LPBACK = 0;
+
+  U4BRG = 0x67;
+
+  U4STAbits.UTXISEL1 = 0;
+  U4STAbits.UTXISEL0 = 1;
+  U4STAbits.URXISEL = 1;
+
+  IEC5bits.U4TXIE = 0;
+  IEC5bits.U4RXIE = 1;
+  U4MODEbits.UARTEN = 1;
+  U4STAbits.UTXEN = 1;
+  IPC22bits.U4RXIP = 6;
+  IPC22bits.U4TXIP = 6;
+
+  
+  _U4TXIF = 0; // Clear UART TX IF to prevent erroneous DMA operation
+  // Configure DMA channel
+  DMACH4 = 0;
+  DMACH4bits.SAMODE = 1; // Source Address incremented after operation
+  DMACH4bits.DAMODE = 0; // Destination Address unchanged after operation
+  DMACH4bits.TRMODE = 0; // One Shot Mode
+  DMACH5bits.SIZE = 1;   // Transfer size of 1 byte
+
+  DMAINT4 = 0;
+  DMAINT4bits.CHSEL = 59; // DMA Trigger is U4 TX Interrupt
+
+  DMADST4 = (uint16_t)&U1TXREG;
+
+  // Set up interrupts and interrupt priorities as desired
+  _DMA4IF = 0;
+  _DMA4IE = 0;
+  _DMA4IP = 3;
+
+  _U4RXIF = 0;
+  _U4RXIE = 1;
+  _U4RXIP = 3;
+
 }
 void InitUart5(void){
 	
@@ -153,12 +210,38 @@ void InitUart6(void){
     IPC28bits.U6TXIP = 6;      
     
 }
-void UART1SEND(char data)
-{
-     U1TXREG = data;   
-      while(!IFS0bits.U1TXIF);
-     IFS0bits.U1TXIF=0;       		
+void UART1SEND(char data) {
+  if (g_CmdFrom_UartNum == 1) {
+    U1TXREG = data;
+    while (!IFS0bits.U1TXIF)
+      ;
+    IFS0bits.U1TXIF = 0;
+  } else {
+    U4TXREG = data;
+    while (!IFS5bits.U4TXIF)
+      ;
+    IFS5bits.U4TXIF = 0;
+  }
 }
+void UART1SendDma(unsigned char *txData, unsigned int len) {
+    for (unsigned int i = 0; i < len; i++) {
+      g_ucTX_DMA[i] = txData[i];
+    }
+  if (g_CmdFrom_UartNum == 1) {
+    while (DMACH5bits.CHEN);  
+    DMASRC5 = (uint16_t)g_ucTX_DMA;
+    DMACNT5 = len-1;
+    DMACH5bits.CHEN = 1; // Enable DMA Channel
+    DMACH5bits.CHREQ = 1; // Start DMA Operation
+  } else {    
+  	while (DMACH4bits.CHEN);  
+    DMASRC4 = (uint16_t)g_ucTX_DMA;
+    DMACNT4 = len-1;
+    DMACH4bits.CHEN = 1; // Enable DMA Channel
+    DMACH4bits.CHREQ = 1; // Start DMA Operation
+  }
+}
+
 void Uart1_Receive(char num){
 
     U1TXREG = num;  
@@ -226,47 +309,50 @@ void Uart6_Receive(char num){
 	   IFS7bits.U6RXIF=0;  
 }
 
-
-
-void __attribute__ ( ( interrupt, no_auto_psv ) ) _U1RXInterrupt( void ){
-    IFS0bits.U1RXIF = 0;       
-	g_ucU1RX_Data[g_uiUart1_No] = U1RXREG;                                   
-    if(g_BUSY1 == 1) return;
-    if(g_ucHeaderFlag1 == 0){                                               
-		if(g_ucU1RX_Data[g_uiUart1_No] == FRAME_HEAD){                      
-            g_ucHeaderFlag1 = 1;                                           
-            g_ucU1RX_Data[0] = FRAME_HEAD;                              
-            g_uiUart1_No = 1;                                             
-		}else{
-            g_BUSY1 = 0;                                                    
-        }
-	}else if(g_ucHeaderFlag1 == 1){                                             
-		g_uiUart1_No++;
-    } 
-    if(g_uiUart1_No > (FRAME_LTHH_INDEX+1)){                                                          
-        g_uiLth1 = g_ucU1RX_Data[FRAME_LTHH_INDEX]; 
-        if(g_uiUart1_No == g_uiLth1){                                         
-            g_ulRSUM1 = Check(g_ucU1RX_Data,g_uiLth1-1);                      
-            g_ucCRC1 = (unsigned char)g_ulRSUM1;                         
-            if(g_ucCRC1 == g_ucU1RX_Data[g_uiLth1-1]){                   
-                g_ucCMD1 = g_ucU1RX_Data[FRAME_CMD_INDEX];            
-                g_ucUART1_flag  = 1;                                         
-                g_ulRSUM1       = 0;                                          
-                g_uiUart1_No    = 0;                                     
-                g_ucHeaderFlag1 = 0;                                     
-                g_BUSY1         = 1;                                          
-            }else{
-                memset(g_ucU1RX_Data,0,g_uiLth1*sizeof(unsigned char));      
-                g_BUSY1 = 0;                                                  
-            }        
-        }else if(g_uiUart1_No > g_uiLth1){                             
-            g_uiUart1_No    = 0;                                          
-            g_ucHeaderFlag1 = 0;                                         
-            g_BUSY1         = 0;                                       
-        }
-    }
-           
+void __attribute__((interrupt, no_auto_psv)) _U1RXInterrupt(void) {
+  IFS0bits.U1RXIF = 0; 
+  g_ucU1RX_Buf[uart1_last++] = U1RXREG;
+  if(uart1_last == MAX_UART_BUFFER_SIZE){
+	uart1_last = 0;
+  }
 	
+//  g_ucU1RX_Data[g_uiUart1_No] = U1RXREG;
+//  if (g_BUSY1 == 1)
+//    return;
+//  if (g_ucHeaderFlag1 == 0) {
+//    if (g_ucU1RX_Data[g_uiUart1_No] == FRAME_HEAD) {
+//      g_ucHeaderFlag1 = 1;
+//      g_ucU1RX_Data[0] = FRAME_HEAD;
+//      g_uiUart1_No = 1;
+//    } else {
+//      g_BUSY1 = 0;
+//    }
+//  } else if (g_ucHeaderFlag1 == 1) {
+//    g_uiUart1_No++;
+//  }
+//  if (g_uiUart1_No > (FRAME_LTHH_INDEX + 1)) {
+//    g_uiLth1 = g_ucU1RX_Data[FRAME_LTHH_INDEX];
+//    if (g_uiUart1_No == g_uiLth1) {
+//      g_ulRSUM1 = Check(g_ucU1RX_Data, g_uiLth1 - 1);
+//      g_ucCRC1 = (unsigned char)g_ulRSUM1;
+//      if (g_ucCRC1 == g_ucU1RX_Data[g_uiLth1 - 1]) {
+//        g_ucCMD1 = g_ucU1RX_Data[FRAME_CMD_INDEX];
+//        g_ucUART1_flag = 1;
+//        g_CmdFrom_UartNum = 1;
+//        g_ulRSUM1 = 0;
+//        g_uiUart1_No = 0;
+//        g_ucHeaderFlag1 = 0;
+//        g_BUSY1 = 1;
+//      } else {
+//        memset(g_ucU1RX_Data, 0, g_uiLth1 * sizeof(unsigned char));
+//        g_BUSY1 = 0;
+//      }
+//    } else if (g_uiUart1_No > g_uiLth1) {
+//      g_uiUart1_No = 0;
+//      g_ucHeaderFlag1 = 0;
+//      g_BUSY1 = 0;
+//    }
+//  }
 }
   
 void __attribute__ ( ( interrupt, no_auto_psv ) ) _U2RXInterrupt( void ){
@@ -348,45 +434,53 @@ void __attribute__ ( ( interrupt, no_auto_psv ) ) _U3RXInterrupt( void ){
     }
 }
 
-void __attribute__ ( ( interrupt, no_auto_psv ) ) _U4RXInterrupt( void ){
-    IFS5bits.U4RXIF = 0;       
-	g_ucU4RX_Data[g_uiUart4_No] = U4RXREG;                                
-    if(g_BUSY4 == 1) return;
-    if(g_ucHeaderFlag4 == 0){                                            
-		if(g_ucU4RX_Data[g_uiUart4_No] == FRAME_HEAD){                 
-            g_ucHeaderFlag4 = 1;                                         
-            g_ucU4RX_Data[0] = FRAME_HEAD;                                
-            g_uiUart4_No = 1;                                             
-		}else{
-            g_BUSY4 = 0;                                                  
-        }
-	}else if(g_ucHeaderFlag4 == 1){                                  
-		g_uiUart4_No++;
-    } 
-    if(g_uiUart4_No > (FRAME_LTHH_INDEX+1)){                                                      
-        g_uiLth4 = g_ucU4RX_Data[FRAME_LTHH_INDEX]; 
-        if(g_uiUart4_No == g_uiLth4){                                    
-            g_ulRSUM4 = Check(g_ucU4RX_Data,g_uiLth4-1);                
-            g_ucCRC4 = (unsigned char)g_ulRSUM4;                           
-            if(g_ucCRC4 == g_ucU4RX_Data[g_uiLth4-1]){                   
-                g_ucCMD4 = g_ucU4RX_Data[FRAME_CMD_INDEX];                
-                g_ucUART4_flag  = 1;                               
-                g_ulRSUM4       = 0;                                    
-                g_uiUart4_No    = 0;                                 
-                g_ucHeaderFlag4 = 0;                                   
-                g_BUSY4         = 1;                                    
-            }else{
-                memset(g_ucU4RX_Data,0,g_uiLth4*sizeof(unsigned char));     
-                g_BUSY4 = 0;                                                  
-            }        
-        }else if(g_uiUart4_No > g_uiLth4){                               
-            g_uiUart4_No    = 0;                                         
-            g_ucHeaderFlag4 = 0;                                         
-            g_BUSY4         = 0;                                            
-        }
-    }
-           
-	
+void __attribute__((interrupt, no_auto_psv)) _U4RXInterrupt(void) {
+  IFS5bits.U4RXIF = 0;
+
+  g_ucU4RX_Data[uart4_last++] = U4RXREG;
+  if(uart4_last == MAX_UART_BUFFER_SIZE){
+	uart4_last = 0;
+  }
+
+
+//
+//  g_ucU1RX_Data[g_uiUart1_No] = U4RXREG;
+//  if (g_BUSY1 == 1)
+//    return;
+//  if (g_ucHeaderFlag1 == 0) {
+//    if (g_ucU1RX_Data[g_uiUart1_No] == FRAME_HEAD) {
+//      g_ucHeaderFlag1 = 1;
+//      g_ucU1RX_Data[0] = FRAME_HEAD;
+//      g_uiUart1_No = 1;
+//    } else {
+//      g_BUSY1 = 0;
+//    }
+//  } else if (g_ucHeaderFlag1 == 1) {
+//    g_uiUart1_No++;
+//  }
+//  if (g_uiUart1_No > (FRAME_LTHH_INDEX + 1)) {
+//    g_uiLth1 = g_ucU1RX_Data[FRAME_LTHH_INDEX];
+//    if (g_uiUart1_No == g_uiLth1) {
+//      g_ulRSUM1 = Check(g_ucU1RX_Data, g_uiLth1 - 1);
+//      g_ucCRC1 = (unsigned char)g_ulRSUM1;
+//      if (g_ucCRC1 == g_ucU1RX_Data[g_uiLth1 - 1]) {
+//        g_ucCMD1 = g_ucU1RX_Data[FRAME_CMD_INDEX];
+//        g_ucUART1_flag = 1;
+//        g_CmdFrom_UartNum = 4;
+//        g_ulRSUM1 = 0;
+//        g_uiUart1_No = 0;
+//        g_ucHeaderFlag1 = 0;
+//        g_BUSY1 = 1;
+//      } else {
+//        memset(g_ucU1RX_Data, 0, g_uiLth1 * sizeof(unsigned char));
+//        g_BUSY1 = 0;
+//      }
+//    } else if (g_uiUart1_No > g_uiLth1) {
+//      g_uiUart1_No = 0;
+//      g_ucHeaderFlag1 = 0;
+//      g_BUSY1 = 0;
+//    }
+//  }
 }
 
 void __attribute__ ( ( interrupt, no_auto_psv ) ) _U5RXInterrupt( void ){//√
@@ -470,6 +564,279 @@ void __attribute__ ( ( interrupt, no_auto_psv ) ) _U6RXInterrupt( void ){
            
 	
 }
+
+
+/********************************************************************
+ *                         int Decode(const char *pInBuffer, int uLen)
+ *
+ *描述:对串口数据进行解码成结构体
+ *参数:pInBuffer    接收缓冲区
+        *uheader 当前头位置
+        ulast 当前头尾位置
+        maxlen 缓冲区长度
+        pMessage  命令结构体
+        pdata 命令数据
+ *返回:1解码成功,0解码失败
+ *其他:无
+ *--------------------------------------------------------------------
+ *记录:
+ ********************************************************************/
+int DecodeNew(void* pMessage, uint8_t *pdata, const uint8_t *pInBuffer, uint32_t *pheader,uint32_t  ulast,uint32_t maxlen)
+{
+	uint32_t  bufRealLen;
+	uint32_t  sizeofMessage = ALPS_MASSAGE_MIN_SIZE;
+	uint32_t  header = *pheader;
+	uint32_t i = 0;
+//    if (NULL == pInBuffer || NULL == pMessage || NULL == pdata || NULL == pheader)
+    if (NULL == pInBuffer  || NULL == pdata || NULL == pheader)
+    {
+		/*空指针判断*/
+		return 0;
+    }
+	/*缓冲区有效数据长度,缓冲区循环处理,会出现头大于未情况*/
+	bufRealLen = (ulast > header)?(ulast - header):(ulast + maxlen - header);
+	if(bufRealLen < sizeofMessage){
+		/*长度过段,跳过*/
+		return 0;
+	}
+//	bufRealLen = sizeofMessage; /*最大有效数据长度*/
+	for(; i<=(bufRealLen - sizeofMessage);){
+		uint32_t headerflag = pInBuffer[(header + i)%maxlen];
+//		headerflag += pInBuffer[(header + i + 1)%maxlen] <<8;
+		if(headerflag != ALPS_HEADER_FALG){
+			i += 1;
+//			header = (header + 1)%maxlen;
+			continue;
+		}
+		uint32_t messagelen =  pInBuffer[(header + i + 3)%maxlen];
+//		messagelen += pInBuffer[(header + i + 5)%maxlen] <<8;
+		if(messagelen > (maxlen)){
+			/*长度超长 跳过2个字节*/
+			i += 1;
+//			header = (header + 1)%maxlen;
+			continue;
+		}
+		if(messagelen >bufRealLen){
+			/*当前起始点可能存在数据,跳出循环,*/
+			i++; /*for采样小于等于判断,循环次数多1,此处加1便于后续处理*/
+			break;
+		}
+
+		uint8_t checkesum = 0;
+		uint8_t recsum = 0;
+		if((header + i +  messagelen) < maxlen){
+			checkesum = checkSum(pInBuffer + header + i , messagelen - 1);
+			
+		}else{
+			checkesum = checkSum(pInBuffer + header + i , (maxlen - (header)));
+			checkesum += checkSum(pInBuffer, (header + i + messagelen - 1)%maxlen);
+		}
+		recsum = *(pInBuffer + (header + i  + messagelen - 1)%maxlen ) ;
+//		recsum += *(pInBuffer + (header + i + 7 + messagelen)%maxlen) << 8;
+		/*固定结尾预留做调试用*/
+		if(checkesum != recsum ){
+			i += 1;
+//			header = (header + 1)%maxlen;
+		}else{
+			/*解析成功,拷贝消息结构体*/
+//		    uint8_t * pCharMessage = (uint8_t *)pMessage;
+//			for(unsigned copyi=0;copyi<(sizeofMessage-2);copyi++){
+//				 *pCharMessage++ = pInBuffer[(header + i+ copyi)%maxlen];
+//			}
+//			(*pMessage).tail = MINI7_TAIL_FALG;
+
+			/*解析成功,拷贝数据结构体*/
+			for(unsigned copyi=0;copyi<messagelen;copyi++){
+				 *pdata++ = pInBuffer[(header + i + copyi)%maxlen];
+			}
+			*pheader = (header + messagelen  + i )%maxlen;
+			return 1;
+		}
+	}
+   *pheader = (header + i - 1)%maxlen;
+   return 0;
+}
+
+
+
+/*******************************************************************************
+ * 函数名称: unPack_Cmd  串口消息解码
+ *******************************************************************************/
+
+void unPack_Cmd(void){
+    if(((uart1_last + MAX_UART_BUFFER_SIZE - uart1_header) % MAX_UART_BUFFER_SIZE ) >= ALPS_MASSAGE_MIN_SIZE)
+        {
+		    uart1_recOK = DecodeNew(NULL,g_ucU1RX_Data,g_ucU1RX_Buf, &uart1_header,uart1_last,MAX_UART_BUFFER_SIZE);
+			if(uart1_recOK){
+				if(g_BUSY1){
+					/*忙应答*/
+				}else{
+					g_BUSY1 = 1;
+					g_ucUART1_flag = 1;
+					g_CmdFrom_UartNum = 1;
+				}
+			}
+        }
+	else if(((uart4_last + MAX_UART_BUFFER_SIZE - uart4_header) % MAX_UART_BUFFER_SIZE ) >= ALPS_MASSAGE_MIN_SIZE)
+        {
+		    uart1_recOK = DecodeNew(NULL,g_ucU1RX_Data,g_ucU4RX_Buf, &uart4_header,uart4_last,MAX_UART_BUFFER_SIZE);
+			if(uart1_recOK){
+				if(g_BUSY1){
+					/*忙应答*/
+				}else{
+					g_BUSY1 = 1;
+					g_ucUART1_flag = 1;
+					g_CmdFrom_UartNum = 1;
+				}
+			}
+        }
+}
+
+
+/*******************************************************************************
+ * 函数名称:Uart1_Ack
+ *******************************************************************************/
+
+void Uart1_Ack_new(void) {
+  unsigned int g_uiFrmLth;
+  unsigned int sendTime;
+  unsigned int outTime = OUTTIME2S;
+  switch (g_ucCMD1) {
+  case READ_EEPROM:
+  case WRITE_EEPROM: {
+    if (g_ucU1RX_Data[2] == 0) {
+      if ((ulEE_address >= 0x0000) && (ulEE_address <= 0x1FFF)) {
+        g_ucU1RX_Data[2] = 1;
+        g_ucU1RX_Data[g_ucU1RX_Data[3] - 1] += 1;
+      } else if ((ulEE_address >= 0x2000) && (ulEE_address <= 0xFFFF)) {
+        g_ucU1RX_Data[2] = 2;
+        g_ucU1RX_Data[g_ucU1RX_Data[3] - 1] += 2;
+      }
+    }
+  } break;
+  case PCR_RDTEMP:
+  case RD_PCRDATA:
+  case PCR_MOTOR:
+    outTime = OUTTIME60S;
+    break;
+  default:
+    break;
+  }
+
+  switch (g_ucU1RX_Data[2]) {
+  case 0: {
+    g_uiFrmLth = 6;
+    g_ucU1TX_Data[0] = FRAME_HEAD;
+    g_ucU1TX_Data[1] = g_ucCMD1 | 0X80;
+    g_ucU1TX_Data[2] = 0;
+    g_ucU1TX_Data[3] = g_uiFrmLth & 0xff;
+    g_ucU1TX_Data[4] = 0;
+    g_ucU1TX_Data[5] = (unsigned char)Check(g_ucU1TX_Data, g_uiFrmLth - 1);
+//    for (unsigned int n = 0; n < g_ucU1TX_Data[3]; n++) {
+//      UART1SEND(g_ucU1TX_Data[n]);
+//    }
+	UART1SendDma(g_ucU1TX_Data,g_uiFrmLth);
+
+  } break;
+  case 1: {
+    for (unsigned int n = 0; n < g_ucU1RX_Data[3]; n++) {
+      UART2SEND(g_ucU1RX_Data[n]);
+    }
+    sendTime = ms10_conter;
+    while (!g_ucUART2_flag && (ms10_conter - sendTime) < outTime)
+      ;
+    if (!g_ucUART2_flag) {
+      g_uiFrmLth = 6;
+      g_ucU1TX_Data[0] = FRAME_HEAD;
+      g_ucU1TX_Data[1] = g_ucCMD1 | 0X80;
+      g_ucU1TX_Data[2] = 1;
+      g_ucU1TX_Data[3] = g_uiFrmLth & 0xff;
+      g_ucU1TX_Data[4] = EnmErrCode_errTimeOut;
+      g_ucU1TX_Data[5] = (unsigned char)Check(g_ucU1TX_Data, g_uiFrmLth - 1);
+      for (unsigned int n = 0; n < g_ucU1TX_Data[3]; n++) {
+        UART1SEND(g_ucU1TX_Data[n]);
+      }
+    } else {
+      g_ucU2RX_Data[0] = FRAME_HEAD;
+      g_ucU2RX_Data[1] = g_ucCMD1 | 0X80;
+      g_ucU2RX_Data[2] = 1;
+      g_uiFrmLth = g_ucU2RX_Data[3];
+      g_ucU2RX_Data[g_uiFrmLth - 1] =
+          (unsigned char)Check(g_ucU2RX_Data, g_uiFrmLth - 1);
+      for (unsigned int n = 0; n < g_ucU2RX_Data[3]; n++) {
+        UART1SEND(g_ucU2RX_Data[n]);
+      }
+    }
+    g_ucUART2_flag = 0;
+    g_BUSY2 = 0;
+
+  } break;
+  case 2: {
+    g_ucU3TX_Data[0] = FRAME_HEAD1;
+    g_ucU3TX_Data[1] = g_ucCMD1;
+    g_ucU3TX_Data[2] = 2;
+    g_ucU3TX_Data[3] = 0;
+    g_ucU3TX_Data[4] = g_ucU1RX_Data[3] + 1; // 6
+    g_uiFrmLth = g_ucU3TX_Data[4];
+    for (unsigned int i = 4; i < g_ucU1RX_Data[3]; i++) {
+      g_ucU3TX_Data[i + 1] = g_ucU1RX_Data[i];
+    }
+    g_ucU3TX_Data[g_uiFrmLth - 1] =
+        (unsigned char)Check(g_ucU3TX_Data, g_uiFrmLth - 1);
+    for (unsigned int n = 0; n < g_ucU3TX_Data[4]; n++) {
+      UART3SEND(g_ucU3TX_Data[n]);
+    }
+    sendTime = ms10_conter;
+    while (!g_ucUART2_flag && (ms10_conter - sendTime) < outTime)
+      ;
+    if (!g_ucUART2_flag) {
+      g_uiFrmLth = 6;
+      g_ucU1TX_Data[0] = FRAME_HEAD;
+      g_ucU1TX_Data[1] = g_ucCMD1 | 0X80;
+      g_ucU1TX_Data[2] = 1;
+      g_ucU1TX_Data[3] = g_uiFrmLth & 0xff;
+      g_ucU1TX_Data[4] = EnmErrCode_errTimeOut;
+    } else {
+      g_ucU1TX_Data[0] = FRAME_HEAD;
+      g_ucU1TX_Data[1] = g_ucCMD1 | 0X80;
+      g_ucU1TX_Data[2] = 2;
+      g_ucU1TX_Data[3] = g_ucU3RX_Data[4] - 1;
+      g_uiFrmLth = g_ucU1TX_Data[3];
+      for (unsigned int i = 4; i < g_ucU3RX_Data[4]; i++) {
+        g_ucU1TX_Data[i] = g_ucU4RX_Data[i + 1];
+      }
+    }
+
+    g_ucU1TX_Data[g_uiFrmLth - 1] =
+        (unsigned char)Check(g_ucU1TX_Data, g_uiFrmLth - 1);
+    for (unsigned int n = 0; n < g_ucU1TX_Data[3]; n++) {
+      UART1SEND(g_ucU1TX_Data[n]);
+    }
+    g_ucUART3_flag = 0;
+    g_BUSY3 = 0;
+
+  } break;
+  default: {
+    g_uiFrmLth = 6;
+    g_ucU1TX_Data[0] = FRAME_HEAD;
+    g_ucU1TX_Data[1] = g_ucCMD1 | 0X80;
+    g_ucU1TX_Data[2] = 0;
+    g_ucU1TX_Data[3] = g_uiFrmLth & 0xff;
+    g_ucU1TX_Data[4] = EnmErrCode_errPara1;
+    g_ucU1TX_Data[5] = (unsigned char)Check(g_ucU1TX_Data, g_uiFrmLth - 1);
+    for (unsigned int n = 0; n < g_ucU1TX_Data[3]; n++) {
+      UART1SEND(g_ucU1TX_Data[n]);
+    }
+
+  } break;
+  }
+  g_ucUART1_flag = 0;
+  g_uiUart1_No = 0;
+  g_ucHeaderFlag1 = 0;
+  memset(g_ucU1RX_Data, 0, g_uiLth1 * sizeof(unsigned char));
+  g_BUSY1 = 0;
+  g_CmdFrom_UartNum = 0;
+}
 /*******************************************************************************
  * 函数名称:Uart1_Ack
  *******************************************************************************/

+ 54 - 2
WZYX_UART_V1.1250726.X/WZYX_UART_V1.1250726.X/main.c

@@ -144,11 +144,55 @@
 #include <xc.h>
 #include <p24FJ512GU410.h>
 
+#define  STU PORTGbits.RG9 
 
 #include"User.h"
 /*******************************************************************************
  * 函数名称:InitOsc
  *******************************************************************************/
+
+// 假设系统时钟为40MHz(经PLL4X后)
+#define FCY 20000000UL  // 指令周期频率 = Fosc/2
+#define TIMER1_PRESCALER 256 
+#define TIMER1_PERIOD (FCY * 0.01 / TIMER1_PRESCALER - 1)
+unsigned int secondFlag;
+unsigned int ms10_conter=0;
+
+void dmaInit(void) {
+	DMACONbits.DMAEN = 1;//Enable DMA
+	DMACONbits.PRSSEL = 0;//Used Fixed Priority Scheme
+	DMAL = 0x0000;//Set the DMA range. Allow operation on all memory
+	DMAH = 0xFFFF;
+}
+
+
+void Timer1_Init(void) {
+    T1CONbits.TON = 0;      // 先关闭定时器
+    T1CONbits.TCKPS = 0b11; // 预分频比1:256 (11)
+    T1CONbits.TCS = 0;      // 使用内部时钟源 
+    PR1 = TIMER1_PERIOD;    // 10ms周期计算值(15624)
+    
+    IFS0bits.T1IF = 0;      // 清除中断标志 
+    IEC0bits.T1IE = 1;      // 使能定时器中断 
+    IPC0bits.T1IP = 4;      // 中断优先级4 
+    T1CONbits.TON = 1;      // 启动定时器 
+}
+
+void __attribute__((interrupt, auto_psv)) _T1Interrupt(void) {
+    IFS0bits.T1IF = 0;      // 必须手动清除标志位
+    
+    // 用户代码区(10ms任务)
+    static uint16_t counter = 0;
+	ms10_conter++;
+	unPack_Cmd();
+    if(++counter >= 100) {  // 1秒计时 
+        counter = 0;
+		secondFlag = 1;
+        // 添加秒级任务 
+    }
+}
+
+
 int main(void){
 //    InitOsc();
 	unsigned char data;
@@ -156,18 +200,26 @@ int main(void){
     LATBbits.LATB9 = 0;
     Delay_ms(3000);
     LATBbits.LATB9 = 1;
+	dmaInit();
 	InitUart1();//√
     InitUart2();//√
     InitUart3();//√
     InitUart4();//√
     InitUart5();//√
     InitUart6();//√	
+    Timer1_Init();
 	data=1;
  	while(1){
+		if(secondFlag){
+			secondFlag = 0;
+			 STU = !STU;     
+//			UART1SendDma("dma send test\n\r",sizeof("dma send test\n\r"));
+			 
+		}
 
 		if(g_ucUART1_flag == 1){  
-            Uart1_Ack();      
-
+//            Uart1_Ack();      
+			Uart1_Ack_new();
 					
 				}
 				

+ 5 - 5
WZYX_UART_V1.1250726.X/WZYX_UART_V1.1250726.X/nbproject/Makefile-genesis.properties

@@ -1,11 +1,11 @@
 #
-#Tue Aug 05 18:50:47 CST 2025
+#Fri Jan 09 17:13:41 CST 2026
 default.languagetoolchain.version=2.10
-default.Pack.dfplocation=C\:\\Program Files\\Microchip\\MPLABX\\v6.15\\packs\\Microchip\\PIC24F-GL-GU_DFP\\1.5.121
+default.Pack.dfplocation=D\:\\Program Files\\Microchip\\MPLABX\\v6.15\\packs\\Microchip\\PIC24F-GL-GU_DFP\\1.5.121
 conf.ids=default
-default.languagetoolchain.dir=C\:\\Program Files\\Microchip\\xc16\\v2.10\\bin
-host.id=1lj1-c7wd-qs
-configurations-xml=1f28628db205b0a44b9f93256c4983ee
+default.languagetoolchain.dir=D\:\\Program Files\\Microchip\\xc16\\v2.10\\bin
+host.id=1707-dsfu-bg
+configurations-xml=40ca89e33989176c97dbcbed54acc648
 default.com-microchip-mplab-mdbcore-PICKit3Tool-PICkit3DbgToolManager.md5=50072f33d27b72924000ca2dca4b7622
 com-microchip-mplab-nbide-embedded-makeproject-MakeProject.md5=e62346c0c0ecee2637e613b49cb7b7fa
 proj.dir=F\:\\library\\source\\WZYX_UART_V1.1250726.X\\WZYX_UART_V1.1250726.X

+ 13 - 13
WZYX_UART_V1.1250726.X/WZYX_UART_V1.1250726.X/nbproject/Makefile-local-default.mk

@@ -15,23 +15,23 @@
 # $ makeMP_CC="/opt/microchip/mplabc30/v3.30c/bin/pic30-gcc" ...  
 #
 SHELL=cmd.exe
-PATH_TO_IDE_BIN=C:/Program Files/Microchip/MPLABX/v6.15/mplab_platform/platform/../mplab_ide/modules/../../bin/
+PATH_TO_IDE_BIN=D:/Program Files/Microchip/MPLABX/v6.15/mplab_platform/platform/../mplab_ide/modules/../../bin/
 # Adding MPLAB X bin directory to path.
-PATH:=C:/Program Files/Microchip/MPLABX/v6.15/mplab_platform/platform/../mplab_ide/modules/../../bin/:$(PATH)
+PATH:=D:/Program Files/Microchip/MPLABX/v6.15/mplab_platform/platform/../mplab_ide/modules/../../bin/:$(PATH)
 # Path to java used to run MPLAB X when this makefile was created
-MP_JAVA_PATH="C:\Program Files\Microchip\MPLABX\v6.15\sys\java\zulu8.64.0.19-ca-fx-jre8.0.345-win_x64/bin/"
+MP_JAVA_PATH="D:\Program Files\Microchip\MPLABX\v6.15\sys\java\zulu8.64.0.19-ca-fx-jre8.0.345-win_x64/bin/"
 OS_CURRENT="$(shell uname -s)"
-MP_CC="C:\Program Files\Microchip\xc16\v2.10\bin\xc16-gcc.exe"
+MP_CC="D:\Program Files\Microchip\xc16\v2.10\bin\xc16-gcc.exe"
 # MP_CPPC is not defined
 # MP_BC is not defined
-MP_AS="C:\Program Files\Microchip\xc16\v2.10\bin\xc16-as.exe"
-MP_LD="C:\Program Files\Microchip\xc16\v2.10\bin\xc16-ld.exe"
-MP_AR="C:\Program Files\Microchip\xc16\v2.10\bin\xc16-ar.exe"
-DEP_GEN=${MP_JAVA_PATH}java -jar "C:/Program Files/Microchip/MPLABX/v6.15/mplab_platform/platform/../mplab_ide/modules/../../bin/extractobjectdependencies.jar"
-MP_CC_DIR="C:\Program Files\Microchip\xc16\v2.10\bin"
+MP_AS="D:\Program Files\Microchip\xc16\v2.10\bin\xc16-as.exe"
+MP_LD="D:\Program Files\Microchip\xc16\v2.10\bin\xc16-ld.exe"
+MP_AR="D:\Program Files\Microchip\xc16\v2.10\bin\xc16-ar.exe"
+DEP_GEN=${MP_JAVA_PATH}java -jar "D:/Program Files/Microchip/MPLABX/v6.15/mplab_platform/platform/../mplab_ide/modules/../../bin/extractobjectdependencies.jar"
+MP_CC_DIR="D:\Program Files\Microchip\xc16\v2.10\bin"
 # MP_CPPC_DIR is not defined
 # MP_BC_DIR is not defined
-MP_AS_DIR="C:\Program Files\Microchip\xc16\v2.10\bin"
-MP_LD_DIR="C:\Program Files\Microchip\xc16\v2.10\bin"
-MP_AR_DIR="C:\Program Files\Microchip\xc16\v2.10\bin"
-DFP_DIR=C:/Program Files/Microchip/MPLABX/v6.15/packs/Microchip/PIC24F-GL-GU_DFP/1.5.121
+MP_AS_DIR="D:\Program Files\Microchip\xc16\v2.10\bin"
+MP_LD_DIR="D:\Program Files\Microchip\xc16\v2.10\bin"
+MP_AR_DIR="D:\Program Files\Microchip\xc16\v2.10\bin"
+DFP_DIR=D:/Program Files/Microchip/MPLABX/v6.15/packs/Microchip/PIC24F-GL-GU_DFP/1.5.121

+ 4 - 2
WZYX_UART_V1.1250726.X/WZYX_UART_V1.1250726.X/nbproject/configurations.xml

@@ -206,6 +206,7 @@
         <property key="COMPARATOR" value="true"/>
         <property key="CRC" value="true"/>
         <property key="DMA" value="true"/>
+        <property key="Freeze All Other Peripherals" value="true"/>
         <property key="I2C 1" value="true"/>
         <property key="I2C 2" value="true"/>
         <property key="I2C 3" value="true"/>
@@ -227,6 +228,7 @@
         <property key="SPI 2" value="true"/>
         <property key="SPI 3" value="true"/>
         <property key="SPI 4" value="true"/>
+        <property key="SecureSegment.SegmentProgramming" value="FullChipProgramming"/>
         <property key="TIMER 1" value="true"/>
         <property key="TIMER 2" value="true"/>
         <property key="TIMER 3" value="true"/>
@@ -281,8 +283,6 @@
         <property key="programoptions.usehighvoltageonmclr" value="false"/>
         <property key="programoptions.uselvpprogramming" value="false"/>
         <property key="voltagevalue" value="3.25"/>
-        <property key="冻结所有其他外设" value="true"/>
-        <property key="安全段。分部编程" value="FullChipProgramming"/>
       </PICkit3PlatformTool>
       <Simulator>
         <property key="codecoverage.enabled" value="Disable"/>
@@ -768,6 +768,7 @@
         <property key="COMPARATOR" value="true"/>
         <property key="CRC" value="true"/>
         <property key="DMA" value="true"/>
+        <property key="Freeze All Other Peripherals" value="true"/>
         <property key="I2C 1" value="true"/>
         <property key="I2C 2" value="true"/>
         <property key="I2C 3" value="true"/>
@@ -789,6 +790,7 @@
         <property key="SPI 2" value="true"/>
         <property key="SPI 3" value="true"/>
         <property key="SPI 4" value="true"/>
+        <property key="SecureSegment.SegmentProgramming" value="FullChipProgramming"/>
         <property key="TIMER 1" value="true"/>
         <property key="TIMER 2" value="true"/>
         <property key="TIMER 3" value="true"/>

+ 2 - 2
WZYX_UART_V1.1250726.X/WZYX_UART_V1.1250726.X/nbproject/private/configurations.xml

@@ -4,8 +4,8 @@
   <defaultConf>0</defaultConf>
   <confs>
     <conf name="default" type="2">
-      <platformToolSN>:=MPLABComm-USB-Microchip:=&lt;vid>04D8:=&lt;pid>900A:=&lt;rev>0002:=&lt;man>Microchip Technology Inc.:=&lt;prod>PICkit 3:=&lt;sn>DEFAULT_PK3 :=&lt;drv>x:=&lt;xpt>h:=end</platformToolSN>
-      <languageToolchainDir>C:\Program Files\Microchip\xc16\v2.10\bin</languageToolchainDir>
+      <platformToolSN>:=MPLABComm-USB-Microchip:=&lt;vid>04D8:=&lt;pid>900A:=&lt;rev>0002:=&lt;man>?:=&lt;prod>?:=&lt;sn>DEFAULT_PK3 :=&lt;drv>x:=&lt;xpt>b:=end</platformToolSN>
+      <languageToolchainDir>D:\Program Files\Microchip\xc16\v2.10\bin</languageToolchainDir>
       <mdbdebugger version="1">
         <placeholder1>place holder 1</placeholder1>
         <placeholder2>place holder 2</placeholder2>

+ 1 - 6
WZYX_UART_V1.1250726.X/WZYX_UART_V1.1250726.X/nbproject/private/private.xml

@@ -2,14 +2,9 @@
 <project-private xmlns="http://www.netbeans.org/ns/project-private/1">
     <editor-bookmarks xmlns="http://www.netbeans.org/ns/editor-bookmarks/2" lastBookmarkId="0"/>
     <open-files xmlns="http://www.netbeans.org/ns/projectui-open-files/2">
-        <group>
-            <file>file:/E:/30.%20BTD24018-WZYXPOCT/01.Code/current/UART.X%20(2)/WZYX_UART_V1.1250612.X/main.c</file>
-            <file>file:/E:/30.%20BTD24018-WZYXPOCT/01.Code/current/UART.X%20(2)/WZYX_UART_V1.1250612.X/Uart.c</file>
-            <file>file:/E:/30.%20BTD24018-WZYXPOCT/01.Code/current/UART.X%20(2)/WZYX_UART_V1.1250612.X/Pin.c</file>
-            <file>file:/E:/30.%20BTD24018-WZYXPOCT/01.Code/current/UART.X%20(2)/WZYX_UART_V1.1250612.X/Uart.h</file>
-        </group>
         <group name="source">
             <file>file:/F:/library/source/WZYX_UART_V1.1250726.X/WZYX_UART_V1.1250726.X/Pin.c</file>
         </group>
+        <group/>
     </open-files>
 </project-private>