Selaa lähdekoodia

文档处理

1.调整文件位置
2.移除未使用文件
avery 7 kuukautta sitten
vanhempi
commit
1083d220ef
74 muutettua tiedostoa jossa 4563 lisäystä ja 7627 poistoa
  1. 35 35
      KeilC51/Fortior.uvopt
  2. 35 35
      KeilC51/Fortior.uvproj
  3. 0 0
      System/FU68xx_5.h
  4. 0 0
      System/FU68xx_5_DMA.h
  5. 0 0
      System/FU68xx_5_MCU.h
  6. 0 0
      System/FU68xx_5_MDU.h
  7. 0 0
      System/FU68xx_5_Type.h
  8. 0 0
      System/STARTUP.A51
  9. 0 0
      User/Application/AddFunction.c
  10. 0 0
      User/Application/FocControl.c
  11. 0 0
      User/Application/FocControlFunction.c
  12. 0 0
      User/Application/Interrupt.c
  13. 63 63
      User/Application/Protect.c
  14. 28 28
      User/Application/intint.c
  15. 0 0
      User/Application/main.c
  16. 13 13
      User/Function/Communication.c
  17. 61 61
      User/Function/CurrentDecoupledControl.c
  18. 0 0
      User/Function/FiledWeaken.c
  19. 0 0
      User/Function/PFC.c
  20. 0 0
      User/Function/TorqueCompensation.c
  21. 0 0
      User/Function/VoltageCompensation.c
  22. 0 0
      User/Function/other.c
  23. 55 0
      User/Hardware/ADC.c
  24. 24 24
      User/Hardware/AMP.c
  25. 201 0
      User/Hardware/CMP.c
  26. 24 29
      User/Hardware/CRC.c
  27. 288 0
      User/Hardware/DMA.c
  28. 91 0
      User/Hardware/DRIVER.c
  29. 133 0
      User/Hardware/GPIO.c
  30. 80 0
      User/Hardware/I2C.c
  31. 17 18
      User/Hardware/PIInit.c
  32. 75 0
      User/Hardware/SPI.c
  33. 70 0
      User/Hardware/TIMER.c
  34. 461 0
      User/Hardware/UART.c
  35. 57 0
      User/Hardware/UART_4800.C
  36. 0 0
      User/User_Drive/Fan_monter_Ctr.c
  37. 5 5
      User/User_Drive/Fan_monter_Ctr.h
  38. 19 0
      User/User_Drive/Stepper_motors.c
  39. 29 0
      User/User_Drive/Stepper_motors.h
  40. 0 19
      User/User_Drive/Stepper_motors/Stepper_motors.c
  41. 0 29
      User/User_Drive/Stepper_motors/Stepper_motors.h
  42. 18 0
      User/User_Drive/Temp_compute.c
  43. 25 0
      User/User_Drive/Temp_compute.h
  44. 0 19
      User/User_Drive/Temp_compute/Temp_compute.c
  45. 0 25
      User/User_Drive/Temp_compute/Temp_compute.h
  46. 73 62
      User/User_Drive/User_Dri_main.c
  47. 5 18
      User/User_Drive/User_Dri_main.h
  48. 1955 0
      User/User_Drive/commution.c
  49. 155 0
      User/User_Drive/commution.h
  50. 0 1973
      User/User_Drive/commution/commution.c
  51. 0 155
      User/User_Drive/commution/commution.h
  52. 0 1168
      User/User_Drive/commution/commution1.c
  53. 138 0
      User/User_Drive/watch.c
  54. 35 0
      User/User_Drive/watch.h
  55. 0 132
      User/User_Drive/watch/watch.c
  56. 0 35
      User/User_Drive/watch/watch.h
  57. 295 536
      User/include/Customer.h
  58. 0 24
      User/source/Function/BEMFDetect.c
  59. 0 24
      User/source/Function/FOCTailDect.c
  60. 0 20
      User/source/Function/RSDDetect.c
  61. 0 28
      User/source/Function/VoltageCompensation.h
  62. 0 1212
      User/source/Function/commution.c
  63. 0 61
      User/source/Hardware/ADC.c
  64. 0 221
      User/source/Hardware/CMP.c
  65. 0 242
      User/source/Hardware/DMA.c
  66. 0 102
      User/source/Hardware/DRIVER.c
  67. 0 211
      User/source/Hardware/FLASH.c
  68. 0 153
      User/source/Hardware/GPIO.c
  69. 0 80
      User/source/Hardware/I2C.c
  70. 0 77
      User/source/Hardware/SPI.c
  71. 0 82
      User/source/Hardware/TIMER.c
  72. 0 457
      User/source/Hardware/UART.c
  73. 0 58
      User/source/Hardware/UART_4800.C
  74. 0 93
      User/source/UART_Debug.c

+ 35 - 35
KeilC51/FOC_Fortior.uvopt → KeilC51/Fortior.uvopt

@@ -458,7 +458,7 @@
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
       <bDave2>0</bDave2>
-      <PathWithFileName>..\User\source\Application\AddFunction.c</PathWithFileName>
+      <PathWithFileName>..\User\Application\AddFunction.c</PathWithFileName>
       <FilenameWithoutPath>AddFunction.c</FilenameWithoutPath>
       <RteFlg>0</RteFlg>
       <bShared>0</bShared>
@@ -470,7 +470,7 @@
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
       <bDave2>0</bDave2>
-      <PathWithFileName>..\User\source\Application\Interrupt.c</PathWithFileName>
+      <PathWithFileName>..\User\Application\Interrupt.c</PathWithFileName>
       <FilenameWithoutPath>Interrupt.c</FilenameWithoutPath>
       <RteFlg>0</RteFlg>
       <bShared>0</bShared>
@@ -482,7 +482,7 @@
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
       <bDave2>0</bDave2>
-      <PathWithFileName>..\User\source\Application\main.c</PathWithFileName>
+      <PathWithFileName>..\User\Application\main.c</PathWithFileName>
       <FilenameWithoutPath>main.c</FilenameWithoutPath>
       <RteFlg>0</RteFlg>
       <bShared>0</bShared>
@@ -494,7 +494,7 @@
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
       <bDave2>0</bDave2>
-      <PathWithFileName>..\User\source\Application\intint.c</PathWithFileName>
+      <PathWithFileName>..\User\Application\intint.c</PathWithFileName>
       <FilenameWithoutPath>intint.c</FilenameWithoutPath>
       <RteFlg>0</RteFlg>
       <bShared>0</bShared>
@@ -506,7 +506,7 @@
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
       <bDave2>0</bDave2>
-      <PathWithFileName>..\User\source\Application\Protect.c</PathWithFileName>
+      <PathWithFileName>..\User\Application\Protect.c</PathWithFileName>
       <FilenameWithoutPath>Protect.c</FilenameWithoutPath>
       <RteFlg>0</RteFlg>
       <bShared>0</bShared>
@@ -518,7 +518,7 @@
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
       <bDave2>0</bDave2>
-      <PathWithFileName>..\User\source\Application\FocControl.c</PathWithFileName>
+      <PathWithFileName>..\User\Application\FocControl.c</PathWithFileName>
       <FilenameWithoutPath>FocControl.c</FilenameWithoutPath>
       <RteFlg>0</RteFlg>
       <bShared>0</bShared>
@@ -527,10 +527,10 @@
       <GroupNumber>1</GroupNumber>
       <FileNumber>7</FileNumber>
       <FileType>1</FileType>
-      <tvExp>1</tvExp>
+      <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
       <bDave2>0</bDave2>
-      <PathWithFileName>..\User\source\Application\FocControlFunction.c</PathWithFileName>
+      <PathWithFileName>..\User\Application\FocControlFunction.c</PathWithFileName>
       <FilenameWithoutPath>FocControlFunction.c</FilenameWithoutPath>
       <RteFlg>0</RteFlg>
       <bShared>0</bShared>
@@ -622,7 +622,7 @@
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
       <bDave2>0</bDave2>
-      <PathWithFileName>..\User\source\Function\Communication.c</PathWithFileName>
+      <PathWithFileName>..\User\Function\Communication.c</PathWithFileName>
       <FilenameWithoutPath>Communication.c</FilenameWithoutPath>
       <RteFlg>0</RteFlg>
       <bShared>0</bShared>
@@ -634,7 +634,7 @@
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
       <bDave2>0</bDave2>
-      <PathWithFileName>..\User\source\Function\FiledWeaken.c</PathWithFileName>
+      <PathWithFileName>..\User\Function\FiledWeaken.c</PathWithFileName>
       <FilenameWithoutPath>FiledWeaken.c</FilenameWithoutPath>
       <RteFlg>0</RteFlg>
       <bShared>0</bShared>
@@ -646,7 +646,7 @@
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
       <bDave2>0</bDave2>
-      <PathWithFileName>..\User\source\Function\PFC.c</PathWithFileName>
+      <PathWithFileName>..\User\Function\PFC.c</PathWithFileName>
       <FilenameWithoutPath>PFC.c</FilenameWithoutPath>
       <RteFlg>0</RteFlg>
       <bShared>0</bShared>
@@ -658,7 +658,7 @@
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
       <bDave2>0</bDave2>
-      <PathWithFileName>..\User\source\Function\TorqueCompensation.c</PathWithFileName>
+      <PathWithFileName>..\User\Function\TorqueCompensation.c</PathWithFileName>
       <FilenameWithoutPath>TorqueCompensation.c</FilenameWithoutPath>
       <RteFlg>0</RteFlg>
       <bShared>0</bShared>
@@ -670,7 +670,7 @@
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
       <bDave2>0</bDave2>
-      <PathWithFileName>..\User\source\Function\VoltageCompensation.c</PathWithFileName>
+      <PathWithFileName>..\User\Function\VoltageCompensation.c</PathWithFileName>
       <FilenameWithoutPath>VoltageCompensation.c</FilenameWithoutPath>
       <RteFlg>0</RteFlg>
       <bShared>0</bShared>
@@ -682,7 +682,7 @@
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
       <bDave2>0</bDave2>
-      <PathWithFileName>..\User\source\Function\other.c</PathWithFileName>
+      <PathWithFileName>..\User\Function\other.c</PathWithFileName>
       <FilenameWithoutPath>other.c</FilenameWithoutPath>
       <RteFlg>0</RteFlg>
       <bShared>0</bShared>
@@ -726,7 +726,7 @@
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
       <bDave2>0</bDave2>
-      <PathWithFileName>..\User\User_Drive\commution\commution.c</PathWithFileName>
+      <PathWithFileName>..\User\User_Drive\commution.c</PathWithFileName>
       <FilenameWithoutPath>commution.c</FilenameWithoutPath>
       <RteFlg>0</RteFlg>
       <bShared>0</bShared>
@@ -738,7 +738,7 @@
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
       <bDave2>0</bDave2>
-      <PathWithFileName>..\User\User_Drive\Temp_compute\Temp_compute.c</PathWithFileName>
+      <PathWithFileName>..\User\User_Drive\Temp_compute.c</PathWithFileName>
       <FilenameWithoutPath>Temp_compute.c</FilenameWithoutPath>
       <RteFlg>0</RteFlg>
       <bShared>0</bShared>
@@ -750,7 +750,7 @@
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
       <bDave2>0</bDave2>
-      <PathWithFileName>..\User\User_Drive\Fan_monter_Ctr\Fan_monter_Ctr.c</PathWithFileName>
+      <PathWithFileName>..\User\User_Drive\Fan_monter_Ctr.c</PathWithFileName>
       <FilenameWithoutPath>Fan_monter_Ctr.c</FilenameWithoutPath>
       <RteFlg>0</RteFlg>
       <bShared>0</bShared>
@@ -762,7 +762,7 @@
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
       <bDave2>0</bDave2>
-      <PathWithFileName>..\User\User_Drive\Stepper_motors\Stepper_motors.c</PathWithFileName>
+      <PathWithFileName>..\User\User_Drive\Stepper_motors.c</PathWithFileName>
       <FilenameWithoutPath>Stepper_motors.c</FilenameWithoutPath>
       <RteFlg>0</RteFlg>
       <bShared>0</bShared>
@@ -774,7 +774,7 @@
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
       <bDave2>0</bDave2>
-      <PathWithFileName>..\User\User_Drive\watch\watch.c</PathWithFileName>
+      <PathWithFileName>..\User\User_Drive\watch.c</PathWithFileName>
       <FilenameWithoutPath>watch.c</FilenameWithoutPath>
       <RteFlg>0</RteFlg>
       <bShared>0</bShared>
@@ -794,7 +794,7 @@
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
       <bDave2>0</bDave2>
-      <PathWithFileName>..\User\source\Hardware\ADC.c</PathWithFileName>
+      <PathWithFileName>..\User\Hardware\ADC.c</PathWithFileName>
       <FilenameWithoutPath>ADC.c</FilenameWithoutPath>
       <RteFlg>0</RteFlg>
       <bShared>0</bShared>
@@ -806,7 +806,7 @@
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
       <bDave2>0</bDave2>
-      <PathWithFileName>..\User\source\Hardware\AMP.c</PathWithFileName>
+      <PathWithFileName>..\User\Hardware\AMP.c</PathWithFileName>
       <FilenameWithoutPath>AMP.c</FilenameWithoutPath>
       <RteFlg>0</RteFlg>
       <bShared>0</bShared>
@@ -818,7 +818,7 @@
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
       <bDave2>0</bDave2>
-      <PathWithFileName>..\User\source\Hardware\CMP.c</PathWithFileName>
+      <PathWithFileName>..\User\Hardware\CMP.c</PathWithFileName>
       <FilenameWithoutPath>CMP.c</FilenameWithoutPath>
       <RteFlg>0</RteFlg>
       <bShared>0</bShared>
@@ -830,7 +830,7 @@
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
       <bDave2>0</bDave2>
-      <PathWithFileName>..\User\source\Hardware\CRC.c</PathWithFileName>
+      <PathWithFileName>..\User\Hardware\CRC.c</PathWithFileName>
       <FilenameWithoutPath>CRC.c</FilenameWithoutPath>
       <RteFlg>0</RteFlg>
       <bShared>0</bShared>
@@ -842,7 +842,7 @@
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
       <bDave2>0</bDave2>
-      <PathWithFileName>..\User\source\Hardware\DMA.c</PathWithFileName>
+      <PathWithFileName>..\User\Hardware\DMA.c</PathWithFileName>
       <FilenameWithoutPath>DMA.c</FilenameWithoutPath>
       <RteFlg>0</RteFlg>
       <bShared>0</bShared>
@@ -854,7 +854,7 @@
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
       <bDave2>0</bDave2>
-      <PathWithFileName>..\User\source\Hardware\DRIVER.c</PathWithFileName>
+      <PathWithFileName>..\User\Hardware\DRIVER.c</PathWithFileName>
       <FilenameWithoutPath>DRIVER.c</FilenameWithoutPath>
       <RteFlg>0</RteFlg>
       <bShared>0</bShared>
@@ -866,7 +866,7 @@
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
       <bDave2>0</bDave2>
-      <PathWithFileName>..\User\source\Hardware\GPIO.c</PathWithFileName>
+      <PathWithFileName>..\User\Hardware\GPIO.c</PathWithFileName>
       <FilenameWithoutPath>GPIO.c</FilenameWithoutPath>
       <RteFlg>0</RteFlg>
       <bShared>0</bShared>
@@ -878,7 +878,7 @@
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
       <bDave2>0</bDave2>
-      <PathWithFileName>..\User\source\Hardware\I2C.c</PathWithFileName>
+      <PathWithFileName>..\User\Hardware\I2C.c</PathWithFileName>
       <FilenameWithoutPath>I2C.c</FilenameWithoutPath>
       <RteFlg>0</RteFlg>
       <bShared>0</bShared>
@@ -890,7 +890,7 @@
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
       <bDave2>0</bDave2>
-      <PathWithFileName>..\User\source\Hardware\PIInit.c</PathWithFileName>
+      <PathWithFileName>..\User\Hardware\PIInit.c</PathWithFileName>
       <FilenameWithoutPath>PIInit.c</FilenameWithoutPath>
       <RteFlg>0</RteFlg>
       <bShared>0</bShared>
@@ -902,7 +902,7 @@
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
       <bDave2>0</bDave2>
-      <PathWithFileName>..\User\source\Hardware\SPI.c</PathWithFileName>
+      <PathWithFileName>..\User\Hardware\SPI.c</PathWithFileName>
       <FilenameWithoutPath>SPI.c</FilenameWithoutPath>
       <RteFlg>0</RteFlg>
       <bShared>0</bShared>
@@ -914,7 +914,7 @@
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
       <bDave2>0</bDave2>
-      <PathWithFileName>..\User\source\Hardware\TIMER.c</PathWithFileName>
+      <PathWithFileName>..\User\Hardware\TIMER.c</PathWithFileName>
       <FilenameWithoutPath>TIMER.c</FilenameWithoutPath>
       <RteFlg>0</RteFlg>
       <bShared>0</bShared>
@@ -926,7 +926,7 @@
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
       <bDave2>0</bDave2>
-      <PathWithFileName>..\User\source\Hardware\UART.c</PathWithFileName>
+      <PathWithFileName>..\User\Hardware\UART.c</PathWithFileName>
       <FilenameWithoutPath>UART.c</FilenameWithoutPath>
       <RteFlg>0</RteFlg>
       <bShared>0</bShared>
@@ -938,7 +938,7 @@
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
       <bDave2>0</bDave2>
-      <PathWithFileName>..\User\source\Hardware\UART_4800.C</PathWithFileName>
+      <PathWithFileName>..\User\Hardware\UART_4800.C</PathWithFileName>
       <FilenameWithoutPath>UART_4800.C</FilenameWithoutPath>
       <RteFlg>0</RteFlg>
       <bShared>0</bShared>
@@ -946,7 +946,7 @@
   </Group>
 
   <Group>
-    <GroupName>FU68XX_Hardware_Driver</GroupName>
+    <GroupName>System</GroupName>
     <tvExp>1</tvExp>
     <tvExpOptDlg>0</tvExpOptDlg>
     <cbSel>0</cbSel>
@@ -958,8 +958,8 @@
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
       <bDave2>0</bDave2>
-      <PathWithFileName>..\FU68xx_Hardware_Driver\Source\STARTUP_FU6804.A51</PathWithFileName>
-      <FilenameWithoutPath>STARTUP_FU6804.A51</FilenameWithoutPath>
+      <PathWithFileName>..\System\STARTUP.A51</PathWithFileName>
+      <FilenameWithoutPath>STARTUP.A51</FilenameWithoutPath>
       <RteFlg>0</RteFlg>
       <bShared>0</bShared>
     </File>

+ 35 - 35
KeilC51/FOC_Fortior.uvproj → KeilC51/Fortior.uvproj

@@ -324,7 +324,7 @@
               <MiscControls></MiscControls>
               <Define></Define>
               <Undefine></Undefine>
-              <IncludePath>..\User\include;..\FU68xx_Hardware_Driver\Include;..\User\User_Drive</IncludePath>
+              <IncludePath>..\User\include;..\System;..\User\User_Drive</IncludePath>
             </VariousControls>
           </C51>
           <Ax51>
@@ -379,37 +379,37 @@
             <File>
               <FileName>AddFunction.c</FileName>
               <FileType>1</FileType>
-              <FilePath>..\User\source\Application\AddFunction.c</FilePath>
+              <FilePath>..\User\Application\AddFunction.c</FilePath>
             </File>
             <File>
               <FileName>Interrupt.c</FileName>
               <FileType>1</FileType>
-              <FilePath>..\User\source\Application\Interrupt.c</FilePath>
+              <FilePath>..\User\Application\Interrupt.c</FilePath>
             </File>
             <File>
               <FileName>main.c</FileName>
               <FileType>1</FileType>
-              <FilePath>..\User\source\Application\main.c</FilePath>
+              <FilePath>..\User\Application\main.c</FilePath>
             </File>
             <File>
               <FileName>intint.c</FileName>
               <FileType>1</FileType>
-              <FilePath>..\User\source\Application\intint.c</FilePath>
+              <FilePath>..\User\Application\intint.c</FilePath>
             </File>
             <File>
               <FileName>Protect.c</FileName>
               <FileType>1</FileType>
-              <FilePath>..\User\source\Application\Protect.c</FilePath>
+              <FilePath>..\User\Application\Protect.c</FilePath>
             </File>
             <File>
               <FileName>FocControl.c</FileName>
               <FileType>1</FileType>
-              <FilePath>..\User\source\Application\FocControl.c</FilePath>
+              <FilePath>..\User\Application\FocControl.c</FilePath>
             </File>
             <File>
               <FileName>FocControlFunction.c</FileName>
               <FileType>1</FileType>
-              <FilePath>..\User\source\Application\FocControlFunction.c</FilePath>
+              <FilePath>..\User\Application\FocControlFunction.c</FilePath>
             </File>
             <File>
               <FileName>Customer.h</FileName>
@@ -449,32 +449,32 @@
             <File>
               <FileName>Communication.c</FileName>
               <FileType>1</FileType>
-              <FilePath>..\User\source\Function\Communication.c</FilePath>
+              <FilePath>..\User\Function\Communication.c</FilePath>
             </File>
             <File>
               <FileName>FiledWeaken.c</FileName>
               <FileType>1</FileType>
-              <FilePath>..\User\source\Function\FiledWeaken.c</FilePath>
+              <FilePath>..\User\Function\FiledWeaken.c</FilePath>
             </File>
             <File>
               <FileName>PFC.c</FileName>
               <FileType>1</FileType>
-              <FilePath>..\User\source\Function\PFC.c</FilePath>
+              <FilePath>..\User\Function\PFC.c</FilePath>
             </File>
             <File>
               <FileName>TorqueCompensation.c</FileName>
               <FileType>1</FileType>
-              <FilePath>..\User\source\Function\TorqueCompensation.c</FilePath>
+              <FilePath>..\User\Function\TorqueCompensation.c</FilePath>
             </File>
             <File>
               <FileName>VoltageCompensation.c</FileName>
               <FileType>1</FileType>
-              <FilePath>..\User\source\Function\VoltageCompensation.c</FilePath>
+              <FilePath>..\User\Function\VoltageCompensation.c</FilePath>
             </File>
             <File>
               <FileName>other.c</FileName>
               <FileType>1</FileType>
-              <FilePath>..\User\source\Function\other.c</FilePath>
+              <FilePath>..\User\Function\other.c</FilePath>
             </File>
           </Files>
         </Group>
@@ -494,27 +494,27 @@
             <File>
               <FileName>commution.c</FileName>
               <FileType>1</FileType>
-              <FilePath>..\User\User_Drive\commution\commution.c</FilePath>
+              <FilePath>..\User\User_Drive\commution.c</FilePath>
             </File>
             <File>
               <FileName>Temp_compute.c</FileName>
               <FileType>1</FileType>
-              <FilePath>..\User\User_Drive\Temp_compute\Temp_compute.c</FilePath>
+              <FilePath>..\User\User_Drive\Temp_compute.c</FilePath>
             </File>
             <File>
               <FileName>Fan_monter_Ctr.c</FileName>
               <FileType>1</FileType>
-              <FilePath>..\User\User_Drive\Fan_monter_Ctr\Fan_monter_Ctr.c</FilePath>
+              <FilePath>..\User\User_Drive\Fan_monter_Ctr.c</FilePath>
             </File>
             <File>
               <FileName>Stepper_motors.c</FileName>
               <FileType>1</FileType>
-              <FilePath>..\User\User_Drive\Stepper_motors\Stepper_motors.c</FilePath>
+              <FilePath>..\User\User_Drive\Stepper_motors.c</FilePath>
             </File>
             <File>
               <FileName>watch.c</FileName>
               <FileType>1</FileType>
-              <FilePath>..\User\User_Drive\watch\watch.c</FilePath>
+              <FilePath>..\User\User_Drive\watch.c</FilePath>
             </File>
           </Files>
         </Group>
@@ -524,77 +524,77 @@
             <File>
               <FileName>ADC.c</FileName>
               <FileType>1</FileType>
-              <FilePath>..\User\source\Hardware\ADC.c</FilePath>
+              <FilePath>..\User\Hardware\ADC.c</FilePath>
             </File>
             <File>
               <FileName>AMP.c</FileName>
               <FileType>1</FileType>
-              <FilePath>..\User\source\Hardware\AMP.c</FilePath>
+              <FilePath>..\User\Hardware\AMP.c</FilePath>
             </File>
             <File>
               <FileName>CMP.c</FileName>
               <FileType>1</FileType>
-              <FilePath>..\User\source\Hardware\CMP.c</FilePath>
+              <FilePath>..\User\Hardware\CMP.c</FilePath>
             </File>
             <File>
               <FileName>CRC.c</FileName>
               <FileType>1</FileType>
-              <FilePath>..\User\source\Hardware\CRC.c</FilePath>
+              <FilePath>..\User\Hardware\CRC.c</FilePath>
             </File>
             <File>
               <FileName>DMA.c</FileName>
               <FileType>1</FileType>
-              <FilePath>..\User\source\Hardware\DMA.c</FilePath>
+              <FilePath>..\User\Hardware\DMA.c</FilePath>
             </File>
             <File>
               <FileName>DRIVER.c</FileName>
               <FileType>1</FileType>
-              <FilePath>..\User\source\Hardware\DRIVER.c</FilePath>
+              <FilePath>..\User\Hardware\DRIVER.c</FilePath>
             </File>
             <File>
               <FileName>GPIO.c</FileName>
               <FileType>1</FileType>
-              <FilePath>..\User\source\Hardware\GPIO.c</FilePath>
+              <FilePath>..\User\Hardware\GPIO.c</FilePath>
             </File>
             <File>
               <FileName>I2C.c</FileName>
               <FileType>1</FileType>
-              <FilePath>..\User\source\Hardware\I2C.c</FilePath>
+              <FilePath>..\User\Hardware\I2C.c</FilePath>
             </File>
             <File>
               <FileName>PIInit.c</FileName>
               <FileType>1</FileType>
-              <FilePath>..\User\source\Hardware\PIInit.c</FilePath>
+              <FilePath>..\User\Hardware\PIInit.c</FilePath>
             </File>
             <File>
               <FileName>SPI.c</FileName>
               <FileType>1</FileType>
-              <FilePath>..\User\source\Hardware\SPI.c</FilePath>
+              <FilePath>..\User\Hardware\SPI.c</FilePath>
             </File>
             <File>
               <FileName>TIMER.c</FileName>
               <FileType>1</FileType>
-              <FilePath>..\User\source\Hardware\TIMER.c</FilePath>
+              <FilePath>..\User\Hardware\TIMER.c</FilePath>
             </File>
             <File>
               <FileName>UART.c</FileName>
               <FileType>1</FileType>
-              <FilePath>..\User\source\Hardware\UART.c</FilePath>
+              <FilePath>..\User\Hardware\UART.c</FilePath>
             </File>
             <File>
               <FileName>UART_4800.C</FileName>
               <FileType>1</FileType>
-              <FilePath>..\User\source\Hardware\UART_4800.C</FilePath>
+              <FilePath>..\User\Hardware\UART_4800.C</FilePath>
             </File>
           </Files>
         </Group>
         <Group>
-          <GroupName>FU68XX_Hardware_Driver</GroupName>
+          <GroupName>System</GroupName>
           <Files>
             <File>
-              <FileName>STARTUP_FU6804.A51</FileName>
+              <FileName>STARTUP.A51</FileName>
               <FileType>2</FileType>
-              <FilePath>..\FU68xx_Hardware_Driver\Source\STARTUP_FU6804.A51</FilePath>
+              <FilePath>..\System\STARTUP.A51</FilePath>
             </File>
           </Files>
         </Group>

+ 0 - 0
FU68xx_Hardware_Driver/Include/FU68xx_5.h → System/FU68xx_5.h


+ 0 - 0
FU68xx_Hardware_Driver/Include/FU68xx_5_DMA.h → System/FU68xx_5_DMA.h


+ 0 - 0
FU68xx_Hardware_Driver/Include/FU68xx_5_MCU.h → System/FU68xx_5_MCU.h


+ 0 - 0
FU68xx_Hardware_Driver/Include/FU68xx_5_MDU.h → System/FU68xx_5_MDU.h


+ 0 - 0
FU68xx_Hardware_Driver/Include/FU68xx_5_Type.h → System/FU68xx_5_Type.h


+ 0 - 0
FU68xx_Hardware_Driver/Source/STARTUP_FU6804.A51 → System/STARTUP.A51


+ 0 - 0
User/source/Application/AddFunction.c → User/Application/AddFunction.c


+ 0 - 0
User/source/Application/FocControl.c → User/Application/FocControl.c


+ 0 - 0
User/source/Application/FocControlFunction.c → User/Application/FocControlFunction.c


+ 0 - 0
User/source/Application/Interrupt.c → User/Application/Interrupt.c


+ 63 - 63
User/source/Application/Protect.c → User/Application/Protect.c

@@ -9,22 +9,22 @@ ProtectVarible     xdata   mcProtectTime;
 
 /*****************************************************************************
     Function:         void   Fault_OverVoltage(mcFaultVarible *h_Fault)
-    Description:  过压欠压保护函数:程序每5ms判断一次,母线电压大于过压保护值时,计数器加一,计数器值超过20次,判断为过压保护,关闭输出;反之,计数器慢慢减
-                 同理,欠压保护。
-                   电机过欠压保护状态下,母线电压恢复到欠压恢复值以上,过压恢复值以下时,计数器加一,超过200次后,恢复。根据档位信息来决定恢复到哪个状态。
+    Description:  杩囧帇娆犲帇淇濇姢鍑芥暟锛氱▼搴忔瘡5ms鍒ゆ柇涓€娆★紝姣嶇嚎鐢靛帇澶т簬杩囧帇淇濇姢鍊兼椂锛岃�鏁板櫒鍔犱竴锛岃�鏁板櫒鍊艰秴杩�20娆★紝鍒ゆ柇涓鸿繃鍘嬩繚鎶わ紝鍏抽棴杈撳嚭;鍙嶄箣锛岃�鏁板櫒鎱㈡參鍑�
+                 鍚岀悊锛屾瑺鍘嬩繚鎶ゃ€�
+                   鐢垫満杩囨瑺鍘嬩繚鎶ょ姸鎬佷笅锛屾瘝绾跨數鍘嬫仮澶嶅埌娆犲帇鎭㈠�鍊间互涓婏紝杩囧帇鎭㈠�鍊间互涓嬫椂锛岃�鏁板櫒鍔犱竴锛岃秴杩�200娆″悗锛屾仮澶嶃€傛牴鎹�。浣嶄俊鎭�潵鍐冲畾鎭㈠�鍒板摢涓�姸鎬併€�
     Parameter:        mcFaultVarible *h_Fault
     Return:           no
  *****************************************************************************/
 void Fault_OverUnderVoltage(void)
 {
-    if ((mcFaultSource == FaultNoSource) && (mcState == mcRun)) //程序无其他保护下
+    if ((mcFaultSource == FaultNoSource) && (mcState == mcRun)) //绋嬪簭鏃犲叾浠栦繚鎶や笅
     {
-        //过压保护
-        if (mcFocCtrl.mcDcbusFlt > OVER_PROTECT_VALUE)   //母线电压大于过压保护值时,计数,超过20次,判断为过压保护,关闭输出;反之,计数器慢慢减
+        //杩囧帇淇濇姢
+        if (mcFocCtrl.mcDcbusFlt > OVER_PROTECT_VALUE)   //姣嶇嚎鐢靛帇澶т簬杩囧帇淇濇姢鍊兼椂锛岃�鏁帮紝瓒呰繃20娆★紝鍒ゆ柇涓鸿繃鍘嬩繚鎶わ紝鍏抽棴杈撳嚭;鍙嶄箣锛岃�鏁板櫒鎱㈡參鍑�
         {
             mcFaultDect.OverVoltDetecCnt++;
             
-            if (mcFaultDect.OverVoltDetecCnt > 20) //检测100ms
+            if (mcFaultDect.OverVoltDetecCnt > 20) //妫€娴�100ms
             {
                 mcFaultDect.OverVoltDetecCnt = 0;
                 mcFaultSource             = FaultOverVoltage;
@@ -37,12 +37,12 @@ void Fault_OverUnderVoltage(void)
             { mcFaultDect.OverVoltDetecCnt--; }
         }
         
-        //欠压保护
+        //娆犲帇淇濇姢
         if (mcFocCtrl.mcDcbusFlt < UNDER_PROTECT_VALUE)
         {
             mcFaultDect.UnderVoltDetecCnt++;
             
-            if (mcFaultDect.UnderVoltDetecCnt > 20) //检测100ms
+            if (mcFaultDect.UnderVoltDetecCnt > 20) //妫€娴�100ms
             {
                 mcFaultDect.UnderVoltDetecCnt = 0;
                 mcFaultSource              = FaultUnderVoltage;
@@ -56,14 +56,14 @@ void Fault_OverUnderVoltage(void)
         }
     }
     
-    /*******过压欠压保护恢复*********/
+    /*******杩囧帇娆犲帇淇濇姢鎭㈠�*********/
     if ((mcState == mcFault) && ((mcFaultSource == FaultUnderVoltage) || (mcFaultSource == FaultOverVoltage)))
     {
         if ((mcFocCtrl.mcDcbusFlt < OVER_RECOVER_VALUE) && (mcFocCtrl.mcDcbusFlt > UNDER_RECOVER_VALUE))
         {
             mcFaultDect.VoltRecoverCnt++;
             
-            if (mcFaultDect.VoltRecoverCnt > 2000) //连续检测1s,若正常则恢复
+            if (mcFaultDect.VoltRecoverCnt > 2000) //杩炵画妫€娴�1s锛岃嫢姝e父鍒欐仮澶�
             {
                 mcFaultSource           = FaultNoSource;
                 mcFaultDect.VoltRecoverCnt = 0;
@@ -78,8 +78,8 @@ void Fault_OverUnderVoltage(void)
 
 /*****************************************************************************
     Function:     void Fault_Overcurrent(CurrentVarible *h_Cur)
-    Description:  电机运行或者启动时,当三相中某一相最大值大于OverCurrentValue,则OverCurCnt加1。
-                 连续累加3次,判断为软件过流保护。执行时间约30.4us。
+    Description:  鐢垫満杩愯�鎴栬€呭惎鍔ㄦ椂锛屽綋涓夌浉涓�煇涓€鐩告渶澶у€煎ぇ浜嶰verCurrentValue锛屽垯OverCurCnt鍔�1銆�
+                 杩炵画绱�姞3娆★紝鍒ゆ柇涓鸿蒋浠惰繃娴佷繚鎶ゃ€傛墽琛屾椂闂寸害30.4us銆�
     Parameter:    mcFaultVarible *h_Fault
     Return:       no
  *****************************************************************************/
@@ -91,11 +91,11 @@ void Fault_Overcurrent(void)
     {
         if (mcState == mcStart || mcState == mcAlign || mcState == mcRun || mcState == mcStop)
         {
-            //            SqrtI_alpbet(FOC__IA,FOC__IBET,IIs);//平方和后开根号
-            SqrtI_alpbet(FOC__ID, FOC__IQ, IIs); //平方和后开根号
+            //            SqrtI_alpbet(FOC__IA,FOC__IBET,IIs);//骞虫柟鍜屽悗寮€鏍瑰彿
+            SqrtI_alpbet(FOC__ID, FOC__IQ, IIs); //骞虫柟鍜屽悗寮€鏍瑰彿
             mcCurVarible.Max_is = IIs;
             
-            if (mcCurVarible.Max_is >= SW_OC_CurrentVal) // 过流保护
+            if (mcCurVarible.Max_is >= SW_OC_CurrentVal) // 杩囨祦淇濇姢
             {
                 if (mcCurVarible.time < SW_OC_DectTime)
                 {
@@ -117,7 +117,7 @@ void Fault_Overcurrent(void)
 }
 /*****************************************************************************
     Function:         void   Fault_OverCurrentRecover(mcFaultVarible *h_Fault)
-    Description:  软硬件过流保护恢复
+    Description:  杞�‖浠惰繃娴佷繚鎶ゆ仮澶�
     Parameter:        mcFaultVarible *h_Fault
     Return:           no
  *****************************************************************************/
@@ -140,18 +140,18 @@ void Fault_OverCurrentRecover(void)
 
 /*****************************************************************************
     Function:         void   Fault_Start(mcFaultVarible *h_Fault)
-    Description:  启动保护函数,电机运行状态下,电机在前5s估算转速达到堵转保护值或者5s后反电动势值太低(此方法未验证)
-                  或4s内还在CtrlMode状态,即速度低于MOTOR_LOOP_RPM,程序判断为启动失败,电机停机。
-                  当程序判断为启动失败后,若重启次数少于或等于5次,程序立即进入校准状态,等待重启。
+    Description:  鍚�姩淇濇姢鍑芥暟锛岀數鏈鸿繍琛岀姸鎬佷笅锛岀數鏈哄湪鍓�5s浼扮畻杞�€熻揪鍒板牭杞�繚鎶ゅ€兼垨鑰�5s鍚庡弽鐢靛姩鍔垮€煎お浣�(姝ゆ柟娉曟湭楠岃瘉)
+                  鎴�4s鍐呰繕鍦–trlMode鐘舵€侊紝鍗抽€熷害浣庝簬MOTOR_LOOP_RPM锛岀▼搴忓垽鏂�负鍚�姩澶辫触锛岀數鏈哄仠鏈恒€�
+                  褰撶▼搴忓垽鏂�负鍚�姩澶辫触鍚庯紝鑻ラ噸鍚��鏁板皯浜庢垨绛変簬5娆★紝绋嬪簭绔嬪嵆杩涘叆鏍″噯鐘舵€侊紝绛夊緟閲嶅惎銆�
     Parameter:        mcFaultVarible *h_Fault
     Return:           no
  *****************************************************************************/
 void Fault_Start(void)
 {
-    /*******启动保护恢复*********/
+    /*******鍚�姩淇濇姢鎭㈠�*********/
     if (mcState == mcRun)
     {
-        //方法一,5s内速度大于最大速度,同时反电动势值低于一定值
+        //鏂规硶涓€锛�5s鍐呴€熷害澶т簬鏈€澶ч€熷害锛屽悓鏃跺弽鐢靛姩鍔垮€间綆浜庝竴瀹氬€�
         if (mcFaultDect.StartSpeedCnt <= 1000)
         {
             mcFaultDect.StartSpeedCnt++;
@@ -165,8 +165,8 @@ void Fault_Start(void)
             }
         }
         
-        //方法二
-        if (mcFaultDect.StartEsCnt <= 1200) //前6s,等待1.5s后,开始判断ES,如果超过一定次数,则失败
+        //鏂规硶浜�
+        if (mcFaultDect.StartEsCnt <= 1200) //鍓�6s锛岀瓑寰�1.5s鍚庯紝寮€濮嬪垽鏂璄S锛屽�鏋滆秴杩囦竴瀹氭�鏁帮紝鍒欏け璐�
         {
             mcFaultDect.StartEsCnt++;
             mcFaultDect.StartDelay++;
@@ -202,7 +202,7 @@ void Fault_Start(void)
             mcFaultDect.StartESCount = 0;
         }
         
-        //方法三,长时间在CtrlMode=0状态
+        //鏂规硶涓夛紝闀挎椂闂村湪CtrlMode=0鐘舵€�
         if (mcFocCtrl.CtrlMode == 0)        //
         {
             mcFaultDect.StartFocmode++;
@@ -225,17 +225,17 @@ void Fault_Start(void)
 }
 /*****************************************************************************
     Function:         void   Fault_Stall(mcFaultVarible *h_Fault)
-    Description:  堵转保护函数,有三种保护方式,
-                  第一种,
-                  第二种,电机运行状态下,延迟4s判断,估算速度绝对值超过堵转速度连续5次;
-                  第三种,电机运行状态下,当U,V两相电流绝对值大于堵转电流保护值连续6次;
-                  当以上三种的任何一种保护触发时,电机停机,程序判断为堵转保护;
-                  当堵转保护状态下,U相采集值低于堵转恢复值时,若堵转次数小于或等于堵转重启次数8次,
-                  程序延迟mcStallRecover重新启动,进行校准状态。
+    Description:  鍫佃浆淇濇姢鍑芥暟锛屾湁涓夌�淇濇姢鏂瑰紡锛�
+                  绗�竴绉嶏紝
+                  绗�簩绉嶏紝鐢垫満杩愯�鐘舵€佷笅锛屽欢杩�4s鍒ゆ柇锛屼及绠楅€熷害缁濆�鍊艰秴杩囧牭杞�€熷害杩炵画5娆★紱
+                  绗�笁绉嶏紝鐢垫満杩愯�鐘舵€佷笅锛屽綋U,V涓ょ浉鐢垫祦缁濆�鍊煎ぇ浜庡牭杞�數娴佷繚鎶ゅ€艰繛缁�6娆★紱
+                  褰撲互涓婁笁绉嶇殑浠讳綍涓€绉嶄繚鎶よЕ鍙戞椂锛岀數鏈哄仠鏈猴紝绋嬪簭鍒ゆ柇涓哄牭杞�繚鎶わ紱
+                  褰撳牭杞�繚鎶ょ姸鎬佷笅锛孶鐩搁噰闆嗗€间綆浜庡牭杞�仮澶嶅€兼椂锛岃嫢鍫佃浆娆℃暟灏忎簬鎴栫瓑浜庡牭杞�噸鍚��鏁�8娆★紝
+                  绋嬪簭寤惰繜mcStallRecover閲嶆柊鍚�姩锛岃繘琛屾牎鍑嗙姸鎬併€�
     Parameter:        mcFaultVarible *h_Fault
     Return:           no
 *****************************************************************************/
-//堵转保护
+//鍫佃浆淇濇姢
 void Fault_Stall(void)
 {
     if (mcState == mcRun)
@@ -246,7 +246,7 @@ void Fault_Stall(void)
         }
         else
         {
-            //method 1,判断反电动势太小或当反电动势太小,转速太大
+            //method 1锛屽垽鏂�弽鐢靛姩鍔垮お灏忔垨褰撳弽鐢靛姩鍔垮お灏忥紝杞�€熷お澶�
             if ((mcFocCtrl.BEmf < 1000) || ((FOC__EOME > _Q15(3000.0 / MOTOR_SPEED_BASE)) && (mcFocCtrl.BEmf < 2000)))
             {
                 mcFaultDect.StallDectEs++;
@@ -267,7 +267,7 @@ void Fault_Stall(void)
                 }
             }
             
-            //method 2,判断速度低于堵转最小值或者超过堵转最大值
+            //method 2锛屽垽鏂�€熷害浣庝簬鍫佃浆鏈€灏忓€兼垨鑰呰秴杩囧牭杞�渶澶у€�
             if ((mcFocCtrl.SpeedFlt < Motor_Stall_Min_Speed) || (mcFocCtrl.SpeedFlt > Motor_Stall_Max_Speed))
             {
                 mcFaultDect.StallDectSpeed++;
@@ -308,7 +308,7 @@ void Fault_Stall(void)
         }
     }
     
-    /*******堵转保护恢复*********/
+    /*******鍫佃浆淇濇姢鎭㈠�*********/
     if ((mcFaultSource == FaultStall) && (mcState == mcFault) && (mcProtectTime.StallTimes < StallProtectRestartTimes))
     {
         mcFaultDect.StallReCount++;
@@ -327,8 +327,8 @@ void Fault_Stall(void)
 }
 /*****************************************************************************
     Function:         void   Fault_phaseloss(mcFaultVarible *h_Fault)
-    Description:  缺相保护函数,当电机运行状态下,10ms取三相电流的最大值,
-                  1.5s判断各相电流最大值,若存在两相电流值大于一定值,而第三相电流值却非常小,则判断为缺相保护,电机停机;
+    Description:  缂虹浉淇濇姢鍑芥暟锛屽綋鐢垫満杩愯�鐘舵€佷笅锛�10ms鍙栦笁鐩哥數娴佺殑鏈€澶у€硷紝
+                  1.5s鍒ゆ柇鍚勭浉鐢垫祦鏈€澶у€硷紝鑻ュ瓨鍦ㄤ袱鐩哥數娴佸€煎ぇ浜庝竴瀹氬€硷紝鑰岀�涓夌浉鐢垫祦鍊煎嵈闈炲父灏忥紝鍒欏垽鏂�负缂虹浉淇濇姢锛岀數鏈哄仠鏈猴紱
     Parameter:        mcFaultVarible *h_Fault
     Return:           no
 *****************************************************************************/
@@ -412,7 +412,7 @@ void Fault_phaseloss(void)
             mcCurVarible.Max_ia = 0;
             mcCurVarible.Max_ib = 0;
             mcCurVarible.Max_ic = 0;
-            SetBit(FOC_CR2, ICLR);  //FOC__IA/B/CMAX清零
+            SetBit(FOC_CR2, ICLR);  //FOC__IA/B/CMAX娓呴浂
             
             if ((mcFaultDect.AOpencnt > 3) || (mcFaultDect.BOpencnt > 3) || (mcFaultDect.COpencnt > 3))
             {
@@ -422,8 +422,8 @@ void Fault_phaseloss(void)
         }
     }
     
-    /*******缺相保护恢复*********/
-    if ((mcFaultSource == FaultLossPhase) && (mcState == mcFault) && (mcProtectTime.LossPHTimes < PhaseProtectRestartTimes)) //可重启5次
+    /*******缂虹浉淇濇姢鎭㈠�*********/
+    if ((mcFaultSource == FaultLossPhase) && (mcState == mcFault) && (mcProtectTime.LossPHTimes < PhaseProtectRestartTimes)) //鍙�噸鍚�5娆�
     {
         mcFaultDect.mcLossPHRecCount++;
         
@@ -460,7 +460,7 @@ void Fault_IPMOverTemp(void)
         }
     }
     
-    /*******温度保护恢复*********/
+    /*******娓╁害淇濇姢鎭㈠�*********/
     if ((mcState == mcFault) && (mcFaultSource == FaultIpmTemp))
     {
         if (mcFocCtrl.IPMtemp < TempRecoverValue)
@@ -517,7 +517,7 @@ void Fault_TempSensor(void)
         }
     }
     
-    /*******温度保护恢复*********/
+    /*******娓╁害淇濇姢鎭㈠�*********/
     if ((mcState == mcFault) && ((mcFaultSource == FaultHuanTempSensor) || (mcFaultSource == FaultGuanTempSensor)))
     {
         if ((Huan_temp != 1500) && (Huan_temp != -1000))
@@ -551,7 +551,7 @@ void Fault_TempSensor(void)
         }
     }
 }
-/*通信保护*/
+/*閫氫俊淇濇姢*/
 void Fault_cummution()
 {
     if ((mcFaultDect.commu_time >= 30000) && (CummProtectEnable == 1) && (SPEED_MODE == UARTMODE))
@@ -561,7 +561,7 @@ void Fault_cummution()
     }
 }
 
-/*压机偏置电压错误恢复*/
+/*鍘嬫満鍋忕疆鐢靛帇閿欒�鎭㈠�*/
 void IOffsetRecoverEnable()
 {
     if ((mcFaultSource == FaultIbusOffset) && (mcProtectTime.IbusOffsetProtectTimes < IbusOffsetRestartTimes))
@@ -603,7 +603,7 @@ void Fault_UdcMax_Min(void)
         }
     }
     
-    /*******保护恢复*********/
+    /*******淇濇姢鎭㈠�*********/
     if ((mcState == mcFault) && (mcFaultSource == FaultshuruLoss) && (mcProtectTime.shurulossTimes <= 3))
     {
         if (((mcFocCtrl.mcDcbus_chazhi) <= _Q15(20 / HW_BOARD_VOLT_MAX)) && mcFocCtrl.mcDcbus_min >= _Q15(500 / HW_BOARD_VOLT_MAX))
@@ -627,8 +627,8 @@ void Fault_UdcMax_Min(void)
 /*  Name     :   void Fault_Detection(void)
     /* Input    :   NO
     /* Output   :   NO
-    /* Description: 保护函数,因保护的时间响应不会很高,采用分段处理,每5个定时器中断执行一次对应的保护
-                  常见保护有过欠压、过温、堵转、启动、缺相等保护,调试时,可根据需求,一个个的调试加入。
+    /* Description: 淇濇姢鍑芥暟锛屽洜淇濇姢鐨勬椂闂村搷搴斾笉浼氬緢楂橈紝閲囩敤鍒嗘�澶勭悊锛屾瘡5涓�畾鏃跺櫒涓�柇鎵ц�涓€娆″�搴旂殑淇濇姢
+                  甯歌�淇濇姢鏈夎繃娆犲帇銆佽繃娓┿€佸牭杞�€佸惎鍔ㄣ€佺己鐩哥瓑淇濇姢锛岃皟璇曟椂锛屽彲鏍规嵁闇€姹傦紝涓€涓�釜鐨勮皟璇曞姞鍏ャ€�
     /*---------------------------------------------------------------------------*/
 void Fault_Detection(void)
 {
@@ -641,7 +641,7 @@ void Fault_Detection(void)
     
     if (mcFaultDect.segment == 0)
     {
-        #if (CurrentRecoverEnable == 1)//过流保护恢复使能
+        #if (CurrentRecoverEnable == 1)//杩囨祦淇濇姢鎭㈠�浣胯兘
         {
             Fault_OverCurrentRecover();
         }
@@ -649,12 +649,12 @@ void Fault_Detection(void)
     }
     else if (mcFaultDect.segment == 1)
     {
-        #if (VoltageProtectEnable == 1)//过压保护使能
+        #if (VoltageProtectEnable == 1)//杩囧帇淇濇姢浣胯兘
         {
             Fault_OverUnderVoltage();
         }
         #endif
-        #if (IbusOffsetRecoverEnable)  //偏执电压保护恢复
+        #if (IbusOffsetRecoverEnable)  //鍋忔墽鐢靛帇淇濇姢鎭㈠�
         {
             IOffsetRecoverEnable();
         }
@@ -662,7 +662,7 @@ void Fault_Detection(void)
     }
     else if (mcFaultDect.segment == 2)
     {
-        #if (StartProtectEnable == 1)//启动保护使能
+        #if (StartProtectEnable == 1)//鍚�姩淇濇姢浣胯兘
         {
             Fault_Start();
         }
@@ -670,7 +670,7 @@ void Fault_Detection(void)
     }
     else if (mcFaultDect.segment == 3)
     {
-        #if (StallProtectEnable == 1)//堵转保护使能
+        #if (StallProtectEnable == 1)//鍫佃浆淇濇姢浣胯兘
         {
             Fault_Stall();
         }
@@ -678,7 +678,7 @@ void Fault_Detection(void)
     }
     else if (mcFaultDect.segment == 4)
     {
-        #if (PhaseLossProtectEnable == 1)//缺相保护使能
+        #if (PhaseLossProtectEnable == 1)//缂虹浉淇濇姢浣胯兘
         {
             Fault_phaseloss();
         }
@@ -686,7 +686,7 @@ void Fault_Detection(void)
     }
     else if (mcFaultDect.segment == 5)
     {
-        #if (TempProtectEnable == 1)//IPM温度保护
+        #if (TempProtectEnable == 1)//IPM娓╁害淇濇姢
         {
             Fault_IPMOverTemp();
         }
@@ -699,7 +699,7 @@ void Fault_Detection(void)
     }
     else
     {
-        #if (CummProtectEnable == 1)//通信保护
+        #if (CummProtectEnable == 1)//閫氫俊淇濇姢
         {
             Fault_cummution();
         }
@@ -711,7 +711,7 @@ void Fault_Detection(void)
         Fault_UdcMax_Min();
     }
     #endif
-    //      Fault_Overcurrent(); // 软件过流保护
+    //      Fault_Overcurrent(); // 杞�欢杩囨祦淇濇姢
 }
 
 
@@ -722,7 +722,7 @@ void Fault_Detection(void)
 
 
 
-/*PFC偏执保护恢复*/
+/*PFC鍋忔墽淇濇姢鎭㈠�*/
 void PFCOffsetRecoverEnable()
 {
     if (((PFCFaultSource == PFCFaultIbusOffset) || (PFCFaultSource == PFCFaultHardOVCurrent)) && (PFCFaultDect.IbusOffsetProtectTimes < PFCOffsetRestartTimes))
@@ -735,7 +735,7 @@ void PFCOffsetRecoverEnable()
         }
     }
 }
-/*PFC过压保护控制*/
+/*PFC杩囧帇淇濇姢鎺у埗*/
 void PFCFault_OverUnderVoltage(void)
 {
     if (PFCFaultSource == PFCFaultNoSource)
@@ -761,7 +761,7 @@ void PFCFault_OverUnderVoltage(void)
         }
     }
     
-    #if (PFC_VOLTAGEPRO_RECOVEREN)                 //恢复
+    #if (PFC_VOLTAGEPRO_RECOVEREN)                 //鎭㈠�
     {
         if ((PFCState == PFCFault) && (PFCFaultSource == PFCFaultOverVoltage))
         {
@@ -785,7 +785,7 @@ void PFCFault_OverUnderVoltage(void)
 }
 
 
-/*过流保护*/
+/*杩囨祦淇濇姢*/
 void PFCFault_Overcurrent(void)
 {
     if ((PFCState == PFCRun) && (PFCFaultSource == PFCFaultNoSource))
@@ -812,8 +812,8 @@ void PFCFault_Overcurrent(void)
 }
 void PFCFault_Detection(void)
 {
-    PFCFault_OverUnderVoltage();//过压保护
-    #if (PFCIOffsetRecoverEnable)                 //恢复
+    PFCFault_OverUnderVoltage();//杩囧帇淇濇姢
+    #if (PFCIOffsetRecoverEnable)                 //鎭㈠�
     {
         PFCOffsetRecoverEnable();
     }

+ 28 - 28
User/source/Application/intint.c → User/Application/intint.c

@@ -38,52 +38,52 @@ void VREFConfigInit(void)
 }
 /*  -------------------------------------------------------------------------------------------------
     Function Name : void HardwareInit(void)
-    Description   : 硬件初始化,初始化需要使用的硬件设备配置,FOC必须配置的是运放电压、运放初始化、ADC初始化、Driver初始化
-                    ,其他的可根据实际需求加。
-    Input         : 
-    Output        : 
+    Description   : 纭�欢鍒濆�鍖栵紝鍒濆�鍖栭渶瑕佷娇鐢ㄧ殑纭�欢璁惧�閰嶇疆锛孎OC蹇呴』閰嶇疆鐨勬槸杩愭斁鐢靛帇銆佽繍鏀惧垵濮嬪寲銆丄DC鍒濆�鍖栥€丏river鍒濆�鍖�
+                    锛屽叾浠栫殑鍙�牴鎹�疄闄呴渶姹傚姞銆�
+    Input         : 鏃�
+    Output        : 鏃�
     -------------------------------------------------------------------------------------------------*/
 void HardwareInit(void)
 {
     /************************VREF&VHALF Config************************/
-    VREFConfigInit();//参考电压初始化
-    /*********硬件FO过流,比较器初始化,用于硬件过流比较保护*********/
-    #if (HardwareCurrent_Protect == Hardware_FO_Protect)     //外部中断初始化,用于外部中断硬件过流FO的保护
+    VREFConfigInit();//鍙傝€冪數鍘嬪垵濮嬪寲
+    /*********纭�欢FO杩囨祦锛屾瘮杈冨櫒鍒濆�鍖栵紝鐢ㄤ簬纭�欢杩囨祦姣旇緝淇濇姢*********/
+    #if (HardwareCurrent_Protect == Hardware_FO_Protect)     //澶栭儴涓�柇鍒濆�鍖栵紝鐢ㄤ簬澶栭儴涓�柇纭�欢杩囨祦FO鐨勪繚鎶�
     INT0_Init();
-    #elif (HardwareCurrent_Protect == Hardware_CMP_Protect)  //选择比较过流,比较器初始化
+    #elif (HardwareCurrent_Protect == Hardware_CMP_Protect)  //閫夋嫨姣旇緝杩囨祦锛屾瘮杈冨櫒鍒濆�鍖�
     CMP3_Init();
-    #elif (HardwareCurrent_Protect == Hardware_FO_CMP_Protect)//两者都选择
+    #elif (HardwareCurrent_Protect == Hardware_FO_CMP_Protect)//涓よ€呴兘閫夋嫨
     INT0_Init();
     CMP3_Init();
     #endif
-    // 为提高芯片的抗干扰能力,降低芯片功耗,将不需要用的GPIO默认都配置为输入上拉。
+    // 涓烘彁楂樿姱鐗囩殑鎶楀共鎵拌兘鍔涳紝闄嶄綆鑺�墖鍔熻€楋紝灏嗕笉闇€瑕佺敤鐨凣PIO榛樿�閮介厤缃�负杈撳叆涓婃媺銆�
     //    GPIO_Default_Init();
-    /************************硬件外设初始化**************************/
-    UART1_Init();           //调试工具初始化
+    /************************纭�欢澶栬�鍒濆�鍖�**************************/
+    UART1_Init();           //璋冭瘯宸ュ叿鍒濆�鍖�
     #if (Uart_Select==Uart_MoNi)
-    MONI_UART1_Init();      //模拟串口初始化
+    MONI_UART1_Init();      //妯℃嫙涓插彛鍒濆�鍖�
     #elif (Uart_Select==Uart_Yingjian)
     UART2_Init();
     #endif
-    GPIO_Init();            //GPIO初始化
-    ADC_Init();             //ADC初始化
-    AMP_Init();             //运放初始化
-    #if (PFCEnable == 1)//PFC比较器初始化
+    GPIO_Init();            //GPIO鍒濆�鍖�
+    ADC_Init();             //ADC鍒濆�鍖�
+    AMP_Init();             //杩愭斁鍒濆�鍖�
+    #if (PFCEnable == 1)//PFC姣旇緝鍣ㄥ垵濮嬪寲
     SetBit(P1_AN, P13 | P14 | P15);
     ClrBit(P1_OE, P13);
     SetBit(AMP_CR0, AMP3EN);
     #endif
-    Driver_Init();          //pwm初始化
-    CMP3_Interrupt_Init();  // 比较器中断配置  建议和比较器初始化间隔一段时间
-    Timer3_Init();          //PWM OUTput 风机控制
-    Timer4_Init();          //FG 捕获
-    /***********SYSTICK定时器配置*******************/
+    Driver_Init();          //pwm鍒濆�鍖�
+    CMP3_Interrupt_Init();  // 姣旇緝鍣ㄤ腑鏂�厤缃�  寤鸿�鍜屾瘮杈冨櫒鍒濆�鍖栭棿闅斾竴娈垫椂闂�
+    Timer3_Init();          //PWM OUTput 椋庢満鎺у埗
+    Timer4_Init();          //FG 鎹曡幏
+    /***********SYSTICK瀹氭椂鍣ㄩ厤缃�*******************/
     SYST_ARR = 24000;
     SetBit(IP2, PSYSTICK0);
     //      SetBit(IP2 , PSYSTICK1);
     SetBit(DRV_SR, SYSTIE);
     _nop_(); _nop_();
-    #if (PFCEnable==1)//PFC初始化
+    #if (PFCEnable==1)//PFC鍒濆�鍖�
     PFC_init();
     #endif
     PI2_Init();
@@ -91,15 +91,15 @@ void HardwareInit(void)
 
 /*  ---------------------------------------------------------------------------------
     Function Name : void SoftwareInit(void)
-    Description   : 软件初始化,初始化所有定义变量,按键初始化扫描
-    Input         : 
-    Output        : 
+    Description   : 杞�欢鍒濆�鍖栵紝鍒濆�鍖栨墍鏈夊畾涔夊彉閲忥紝鎸夐敭鍒濆�鍖栨壂鎻�
+    Input         : 鏃�
+    Output        : 鏃�
     ----------------------------------------------------------------------------------*/
 void SoftwareInit(void)
 {
-    /****初始化所有定义的参数变量****/
+    /****鍒濆�鍖栨墍鏈夊畾涔夌殑鍙傛暟鍙橀噺****/
     MotorcontrolInit();
-    /****电机初始状态为mcReady,故障保护为无故障******/
+    /****鐢垫満鍒濆�鐘舵€佷负mcReady锛屾晠闅滀繚鎶や负鏃犳晠闅�******/
     mcState       = mcReady;
     PFCState      = PFCReady;
     mcFaultSource = 0;

+ 0 - 0
User/source/Application/main.c → User/Application/main.c


+ 13 - 13
User/source/Function/Communication.c → User/Function/Communication.c

@@ -85,7 +85,7 @@ uint16 cnt_wt_timeout2 = 0; //
 
 void MD_WT_INTRE( void )
 {
-    //  REG_RESET();// 处理各种错误,如:针错误,数据超时等等
+    //  REG_RESET();// 澶勭悊鍚勭�閿欒�锛屽�锛氶拡閿欒�锛屾暟鎹�秴鏃剁瓑绛�
 }
 
 void MD_WT_INTR( void )
@@ -229,13 +229,13 @@ int16  xdata GPFCON1  _at_ 0x000C2; //IA
 int16  xdata GPFCON2  _at_ 0x000C4; //IB
 int16  xdata GPFCON3  _at_ 0x000C6; //UD
 int16  xdata GPFCON4  _at_ 0x000C8; //UQ
-int16  xdata GPFCON5  _at_ 0x000CA; //角度
-int16  xdata GPFCON6  _at_ 0x000A2; //母线电压
-int16  xdata GPFCON7  _at_ 0x000A4; //给定转速
-int16  xdata GPFCON8  _at_ 0x000A6; //反馈转速
-int16  xdata GPFCON9  _at_ 0x000A8; //ipm温度
-int16  xdata GPFCON10 _at_ 0x000AA; //开关机转太
-/*根据所获得的地址设至相应的发送数据*/
+int16  xdata GPFCON5  _at_ 0x000CA; //瑙掑害
+int16  xdata GPFCON6  _at_ 0x000A2; //姣嶇嚎鐢靛帇
+int16  xdata GPFCON7  _at_ 0x000A4; //缁欏畾杞�€�
+int16  xdata GPFCON8  _at_ 0x000A6; //鍙嶉�杞�€�
+int16  xdata GPFCON9  _at_ 0x000A8; //ipm娓╁害
+int16  xdata GPFCON10 _at_ 0x000AA; //寮€鍏虫満杞�お
+/*鏍规嵁鎵€鑾峰緱鐨勫湴鍧€璁捐嚦鐩稿簲鐨勫彂閫佹暟鎹�*/
 void CMDMONI_WT_TRACEWATCH(void)
 {
     int msk = 0;
@@ -285,7 +285,7 @@ void CMDMONI_WT_TRACEWATCH(void)
                 #if BIGENDIAN
                 buf_trace[iBase + 0] = cmdmoni_getdata_size(ptr_adrs[0], adrs_size[0]);
                 #else
-                buf_trace[iBase + 0] = 25122; //*(  int16 xdata *)(ptr_adrs[0]); //*ptr_adrs[0];//*ptr_adrs[0]:所放数据的地址
+                buf_trace[iBase + 0] = 25122; //*(  int16 xdata *)(ptr_adrs[0]); //*ptr_adrs[0];//*ptr_adrs[0]:鎵€鏀炬暟鎹�殑鍦板潃
                 #endif
                 idy_trace++;
                 idy_trace &= msk;
@@ -670,8 +670,8 @@ static int zop_cmd04(void)
 
 // GetTrace
 // RE[6]:     05H,04H,id,00H,00H,CS
-// TXHEAD[7]: 85H,05H,id,00H,Halt(2),cs   //Halt(2)通道
-// TXBODY[?]: 85H,??H,id,FFH,NUM(2),{DATA(4) * (CHANNEL)},CS//数据
+// TXHEAD[7]: 85H,05H,id,00H,Halt(2),cs   //Halt(2)閫氶亾
+// TXBODY[?]: 85H,??H,id,FFH,NUM(2),{DATA(4) * (CHANNEL)},CS//鏁版嵁
 static int zop_cmd05(void)
 {
     uint8 cnt = RCVCMD6 - 1;
@@ -880,7 +880,7 @@ static int zop_cmd0A(void)
     return 10;
 }
 
-/*TRACE 发送数据的处理*/
+/*TRACE 鍙戦€佹暟鎹�殑澶勭悊*/
 void CMDMONI_WT_CHECKCMD(void)
 {
     static int8 uiui = 0;
@@ -919,7 +919,7 @@ void CMDMONI_WT_CHECKCMD(void)
 }
 extern uint8 fasong;
 uint8 txbuff = 0;
-/*一般数据发送的处理*/
+/*涓€鑸�暟鎹�彂閫佺殑澶勭悊*/
 void CMDMONI_WT_SENDCMD(void)
 {
     if ((cnt_wt_timeout > 100) || (cnt_wt_timeout2 > 100))

+ 61 - 61
User/source/Function/CurrentDecoupledControl.c → User/Function/CurrentDecoupledControl.c

@@ -21,31 +21,31 @@ void CurrentDecoupledControlFunctionInit(float MotorLd, float MotorLq, float Mot
 }
 
 
-void CurrentDecoupledControlFunction(void)//DQ轴解耦处理
+void CurrentDecoupledControlFunction(void)//DQ杞磋В鑰﹀�鐞�
 {
     //    if(LowSpeedObserver.LowSpeedObserverToAoObserverFlag)
     {
-        mcCurrentDecoupledControl.Omega = mcFocCtrl.SpeedFlt1;//Q15格式
+        mcCurrentDecoupledControl.Omega = mcFocCtrl.SpeedFlt1;//Q15鏍煎紡
     }
     //      else
     //    {
-    //        mcCurrentDecoupledControl.Omega = LowSpeedObserver.LowSpeedObserverOmegaFlt;//Q15格式
+    //        mcCurrentDecoupledControl.Omega = LowSpeedObserver.LowSpeedObserverOmegaFlt;//Q15鏍煎紡
     //    }
-    mcCurrentDecoupledControl.DCurrent0 = FOC__ID;//Q15格式
-    mcCurrentDecoupledControl.QCurrent0 = FOC__IQ;//Q15格式
+    mcCurrentDecoupledControl.DCurrent0 = FOC__ID;//Q15鏍煎紡
+    mcCurrentDecoupledControl.QCurrent0 = FOC__IQ;//Q15鏍煎紡
     mcCurrentDecoupledControl.DCurrent   =  LPF_realize2(mcCurrentDecoupledControl.DCurrent0, mcCurrentDecoupledControl.DCurrent, LPF_K(1.0));
     mcCurrentDecoupledControl.QCurrent   =  LPF_realize2(mcCurrentDecoupledControl.QCurrent0, mcCurrentDecoupledControl.QCurrent, LPF_K(1.0));
-    //    mcCurrentDecoupledControl.DcVoltage = mcFocCtrl.mcDcbusFlt;//FOC__UDCFLT;//Q15格式
-    mcCurrentDecoupledControl.DcVoltage = FOC__UDCFLT;//FOC__UDCFLT;//Q15格式
-    MUL0_MA = mcCurrentDecoupledControl.Omega;//Q15格式
-    MUL0_MB = mcCurrentDecoupledControl.QCurrent;//Q15格式
+    //    mcCurrentDecoupledControl.DcVoltage = mcFocCtrl.mcDcbusFlt;//FOC__UDCFLT;//Q15鏍煎紡
+    mcCurrentDecoupledControl.DcVoltage = FOC__UDCFLT;//FOC__UDCFLT;//Q15鏍煎紡
+    MUL0_MA = mcCurrentDecoupledControl.Omega;//Q15鏍煎紡
+    MUL0_MB = mcCurrentDecoupledControl.QCurrent;//Q15鏍煎紡
     SMDU_RunBlock(0, S1MUL);
-    MUL0_MA = MUL0_MCH;//Q15格式
-    MUL0_MB = mcCurrentDecoupledControl.DCurrentDecoupledControlK;//Q11格式
+    MUL0_MA = MUL0_MCH;//Q15鏍煎紡
+    MUL0_MB = mcCurrentDecoupledControl.DCurrentDecoupledControlK;//Q11鏍煎紡
     SMDU_RunBlock(0, S1MUL);
-    mcCurrentDecoupledControl.DVoltageComponent = MUL0_MCH << 4;//Q15格式
+    mcCurrentDecoupledControl.DVoltageComponent = MUL0_MCH << 4;//Q15鏍煎紡
     
-    if (mcCurrentDecoupledControl.DVoltageComponent < 0) //硬件除法器不可以为负,空载启动时转速超调可能导致Q轴电流为负,导致电流异常
+    if (mcCurrentDecoupledControl.DVoltageComponent < 0) //纭�欢闄ゆ硶鍣ㄤ笉鍙�互涓鸿礋锛岀┖杞藉惎鍔ㄦ椂杞�€熻秴璋冨彲鑳藉�鑷碤杞寸數娴佷负璐燂紝瀵艰嚧鐢垫祦寮傚父
     {
         mcCurrentDecoupledControl.DVoltageComponentAbs = -mcCurrentDecoupledControl.DVoltageComponent;
     }
@@ -54,34 +54,34 @@ void CurrentDecoupledControlFunction(void)//DQ
         mcCurrentDecoupledControl.DVoltageComponentAbs = mcCurrentDecoupledControl.DVoltageComponent;
     }
     
-    DIV0_DAH = mcCurrentDecoupledControl.DVoltageComponentAbs;//Q31格式
+    DIV0_DAH = mcCurrentDecoupledControl.DVoltageComponentAbs;//Q31鏍煎紡
     DIV0_DAL = 0;
-    DIV0_DB = mcCurrentDecoupledControl.DcVoltage;//Q15格式
+    DIV0_DB = mcCurrentDecoupledControl.DcVoltage;//Q15鏍煎紡
     SMDU_RunBlock(0, DIV);
     
     if (mcCurrentDecoupledControl.DVoltageComponent < 0)
     {
-        mcCurrentDecoupledControl.DDutyQ15 = DIV0_DQL >> 1;//Q15格式,该分量为负
+        mcCurrentDecoupledControl.DDutyQ15 = DIV0_DQL >> 1;//Q15鏍煎紡锛岃�鍒嗛噺涓鸿礋
     }
     else
     {
-        mcCurrentDecoupledControl.DDutyQ15 = -(DIV0_DQL >> 1);//Q15格式,该分量为负
+        mcCurrentDecoupledControl.DDutyQ15 = -(DIV0_DQL >> 1);//Q15鏍煎紡锛岃�鍒嗛噺涓鸿礋
     }
     
-    MUL0_MA = mcCurrentDecoupledControl.Omega;//Q15格式
-    MUL0_MB = mcCurrentDecoupledControl.QCurrentDecoupledControlK1;//Q13格式
+    MUL0_MA = mcCurrentDecoupledControl.Omega;//Q15鏍煎紡
+    MUL0_MB = mcCurrentDecoupledControl.QCurrentDecoupledControlK1;//Q13鏍煎紡
     SMDU_RunBlock(0, S1MUL);
-    mcCurrentDecoupledControl.QVoltageComponent1 = MUL0_MCH << 2;//Q15格式
-    MUL0_MA = mcCurrentDecoupledControl.Omega;//Q15格式
-    MUL0_MB = mcCurrentDecoupledControl.QCurrentDecoupledControlK2;//Q11格式
+    mcCurrentDecoupledControl.QVoltageComponent1 = MUL0_MCH << 2;//Q15鏍煎紡
+    MUL0_MA = mcCurrentDecoupledControl.Omega;//Q15鏍煎紡
+    MUL0_MB = mcCurrentDecoupledControl.QCurrentDecoupledControlK2;//Q11鏍煎紡
     SMDU_RunBlock(0, S1MUL);
-    MUL0_MA = MUL0_MCH;//Q11格式
-    MUL0_MB = mcCurrentDecoupledControl.DCurrent;//Q15格式
+    MUL0_MA = MUL0_MCH;//Q11鏍煎紡
+    MUL0_MB = mcCurrentDecoupledControl.DCurrent;//Q15鏍煎紡
     SMDU_RunBlock(0, S1MUL);
-    mcCurrentDecoupledControl.QVoltageComponent2 = MUL0_MCH << 4;//Q15格式
+    mcCurrentDecoupledControl.QVoltageComponent2 = MUL0_MCH << 4;//Q15鏍煎紡
     mcCurrentDecoupledControl.QVoltageComponent = mcCurrentDecoupledControl.QVoltageComponent1 + mcCurrentDecoupledControl.QVoltageComponent2;
     
-    if (mcCurrentDecoupledControl.QVoltageComponent < 0) //硬件除法器不可以为负
+    if (mcCurrentDecoupledControl.QVoltageComponent < 0) //纭�欢闄ゆ硶鍣ㄤ笉鍙�互涓鸿礋
     {
         mcCurrentDecoupledControl.QVoltageComponentAbs = -mcCurrentDecoupledControl.QVoltageComponent;
     }
@@ -90,11 +90,11 @@ void CurrentDecoupledControlFunction(void)//DQ
         mcCurrentDecoupledControl.QVoltageComponentAbs = mcCurrentDecoupledControl.QVoltageComponent;
     }
     
-    DIV0_DAH = mcCurrentDecoupledControl.QVoltageComponentAbs;//Q31格式
+    DIV0_DAH = mcCurrentDecoupledControl.QVoltageComponentAbs;//Q31鏍煎紡
     DIV0_DAL = 0;
-    DIV0_DB = mcCurrentDecoupledControl.DcVoltage;//Q15格式
+    DIV0_DB = mcCurrentDecoupledControl.DcVoltage;//Q15鏍煎紡
     SMDU_RunBlock(0, DIV);
-    mcCurrentDecoupledControl.QDutyQ15 = DIV0_DQL >> 1;//Q15格式
+    mcCurrentDecoupledControl.QDutyQ15 = DIV0_DQL >> 1;//Q15鏍煎紡
     
     if (mcCurrentDecoupledControl.QVoltageComponent < 0)
     {
@@ -116,106 +116,106 @@ void DQCurrentKpKiCalInit(float MotorLd, float MotorLq, float Ts, float VoltageB
 void DQCurrentKpKiCal(void)
 {
     MUL1_MA = DQCurrentPI.KpwmkValue;
-    MUL1_MB = FOC__UDCFLT;//Q15格式
+    MUL1_MB = FOC__UDCFLT;//Q15鏍煎紡
     SMDU_RunBlock(1, S1MUL);
     DQCurrentPI.KpwmValue = MUL1_MCH;
     DIV1_DAH = 0;
-    DIV1_DAL = DQCurrentPI.DCurrentKik;//Q11格式
+    DIV1_DAL = DQCurrentPI.DCurrentKik;//Q11鏍煎紡
     DIV1_DB = DQCurrentPI.KpwmValue;
     SMDU_RunBlock(1, DIV);
-    DQCurrentPI.DCurrentKi = DIV1_DQL << 4;//Q15格式
+    DQCurrentPI.DCurrentKi = DIV1_DQL << 4;//Q15鏍煎紡
     DIV1_DAH = 0;
-    DIV1_DAL = DQCurrentPI.QCurrentKik;//Q11格式
+    DIV1_DAL = DQCurrentPI.QCurrentKik;//Q11鏍煎紡
     DIV1_DB = DQCurrentPI.KpwmValue;
     SMDU_RunBlock(1, DIV);
-    DQCurrentPI.QCurrentKi = DIV1_DQL << 4;//Q15格式
-    DIV1_DAH = DQCurrentPI.DCurrentKpk;//Q16格式
+    DQCurrentPI.QCurrentKi = DIV1_DQL << 4;//Q15鏍煎紡
+    DIV1_DAH = DQCurrentPI.DCurrentKpk;//Q16鏍煎紡
     DIV1_DAL = 0;
-    DIV1_DB = DQCurrentPI.KpwmValue << 4;//Q4格式
+    DIV1_DB = DQCurrentPI.KpwmValue << 4;//Q4鏍煎紡
     SMDU_RunBlock(1, DIV);
     
     if ((DIV1_DQH != 0) || (DIV1_DQL > 32767))
     {
-        DQCurrentPI.DCurrentKp = 32767;//Q12格式
+        DQCurrentPI.DCurrentKp = 32767;//Q12鏍煎紡
     }
     else
     {
-        DQCurrentPI.DCurrentKp = DIV1_DQL;//Q12格式
+        DQCurrentPI.DCurrentKp = DIV1_DQL;//Q12鏍煎紡
     }
     
-    DIV1_DAH = DQCurrentPI.QCurrentKpk;//Q16格式
+    DIV1_DAH = DQCurrentPI.QCurrentKpk;//Q16鏍煎紡
     DIV1_DAL = 0;
-    DIV1_DB = DQCurrentPI.KpwmValue << 4;//Q4格式
+    DIV1_DB = DQCurrentPI.KpwmValue << 4;//Q4鏍煎紡
     SMDU_RunBlock(1, DIV);
     
     if ((DIV1_DQH != 0) || (DIV1_DQL > 32767))
     {
-        DQCurrentPI.QCurrentKp = 32767;//Q12格式
+        DQCurrentPI.QCurrentKp = 32767;//Q12鏍煎紡
     }
     else
     {
-        DQCurrentPI.QCurrentKp = DIV1_DQL;//Q12格式
+        DQCurrentPI.QCurrentKp = DIV1_DQL;//Q12鏍煎紡
     }
     
-    FOC_QKP       = DQCurrentPI.QCurrentKp;//Q轴电流环参数
+    FOC_QKP       = DQCurrentPI.QCurrentKp;//Q杞寸數娴佺幆鍙傛暟
     FOC_QKI       = DQCurrentPI.QCurrentKi;
-    FOC_DKP        = DQCurrentPI.DCurrentKp;//D轴电流环参数
+    FOC_DKP        = DQCurrentPI.DCurrentKp;//D杞寸數娴佺幆鍙傛暟
     FOC_DKI        = DQCurrentPI.DCurrentKi;
-    //    FOC_DQKP       = DQKPStart;//Q轴电流环参数
+    //    FOC_DQKP       = DQKPStart;//Q杞寸數娴佺幆鍙傛暟
     //    FOC_DQKI       = DQKIStart;
 }
 //void DQCurrentKpKiCal(void)
 //{
 //    MUL1_MA = Kpwmk;
-//    MUL1_MB = FOC__UDCFLT;//Q15格式
+//    MUL1_MB = FOC__UDCFLT;//Q15鏍煎紡
 //    SMDU_RunBlock(1,S1MUL);
 //    DQCurrentPI.KpwmValue = MUL1_MCH;
 //
-//    DIV1_DAH = DCurrentKi_K;//Q16格式
+//    DIV1_DAH = DCurrentKi_K;//Q16鏍煎紡
 //    DIV1_DAL = 0;
 //    DIV1_DB = DQCurrentPI.KpwmValue;
 //    SMDU_RunBlock(1,DIV);
-//    DQCurrentPI.DCurrentKi = DIV1_DQL >> 1;//Q15格式
+//    DQCurrentPI.DCurrentKi = DIV1_DQL >> 1;//Q15鏍煎紡
 //
-//    DIV1_DAH = QCurrentKi_K;//Q16格式
+//    DIV1_DAH = QCurrentKi_K;//Q16鏍煎紡
 //    DIV1_DAL = 0;
 //    DIV1_DB = DQCurrentPI.KpwmValue;
 //    SMDU_RunBlock(1,DIV);
-//    DQCurrentPI.QCurrentKi = DIV1_DQL >> 1;//Q15格式
+//    DQCurrentPI.QCurrentKi = DIV1_DQL >> 1;//Q15鏍煎紡
 //
-//    DIV1_DAH = DCurrentKp_K;//Q16格式
+//    DIV1_DAH = DCurrentKp_K;//Q16鏍煎紡
 //    DIV1_DAL = 0;
-//    DIV1_DB = DQCurrentPI.KpwmValue << 4;//Q4格式
+//    DIV1_DB = DQCurrentPI.KpwmValue << 4;//Q4鏍煎紡
 //    SMDU_RunBlock(1,DIV);
 //
 //    if((DIV1_DQH != 0) || (DIV1_DQL > 32767))
 //    {
-//        DQCurrentPI.DCurrentKp = 32767;//Q12格式
+//        DQCurrentPI.DCurrentKp = 32767;//Q12鏍煎紡
 //    }else
 //    {
-//        DQCurrentPI.DCurrentKp = DIV1_DQL;//Q12格式
+//        DQCurrentPI.DCurrentKp = DIV1_DQL;//Q12鏍煎紡
 //    }
 //
-//    DIV1_DAH = QCurrentKp_K;//Q16格式
+//    DIV1_DAH = QCurrentKp_K;//Q16鏍煎紡
 //    DIV1_DAL = 0;
-//    DIV1_DB = DQCurrentPI.KpwmValue << 4;//Q4格式
+//    DIV1_DB = DQCurrentPI.KpwmValue << 4;//Q4鏍煎紡
 //    SMDU_RunBlock(1,DIV);
 //
 //    if((DIV1_DQH != 0) || (DIV1_DQL > 32767))
 //    {
-//        DQCurrentPI.QCurrentKp = 32767;//Q12格式
+//        DQCurrentPI.QCurrentKp = 32767;//Q12鏍煎紡
 //    }else
 //    {
-//        DQCurrentPI.QCurrentKp = DIV1_DQL;//Q12格式
+//        DQCurrentPI.QCurrentKp = DIV1_DQL;//Q12鏍煎紡
 //    }
 //
-//    FOC_DQKP       = DQCurrentPI.QCurrentKp;//Q轴电流环参数
+//    FOC_DQKP       = DQCurrentPI.QCurrentKp;//Q杞寸數娴佺幆鍙傛暟
 //    FOC_DQKI       = DQCurrentPI.QCurrentKi;
 //
-//    FOC_DKP        = DQCurrentPI.DCurrentKp;//D轴电流环参数
+//    FOC_DKP        = DQCurrentPI.DCurrentKp;//D杞寸數娴佺幆鍙傛暟
 //    FOC_DKI        = DQCurrentPI.DCurrentKi;
 //
-////    FOC_DQKP       = DQKPStart;//Q轴电流环参数
+////    FOC_DQKP       = DQKPStart;//Q杞寸數娴佺幆鍙傛暟
 ////    FOC_DQKI       = DQKIStart;
 
 //}

+ 0 - 0
User/source/Function/FiledWeaken.c → User/Function/FiledWeaken.c


+ 0 - 0
User/source/Function/PFC.c → User/Function/PFC.c


+ 0 - 0
User/source/Function/TorqueCompensation.c → User/Function/TorqueCompensation.c


+ 0 - 0
User/source/Function/VoltageCompensation.c → User/Function/VoltageCompensation.c


+ 0 - 0
User/source/Function/other.c → User/Function/other.c


+ 55 - 0
User/Hardware/ADC.c

@@ -0,0 +1,55 @@
+/********************************************************************************
+
+ **** Copyright (C), 2019, Fortior Technology Co., Ltd.                      ****
+
+ ********************************************************************************
+    File Name     : ADC.c
+    Author        : Bruce HW&RD
+    Date          : 2019-09-11
+    Description   : .C file function description
+    Version       : 1.0
+    Function List :
+
+    Record        :
+    1.Date        : 2019-09-11
+     Author      : Bruce HW&RD
+     Modification: Created file
+
+********************************************************************************/
+
+#include "ADC.h"
+#include "FU68xx_5_MCU.h"
+
+void ADC_Init(void)
+{
+    /*************ADC PIN Analog Function Config*********************/
+    SetBit(P2_AN, PIN0);    //AD0 P20 CH open--IU-->FOC Trigger mode
+    SetBit(P2_AN, PIN3);    //AD1 P23 CH open--IV-->FOC Trigger mode
+    SetBit(P2_AN, PIN4);    //AD2 P24 CH open--DCBUS-->FOC Trigger mode
+    SetBit(P2_AN, PIN5);    //AD3 P25 CH open
+    SetBit(P2_AN, PIN6);    //AD4 P27 CH open--IBUS/IW-->FOC Trigger mode
+    SetBit(P2_AN, PIN6);    //AD4 P27 CH open--IBUS/IW-->FOC Trigger mode
+    SetBit(P1_AN, PIN3);    //AD12 P27 CH open--IBUS/IW-->FOC Trigger mode
+    SetBit(P1_AN, PIN6);  //AD9 P16 CH open--  盘管温度
+    SetBit(P2_AN, PIN0);  //AD0 P20 CH open--  环温
+    SetBit(P2_AN, PIN1);  //AD8 P21 CH open--  排气温度
+    SetBit(P3_AN, PIN4);  //AD7 P34 CH open--  压机外壳温度
+    SetBit(P3_AN, PIN3);  //AD6 P33 CH open--  FORCE_AD
+    SetBit(P2_AN, PIN6);  //AD11 P26 CH open-- IPM温度
+    SetBit(P1_AN, PIN5);  //AD12 P27 CH open--IBUS/IW-->FOC Trigger mode
+    // SetBit(P1_AN , PIN4); //AD12 P27 CH open--IBUS/IW-->FOC Trigger mode
+    /***********************ADC Channel Enable***********************/
+    SetBit(ADC_MASK,  CH0EN | CH1EN | CH2EN | CH4EN | CH3EN); //
+    SetBit(ADC_MASK,  CH5EN | CH6EN | CH11EN | CH13EN | CH12EN); //
+    SetBit(ADC_MASK,  CH7EN | CH8EN | CH9EN | CH10EN);//
+    /******************ADC Result Alignment***************************
+        0:Right Alignment eg:max:0x0fff;
+        1:Left-Second MSB Alignment eg:max:0x7ff8;
+    *****************************************************************/
+    SetBit(ADC_CR, ADCALIGN);
+    /***********************ADC Interrupt Enable*********************/
+    ClrBit(ADC_CR, ADCIE);
+    /***************************ADC Enable***************************/
+    SetBit(ADC_CR, ADCEN);
+}
+

+ 24 - 24
User/source/Hardware/AMP.c → User/Hardware/AMP.c

@@ -3,17 +3,17 @@
  **** Copyright (C), 2019, Fortior Technology Co., Ltd.                      ****
 
  ********************************************************************************
- * File Name     : AMP.c
- * Author        : Bruce HW&RD
- * Date          : 2019-09-11
- * Description   : .C file function description
- * Version       : 1.0
- * Function List :
- * 
- * Record        :
- * 1.Date        : 2019-09-11
- *   Author      : Bruce HW&RD
- *   Modification: Created file
+    File Name     : AMP.c
+    Author        : Bruce HW&RD
+    Date          : 2019-09-11
+    Description   : .C file function description
+    Version       : 1.0
+    Function List :
+
+    Record        :
+    1.Date        : 2019-09-11
+     Author      : Bruce HW&RD
+     Modification: Created file
 
 ********************************************************************************/
 
@@ -24,9 +24,9 @@
 
 void AMP_Init(void)
 {
-    #if (Shunt_Resistor_Mode == Single_Resistor) 
-    {		
-         /* ----AMP 端口模拟功能设置---- */
+    #if (Shunt_Resistor_Mode == Single_Resistor)
+    {
+        /* ----AMP 端口模拟功能设置---- */
         #if (HW_AMP_MODE == AMP_NOMAL) //外部放大
         {
             SetBit(P3_AN, P31);             //AMP0 Pin设置为模拟模式  +
@@ -43,10 +43,10 @@ void AMP_Init(void)
             SetBit(P3_AN, P31);             //AMP0 Pin设置为模拟模式  +
             SetBit(P3_AN, P30);             //AMP0 Pin设置为模拟模式  -
             SetBit(P2_AN, P27);             //AMP0 Pin设置为模拟模式  O
-            
+        
             ClrBit(AMP_CR0, AMP0M_GND);     // 禁止运放反向输入端内部接地
             SetBit(AMP_CR0, AMP0EN);        //AMP0 Enable
-            
+        
             #if (HW_AMPGAIN == AMP2x)
             {
                 ClrBit(AMP_CR1, AMP0_GAIN2);
@@ -80,19 +80,19 @@ void AMP_Init(void)
         SetBit(P1_AN, P16);             //AMP1 Pin设置为模拟模式  +
         SetBit(P1_AN, P17);             //AMP1 Pin设置为模拟模式  -
         SetBit(P2_AN, P20);             //AMP1 Pin设置为模拟模式  O
-
+    
         SetBit(P2_AN, P21);             //AMP2 Pin设置为模拟模式  +
         SetBit(P2_AN, P22);             //AMP2 Pin设置为模拟模式  -
         SetBit(P2_AN, P23);             //AMP2 Pin设置为模拟模式  O
         ClrBit(P2_OE, P23);             //P23_OE需要强制为0,禁止DA1输出至PAD
-
+    
         SetBit(P3_AN, P31);             //AMP0 Pin设置为模拟模式  +
         SetBit(P3_AN, P30);             //AMP0 Pin设置为模拟模式  -
         SetBit(P2_AN, P27);             //AMP0 Pin设置为模拟模式  O
         SetBit(AMP_CR0, AMP0EN);         //AMP0 Enable
         SetBit(AMP_CR0, AMP1EN);         //AMP1 Enable
         SetBit(AMP_CR0, AMP2EN);         //AMP2 Enable
-        
+    
         #if (HW_AMP_MODE == AMP_NOMAL)      //外部放大
         {
             ClrBit(AMP_CR1, AMP0_GAIN2);
@@ -150,9 +150,9 @@ void AMP_Init(void)
         #endif
     }
     #endif
-//		#if (PFCEnable == 1)
-//        SetBit(P1_AN, P13 | P14 | P15);
-//        ClrBit(P1_OE, P13);
-//        SetBit(AMP_CR0, AMP3EN);
-//    #endif
+    //      #if (PFCEnable == 1)
+    //        SetBit(P1_AN, P13 | P14 | P15);
+    //        ClrBit(P1_OE, P13);
+    //        SetBit(AMP_CR0, AMP3EN);
+    //    #endif
 }

+ 201 - 0
User/Hardware/CMP.c

@@ -0,0 +1,201 @@
+/********************************************************************************
+
+ **** Copyright (C), 2019, Fortior Technology Co., Ltd.                      ****
+
+ ********************************************************************************
+    File Name     : CMP.c
+    Author        : Bruce HW&RD
+    Date          : 2019-09-11
+    Description   : .C file function description
+    Version       : 1.0
+    Function List :
+
+    Record        :
+    1.Date        : 2019-09-11
+     Author      : Bruce HW&RD
+     Modification: Created file
+
+********************************************************************************/
+
+#include "CMP.h"
+#include "FU68xx_5_MCU.h"
+#include "Customer.h"
+#include "Parameter.h"
+
+void CMP0_Init(void)
+{
+    /******CMP0/1/2 端口模拟功能设置*******/
+    SetBit(P1_AN, PIN4);    //CMP0 Pin设置为模拟模式  +
+    SetBit(P1_AN, PIN6);    //CMP1 Pin设置为模拟模式  +
+    SetBit(P2_AN, PIN1);    //CMP2 Pin设置为模拟模式  +
+    ClrBit(P1_PU, PIN4);    //P14上拉关闭
+    ClrBit(CMP_CR0, CMP2IM1); //CMP2中断模式
+    ClrBit(CMP_CR0, CMP2IM0); //00-->No Interrupt  01-->Rising  10-->Falling   11-->Rising/Falling
+    ClrBit(CMP_CR0, CMP1IM1); //CMP1中断模式
+    ClrBit(CMP_CR0, CMP1IM0); //00-->No Interrupt  01-->Rising  10-->Falling   11-->Rising/Falling
+    ClrBit(CMP_CR0, CMP0IM1); //CMP0中断模式
+    ClrBit(CMP_CR0, CMP0IM0); //00-->No Interrupt  01-->Rising  10-->Falling   11-->Rising/Falling
+    SetBit(CMP_CR1, CMP0HYS2); //CMP0迟滞电压配置
+    ClrBit(CMP_CR1, CMP0HYS1); //111-->±12mV   110-->+12mV   101-->-12mV   100-->±6mV
+    ClrBit(CMP_CR1, CMP0HYS0); //011-->+6mV    010-->-6mV    001-->±3mV    000-->No HYS
+    ClrBit(CMP_CR2, CMP0MOD1); //00-->无内置电阻3比较器             01-->有内置电阻3比较器模式
+    SetBit(CMP_CR2, CMP0MOD0); //10-->3差分比较器              11-->2比较器
+    ClrBit(CMP_CR2, CMP0SEL1); //00-->3比较器轮询              01-->P14+固定选择CMP0OUT
+    ClrBit(CMP_CR2, CMP0SEL0); //10-->P16+固定选择CMP1OUT       11-->P21+固定选择CMP2OUT
+    ClrBit(CMP_CR2, CMP0CSEL1); //00-->正常轮询(0.66us)     01-->快速轮询(0.33us)
+    ClrBit(CMP_CR2, CMP0CSEL0); //10-->低速轮询(2.67us)     11-->偏低速轮询(1.33us)
+    ClrBit(CMP_CR3, CMPSEL2);   //011-->P07作为CMP2输出
+    SetBit(CMP_CR3, CMPSEL1);   //010-->P07作为CMP1输出
+    SetBit(CMP_CR3, CMPSEL0);   //001-->P07作为CMP0输出
+    ClrBit(CMP_CR4, CMP0_FS);   //CMP1/2功能转移    仅CMP0_MOD=01时有效
+    SetBit(CMP_CR2, CMP0EN);    //CMP0 Enable
+    /****************************************************************/
+    ClrBit(IP1, PCMP1);
+    ClrBit(IP1, PCMP0);
+    /***********************比较器采样设置***************************/
+    CMP_SAMR = 0x42;    //延迟开启采样时间[7:4]&关闭采样时间[3:0]
+    //延迟时间= CSOND x 41.67 x 8ns CSOND 必须>= CSOFFD
+    SetBit(CMP_CR3, SAMSEL1);   //CMP0/1/2 & ADC 采样时机配置
+    ClrBit(CMP_CR3, SAMSEL0);   //00-->0N&0FF采样,无延迟   01-->0FF采样,延迟CMP_SAMR
+    //10-->0N采样,延迟CMP_SAMR    11-->0N&0FF采样,延迟CMP_SAMR
+    ClrBit(CMP_CR3, CMPDTEN);   //比较器死区采样使能 0-->Disable 1-->Enable
+    ClrBit(CMP_CR3, DBGSEL1);   //DEBUG信号选择-->输出至P01
+    SetBit(CMP_CR3, DBGSEL0);   //00-->Disable          01-->方波屏蔽续流结束和检测到过零点信号
+    //10-->ADC trigger信号    11-->比较器采样区间
+    /****************************************************************/
+}
+
+/*****************************************************************************
+    Function      : CMP3_Init
+    Description   : CMP3_INIT
+    Input         : void
+    Output        : None
+    Return        :
+    Others        :
+    Record
+    1.Date        : 20190320
+     Author      : Bruce HW&RD
+     Modification: Created function
+
+*****************************************************************************/
+
+void CMP3_Init(void)
+{
+    /******CMP3 端口模拟功能设置*******/
+    #if (Shunt_Resistor_Mode == Single_Resistor)
+    {
+        SetBit(P2_AN, P27);         //CMP3 Pin设置为模拟模式  +
+        ClrBit(CMP_CR1, CMP3MOD1);  //00-->P27-单比较器模式    01-->P20/P23-双比较器模式
+        ClrBit(CMP_CR1, CMP3MOD0);  //1X-->P20/P23/P27-三比较器模式
+    }
+    #elif (Shunt_Resistor_Mode == Double_Resistor)
+    {
+        SetBit(P2_AN, P27);         //CMP3 Pin设置为模拟模式  +
+        ClrBit(CMP_CR1, CMP3MOD1);  //00-->P27-单比较器模式    01-->P20/P23-双比较器模式
+        ClrBit(CMP_CR1, CMP3MOD0);  //1X-->P20/P23/P27-三比较器模式
+    }
+    #elif (Shunt_Resistor_Mode == Three_Resistor)
+    {
+        SetBit(P2_AN, P27 | P23 | P20); //CMP3 Pin设置为模拟模式  +
+        SetBit(CMP_CR1, CMP3MOD1);  //00-->P27-单比较器模式    01-->P20/P23-双比较器模式
+        ClrBit(CMP_CR1, CMP3MOD0);  //1X-->P20/P23/P27-三比较器模式
+    }
+    #endif  //end Shunt_Resistor_Mode
+    #if (Compare_Mode == Compare_Hardware)
+    {
+        /**P2.6使能其模拟功能,使能数字输出**/
+        SetBit(P2_AN, P26);
+        ClrBit(P2_OE, P26);
+        ClrBit(DAC_CR, DAC0_1EN);
+    }
+    #else
+    {
+        /**P2.6使能其模拟功能,使能数字输出**/
+        ClrBit(P2_AN, P26);
+        ClrBit(P2_OE, P26);
+        /******************************
+            0: 正常模式,DAC输出电压范围为0到VREF
+            1: 半电压转换模式,DAC输出电压范围为VHALF到VREF
+        ****************************/
+        ClrBit(DAC_CR, DACMOD);
+    
+        /**********设置DAC过流值*****************/
+        if (DAC_OvercurrentValue < 255)
+        {
+            DAC0_DR = (uint8)DAC_OvercurrentValue;
+        }
+        else
+        {
+            DAC0_DR = 255;
+        }
+    
+        /**********DAC0 Enable******************/
+        SetBit(DAC_CR, DAC0_1EN);
+    }
+    #endif  //end Compare_Mode
+    SetBit(CMP_CR1, CMP3HYS);   // CMP3 Hysteresis voltage Disable
+    /*  ---------------------------------------------------------------------------------
+        触发硬件保护后硬件关闭驱动输出MOE配置
+        00--MOE不自动清零
+        01--MOE自动清零
+        ----------------------------------------------------------------------------------*/
+    ClrBit(EVT_FILT, MOEMD1);
+    SetBit(EVT_FILT, MOEMD0);
+    /*  ----------------------------------------------------------------------------------
+        母线电流保护时间滤波宽度
+        00-不滤波
+        01-6cpu clock
+        10-12cpu clock
+        11-24cpu clock
+        -----------------------------------------------------------------------------------*/
+    SetBit(EVT_FILT, EFDIV1);
+    SetBit(EVT_FILT, EFDIV0);
+    SetBit(CMP_CR1, CMP3EN);    //CMP3 Enable
+}
+
+/*****************************************************************************
+    Function      : CMP3_Interrupt_Init
+    Description   : CMP3中断配置
+    Input         : void
+    Output        : None
+    Return        :
+    Others        :
+    Record
+    1.Date        : 20190320
+     Author      : Bruce HW&RD
+     Modification: Created function
+
+*****************************************************************************/
+void CMP3_Interrupt_Init(void)
+{
+    ClrBit(CMP_SR, CMP3IF);
+    /*  ------------------------------------------------------------------------
+        比较器中断模式配置
+        00: 不产生中断
+        01: 上升沿产生中断
+        10: 下降沿产生中断
+        11: 上升/下降沿产生中断
+        ------------------------------------------------------------------------*/
+    ClrBit(CMP_CR0, CMP3IM1);
+    SetBit(CMP_CR0, CMP3IM0);
+    SetBit(IP3, PCMP31);
+    SetBit(IP3, PCMP30);    // 中断优先级别3
+}
+
+void CMP5_Init(void)
+{
+    SetBit(P1_AN, P13);                                 // CMP3
+    /*  -------------------------------------------------------------------------------------------------
+        电流保护时间滤波宽度
+        00-不滤波    01-4cpu clock    10-8cpu clock    11-16cpu clock
+        -------------------------------------------------------------------------------------------------*/
+    SetReg(PFC_CR0, CMP5DIV1 | CMP5DIV0, CMP5DIV0);     // 限流滤波选择10  330US
+    /**********使能DAC******************/
+    SetBit(DAC_CR, DAC2EN );
+    /**********设置DAC过流值*****************/
+    DAC2_DR = DAC_PFCOvercurrentValue;
+    /*比较器使能-------------------------------------------------------------------------------------*/
+    SetBit(CMP_CR4, CMP5EN);
+}
+
+

+ 24 - 29
User/source/Hardware/CRC.c → User/Hardware/CRC.c

@@ -11,7 +11,7 @@
 //    0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 0x59, 0x5a, 0x5b, 0x5c, 0x5d, 0x5e, 0x5f,
 //    0x60, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f,
 //    0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, 0x79, 0x7a, 0x7b, 0x7c, 0x7d, 0x7e, 0x7f,
-//	0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, 0x88, 0x89, 0x8a, 0x8b, 0x8c, 0x8d, 0x8e, 0x8f,
+//  0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, 0x88, 0x89, 0x8a, 0x8b, 0x8c, 0x8d, 0x8e, 0x8f,
 //    0x90, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97, 0x98, 0x99, 0x9a, 0x9b, 0x9c, 0x9d, 0x9e, 0x9f,
 //    0xA0, 0xA1, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, 0xa7, 0xa8, 0xa9, 0xaa, 0xab, 0xac, 0xad, 0xae, 0xaf,
 //    0xB0, 0xB1, 0xb2, 0xb3, 0xb4, 0xb5, 0xb6, 0xb7, 0xb8, 0xb9, 0xba, 0xbb, 0xbc, 0xbd, 0xbe, 0xbf,
@@ -22,7 +22,7 @@
 //};
 
 /****************************************************************************
-CRC16_CCITT_FALSE	纯软件C语言实现
+    CRC16_CCITT_FALSE   纯软件C语言实现
 ****************************************************************************/
 //unsigned short CRC16_CCITT_FALSE(unsigned char *puchMsg, unsigned int usDataLen)
 //{
@@ -30,47 +30,42 @@ CRC16_CCITT_FALSE	纯软件C语言实现
 //    unsigned short wCRCin = 0xFFFF;
 //    unsigned short wCPoly = 0x1021;
 //    unsigned char wChar = 0;
-//  
-//    while (usDataLen--) 	
+//
+//    while (usDataLen--)
 //    {
-//    	wChar = *(puchMsg++);
-//    	wCRCin ^= (wChar << 8);
-//    	for(i = 0;i < 8;i++)
-//    	{
-//    		if(wCRCin & 0x8000)
-//    			wCRCin = (wCRCin << 1) ^ wCPoly;
-//    		else
-//    			wCRCin = wCRCin << 1;
-//    	}
+//      wChar = *(puchMsg++);
+//      wCRCin ^= (wChar << 8);
+//      for(i = 0;i < 8;i++)
+//      {
+//          if(wCRCin & 0x8000)
+//              wCRCin = (wCRCin << 1) ^ wCPoly;
+//          else
+//              wCRCin = wCRCin << 1;
+//      }
 //    }
 //    return (wCRCin);
 //}
 
 
 /****************************************************************************
-CRC16_CCITT_FALSE	硬件实现
+    CRC16_CCITT_FALSE   硬件实现
 ****************************************************************************/
-unsigned short CRC_Check(unsigned char start_sector , unsigned char offset_sector)
+unsigned short CRC_Check(unsigned char start_sector, unsigned char offset_sector)
 {
     unsigned short crcresult = 0x0000;
-
     unsigned short tempH = 0x00;
     unsigned short tempL = 0x00;
-
-    SetBit(CRC_CR , CRCVAL);		//0-->0x0000  1-->0xffff
-    SetBit(CRC_CR , CRCDINI);		//1-->init success
-
-    CRC_BEG = start_sector;	    //起始扇区
-    CRC_CNT = offset_sector;	//扇区偏移量	0-->1个扇区
-
-    //1个空扇区-->0x41E8	 2个空扇区-->0x1634
-    //1个0xFF  -->0x5B2F	 0x00~0xFF-->0x3FBD
-    SetBit(CRC_CR , AUTOINT);		//自动计算使能
+    SetBit(CRC_CR, CRCVAL);         //0-->0x0000  1-->0xffff
+    SetBit(CRC_CR, CRCDINI);        //1-->init success
+    CRC_BEG = start_sector;     //起始扇区
+    CRC_CNT = offset_sector;    //扇区偏移量   0-->1个扇区
+    //1个空扇区-->0x41E8     2个空扇区-->0x1634
+    //1个0xFF  -->0x5B2F    0x00~0xFF-->0x3FBD
+    SetBit(CRC_CR, AUTOINT);        //自动计算使能
     /***************************************************/
-
-    SetBit(CRC_CR , CRCPNT);	
+    SetBit(CRC_CR, CRCPNT);
     tempH = CRC_DR;
-    ClrBit(CRC_CR , CRCPNT);	
+    ClrBit(CRC_CR, CRCPNT);
     tempL = CRC_DR;
     crcresult = (unsigned short)(tempH << 8) + tempL;
     return crcresult;

+ 288 - 0
User/Hardware/DMA.c

@@ -0,0 +1,288 @@
+#include "DMA.h"
+#include <FU68xx_5_DMA.h>
+
+
+//#define DMALENT 128
+
+unsigned char xdata sg_ucUartDbgData[DMALENT] = {0xaa, 0xbb};
+char                sg_cUartDataLen;
+unsigned char       sg_ucUartDataSum;
+
+void DMA0_XRAMToUART_Init(void)
+{
+    /* -----DMACFG2:DMACFG1: DMACFG0-->001  传输方向XRAMToUART----- */
+    SetReg(DMA0_CR0, DMAEN | DMACFG2 | DMACFG1 | DMACFG0 | DMAIE, DMACFG0 );  // DMAIE和DMACFG0为1
+    DMA0_LEN =  DMALENT;                                                                   // 设置传输长度为7,每传输7字节产生一次中断
+    DMA0_BA  =  (uint16)GetAddr_UARTDBG();                                                              // 设置RAM中的首地址
+    SetBit(DMA0_CR0, DMAEN);                                                         // 使能DMA1
+}
+
+/**
+    获取缓存区的地址
+
+    @return  缓存区地址
+*/
+unsigned char * GetAddr_UARTDBG(void)
+{
+    return &sg_ucUartDbgData;
+}
+
+
+/**
+    配置DMA
+
+    @param DMAx      DMA通道
+    @param DMAPipe   DMA管道,可选参数如下
+                        UART1_XDATA    UART1-->XDATA
+                        XDATA_UART1    UART1<--XDATA
+                        I2C_XDATA      I2C  -->XDATA
+                        XDATA_I2C      I2C  <--XDATA
+                        SPI_XDATA      SPI  -->XDATA
+                        XDATA_SPI      SPI  <--XDATA
+                        UART2_XDATA    UART2-->XDATA
+                        XDATA_UART2    UART2<--XDATA
+    @param DMAAddr   传输首地址,可取地址范围:0x0000~0x0317
+    @param DMALen    数据包大小(1~64)
+*/
+void Conf_DMA(uint8 DMAx, uint8 DMAPipe, uint16 DMAAddr, uint8 DMALen)
+{
+    Wait_DMA(DMAx);                                                   // 等待DMAx传输结束
+    ClrBit(*(&DMA0_CR0 + DMAx), DMAEN);                               // 禁止DMAx的传输
+    SetReg(*(&DMA0_CR0 + DMAx), DMA_PIPE, DMAPipe);                   // 设置DMAx的传输管道
+    *(&DMA0_LEN + DMAx) = DMALen - 1;                                 // 设置DMAx传输数量
+    *(&DMA0_BA + DMAx) = DMAAddr & 0x07ff;                           // 设置DMAx传输首地址
+}
+
+
+
+
+void SetPipe_DMA0(eType_DMA_PIPE ePipe)
+{
+    bool bTmp = false;
+    
+    if (ReadBit(DMA0_CR0, DMAEN))
+    {
+        bTmp = true;
+        
+        while (ReadBit(DMA0_CR0, DMABSY));
+        
+        ClrBit(DMA0_CR0, DMAEN);
+    }
+    
+    SetReg(DMA0_CR0, DMACFG2 | DMACFG1 | DMACFG0, ePipe);
+    
+    if (bTmp)
+    {
+        SetBit(DMA0_CR0, DMAEN);
+    }
+}
+
+void SetPipe_DMA1(eType_DMA_PIPE ePipe)
+{
+    bool bTmp = false;
+    
+    if (ReadBit(DMA1_CR0, DMAEN))
+    {
+        bTmp = true;
+        
+        while (ReadBit(DMA1_CR0, DMABSY));
+        
+        ClrBit(DMA1_CR0, DMAEN);
+    }
+    
+    SetReg(DMA1_CR0, DMACFG2 | DMACFG1 | DMACFG0, ePipe);
+    
+    if (bTmp)
+    {
+        SetBit(DMA1_CR0, DMAEN);
+    }
+}
+
+void SetDataPackage_DMA0(unsigned short ulAddr, char cLen)
+{
+    bool bTmp = false;
+    
+    if (ReadBit(DMA0_CR0, DMAEN))
+    {
+        bTmp = true;
+        
+        while (ReadBit(DMA0_CR0, DMABSY));
+        
+        ClrBit(DMA0_CR0, DMAEN);
+    }
+    
+    DMA0_LEN =  cLen;
+    DMA0_BA  =  ulAddr;
+    
+    if (bTmp)
+    {
+        SetBit(DMA0_CR0, DMAEN);
+    }
+}
+
+void SetDataPackage_DMA1(unsigned short ulAddr, char cLen)
+{
+    bool bTmp = false;
+    
+    if (ReadBit(DMA1_CR0, DMAEN))
+    {
+        bTmp = true;
+        
+        while (ReadBit(DMA1_CR0, DMABSY));
+        
+        ClrBit(DMA1_CR0, DMAEN);
+    }
+    
+    DMA1_LEN = cLen;
+    DMA1_BA  = ulAddr;
+    
+    if (bTmp)
+    {
+        SetBit(DMA1_CR0, DMAEN);
+    }
+}
+
+void SetEndian_DMA(eType_DMA_Endian eEndian)
+{
+    bool bTmp = false, bTmp1;
+    
+    if (ReadBit(DMA0_CR0, DMAEN))
+    {
+        bTmp = true;
+        
+        while (ReadBit(DMA0_CR0, DMABSY));
+        
+        ClrBit(DMA0_CR0, DMAEN);
+    }
+    
+    if (ReadBit(DMA1_CR0, DMAEN))
+    {
+        bTmp1 = true;
+        
+        while (ReadBit(DMA1_CR0, DMABSY));
+        
+        ClrBit(DMA1_CR0, DMAEN);
+    }
+    
+    SetReg(DMA0_CR0, ENDIAN, eEndian);
+    
+    if (bTmp)
+    {
+        SetBit(DMA0_CR0, DMAEN);
+    }
+    
+    if (bTmp1)
+    {
+        SetBit(DMA1_CR0, DMAEN);
+    }
+}
+
+void SetIRQ_DMA(ebool eIRQ, eType_DMA_IRQ eIP)
+{
+    SetReg(DMA0_CR0, DMAIE, eIRQ ? DMAIE : 0);
+    
+    if (!EA)
+    {
+        EA = 1;
+    }
+    
+    if (eIRQ)
+    {
+        SetReg(IP1, PDMA1 | PDMA0, eIP);
+    }
+}
+
+void SetDbgMod_DMA(void)
+{
+    bool bTmp = false;
+    
+    if (ReadBit(DMA1_CR0, DMAEN))
+    {
+        bTmp = true;
+        
+        while (ReadBit(DMA1_CR0, DMABSY));
+        
+        ClrBit(DMA1_CR0, DMAEN);
+    }
+    
+    SetBit(DMA1_CR0, DBGEN);
+    SetBit(DMA1_CR0, ((eType_DMA_PIPE)DRAM_SPI));
+    DMA1_LEN = 4;
+    
+    if (bTmp)
+    {
+        SetBit(DMA1_CR0, DMAEN);
+    }
+}
+
+/**
+    设置DMA1的DBG模式
+
+    @param Addr   要DBG输出的地址
+*/
+uint16 xdata spidebug[4] = { 0 };
+void Set_DBG_DMA(uint16 DMAAddr)
+{
+    //  SPI_Init();
+    ClrBit(DMA1_CR0, DMAEN);                                // 禁止DMA1传输
+    SetBit(DMA1_CR0, DBGEN | DRAM_SPI);                     // 设置DMA1使用DBG模式,XDATA发送数据到SPI
+    
+    if (!ReadBit(DMAAddr, 0x4000))
+    {
+        SetBit(DMA1_CR0, DBGSW);    //根据DMAAddr判断是否在XRAM区,如果是则开启DBGSW
+    }
+    
+    DMA1_LEN = 7;                                           // 设置DMA1发送数量为8
+    //      DMA1_BA = (uint16)spidebug & 0x07ff;
+    DMA1_BA = DMAAddr & 0x07ff;                             // 设置DMA1发送首地址
+    SetBit(*(&DMA0_CR0 + 1), DMAEN | DMABSY);
+    //    Switch_DMA(1);                                       // 启动DMA1
+}
+
+
+void SetDbgData_DMA(unsigned short ulAddr)
+{
+    bool bTmp = false;
+    
+    if (ReadBit(DMA1_CR0, DMAEN))
+    {
+        bTmp = true;
+        
+        while (ReadBit(DMA1_CR0, DMABSY));
+        
+        ClrBit(DMA1_CR0, DMAEN);
+    }
+    
+    if (ulAddr <= 0xfff)
+    {
+        ulAddr += 0x70000000;
+    }
+    
+    DMA1_BA = ulAddr;
+    
+    if (bTmp)
+    {
+        SetBit(DMA1_CR0, DMAEN);
+    }
+}
+
+void EnableRun_DMA0(void)
+{
+    SetBit(DMA0_CR0, DMAEN | DMABSY);
+}
+
+void EnableRun_DMA1(void)
+{
+    SetBit(DMA1_CR0, DMAEN | DMABSY);
+}
+
+bool GetStatus_DMA0(eType_DMA_Statu eStatu)
+{
+    return ReadBit(DMA0_CR0, eStatu);
+}
+
+bool GetStatus_DMA1(eType_DMA_Statu eStatu)
+{
+    return ReadBit(DMA1_CR0, eStatu);
+}
+

+ 91 - 0
User/Hardware/DRIVER.c

@@ -0,0 +1,91 @@
+/********************************************************************************
+
+ **** Copyright (C), 2019, Fortior Technology Co., Ltd.                      ****
+
+ ********************************************************************************
+    File Name     : DRIVER.c
+    Author        : Bruce HW&RD
+    Date          : 2019-03-29
+    Description   : .C file function description
+    Version       : 1.0
+    Function List :
+
+    Record        :
+    1.Date        : 2019-03-29
+     Author      : Bruce HW&RD
+     Modification: Created file
+
+********************************************************************************/
+#include "AddFunction.h"
+#include "Driver.h"
+#include "Parameter.h"
+#include "customer.h"
+#include "FU68xx_5_MCU.h"
+
+/*****************************************************************************
+    Function      : Driver_Init
+    Description   : Driver初始化
+    Input         : void
+    Output        : None
+    Return        :
+    Others        :
+    Record
+    1.Date        : 20190329
+     Author      : Bruce HW&RD
+     Modification: Created function
+
+*****************************************************************************/
+void Driver_Init(void)
+{
+    DRV_ARR = PWM_VALUE_LOAD ;      // 载波频率的周期值
+    DRV_DTR = PWM_LOAD_DEADTIME;    // 死区时间
+    DRV_DR  = 0;
+    DRV_CMR = 0x0abf;              //UH/VH/WH UL/VL/WL 互补
+    DRV_OUT = 0x00;                //空闲电平,默认高电平有效
+    /*驱动有效电平和空闲电平*/
+    #if (PWM_Level_Mode == High_Level)
+    {
+        ClrBit(PI_CR, HINV);   // 反相关闭
+        ClrBit(PI_CR, LINV);   // 反相关闭
+    }
+    #elif (PWM_Level_Mode == Low_Level)
+    {
+        SetBit(PI_CR, HINV);   // 反相打开
+        SetBit(PI_CR, LINV);   // 反相打开
+    }
+    #elif (PWM_Level_Mode == UP_H_DOWN_L)
+    {
+        ClrBit(PI_CR, HINV);   // 反相关闭
+        SetBit(PI_CR, LINV);   // 反相打开
+    }
+    #elif (PWM_Level_Mode == UP_L_DOWN_H)
+    {
+        SetBit(PI_CR, HINV);   // 反相打开
+        ClrBit(PI_CR, LINV);   // 反相关闭
+    }
+    #endif //end PWM_Level_Mode
+    //    SetBit(DRV_SR , FGIE);  //FG中断使能          0-->Disable     1-->Enable
+    /*清中断标志位,使能中断,配置比较值,设置中断优先级*/
+    ClrBit(DRV_SR, DCIF);   //清除DRV中断标志位
+    /**************************************************
+        DRV比较匹配中断模式
+        当计数值等于DRV_COMR时,根据DCIM的设置判断是否产生中断标记
+        00:不产生中断        01:上升方向
+        10:下降方向         11:上升/下降方向
+    *************************************************/
+    SetBit(DRV_SR, DCIM1);
+    ClrBit(DRV_SR, DCIM0);
+    /*设置DRV计数器的比较匹配值,当DRV计数值与COMR相等时,根据DRV_SR寄存器的DCIM是否产生比较匹配事件*/
+    DRV_COMR = (PWM_VALUE_LOAD >> 3);
+    SetBit(IP0, PDRV1);
+    SetBit(IP0, PDRV0);
+    ClrBit(DRV_SR, DCIP);   //0-->1个计数周期产生中断  1-->2个计数周期产生中断
+    ClrBit(DRV_CR, FOCEN);
+    /*  MESEL为0,ME模块工作在BLDC模式
+        MESEL为1,ME模块工作在FOC/SVPWM/SPWM模式*/
+    SetBit(DRV_CR, MESEL);
+    SetBit(DRV_CR, DRVEN);  //计数器使能       0-->Disable     1-->Enable
+    ClrBit(DRV_CR, DRPE);   //计数器比较值预装载使能 0-->Disable             1-->Enable
+    SetBit(DRV_CR, DRVOE);  //Driver输出使能0-->Disable     1-->Enable
+}
+

+ 133 - 0
User/Hardware/GPIO.c

@@ -0,0 +1,133 @@
+/********************************************************************************
+
+ **** Copyright (C), 2020, Fortior Technology Co., Ltd.                      ****
+
+ ********************************************************************************
+    File Name     : GPIO.c
+    Author        : Bruce HW&RD
+    Date          : 2020-10-15
+    Description   : .C file function description
+    Version       : 1.0
+    Function List :
+
+    Record        :
+    1.Date        : 2020-10-15
+     Author      : Bruce HW&RD
+     Modification: Created file
+
+********************************************************************************/
+
+#include "FU68xx_5.h"
+#include <Myproject.h>
+
+void GPIO_Init(void)
+{
+    SetBit(P4_OE, P42); //电子膨胀阀驱动IO-A  P4_OE = P42;
+    GP42 = 0;
+    /*交流风机--输出*/
+    //    GP44 = 0;
+    SetBit(P4_OE, P44); //电子膨胀阀驱动IO-A  P4_OE = P42;??
+    GP44 = 0;
+    /*继电器相关 --  输出*/
+    /*PTC_RELAY*/
+    //    GP51 = 0;
+    SetBit(P5_OE, P51);
+    GP51 = 0;
+    /*DJR*/
+    //      GP04 = 0;
+    SetBit(P0_OE, P04);
+    SetBit(P0_PU, P04);
+    GP04 = 0;
+    /*4WAY*/
+    //      GP01 = 0;
+    SetBit(P0_OE, P01);
+    GP01 = 0;
+    SetBit(P0_OE, P07); //电子膨胀阀驱动IO-D  P0_OE = P07;
+    GP07 = 0;
+    SetBit(P0_OE, P00); //电子膨胀阀驱动IO-D  P0_OE = P07;
+    GP00 = 0;
+    SetBit(P1_OE, P10); //电子膨胀阀驱动IO-C  P1_OE = P10;
+    GP10 = 0;
+    SetBit(P4_OE, P41); //电子膨胀阀驱动IO-B  P4_OE = P41;
+    GP41 = 0;
+    SetBit(P1_OE, P11); //电子膨胀阀驱动IO-C  P1_OE = P10;
+    GP11 = 0;
+    /*LED*/
+    //      GP22 = 0;
+    SetBit(P0_OE, P03);
+    GP03 = 0;
+}
+
+
+
+
+
+/*****************************************************************************
+    Function      : INT0_Init
+    Description   : INT0初始化
+    Input         : void
+    Output        : None
+    Return        :
+    Others        :
+    Record
+    1.Date        : 20201015
+     Author      : Bruce HW&RD
+     Modification: Created function
+
+*****************************************************************************/
+void INT0_Init(void)
+{
+    /*EXTI Input Pin 配置 ---------------------------------------- */
+    ClrBit(P0_OE, PIN2);   // config P00 as input,配置P0.0为硬件过流FO端口
+    ClrBit(P0_PU, PIN2);   // 0:disable pull up, 1:enable P10 pull up
+    SetReg(LVSR, EXT0CFG0 | EXT0CFG1 | EXT0CFG2, EXT0CFG1);   //外部中断0配置
+    IF0  = 0; // clear P00 interrupt flag
+    // 00: rising edge interrupt,01: failing edge interrupt,1x: edge-change mode interrupt
+    IT01 = 0;
+    IT00 = 1;
+    SetBit(EVT_FILT, INT0_MOE_EN);  //INT0中断关闭MOE使能
+    /*  ----------------------------------------------------------------------------------
+        母线电流保护时间滤波宽度
+        00-不滤波
+        01-6cpu clock
+        10-12cpu clock
+        11-24cpu clock
+        -----------------------------------------------------------------------------------*/
+    SetBit(EVT_FILT, EFDIV1);
+    ClrBit(EVT_FILT, EFDIV0);
+    /*  ---------------------------------------------------------------------------
+        外部中断优先级配置及芯片中断总使能
+        PX01-PX00,中断优先级控制值从0-3依次表示优先级从最低到最高,共4级优化级控制
+        EX0,外部中断0使能
+        EA,芯片中断总使能
+        外部中断是否有滤波的配置,决定于选择硬件保护触发信号源,外部中断0或者比较器3中断。
+        若选择了比较器3中断,则外部中断无法进行滤波配置
+        --------------------------------------------------------------------------*/
+    SetBit(IP0, PX01); //优先级
+    SetBit(IP0, PX00);
+    EX0 = 1;        // 使能外部中断0, POO位外部中断输入硬件
+    EA = 1;         // 使能全局中断
+}
+
+void INT1_Init(void)
+{
+    ClrBit(P1_OE, P12);  // config P11 as input
+    ClrBit(P1_PU, P12);  // diasable P11 Pull Up
+    SetBit(P1_IE, P12);  // config P11 as input
+    ClrBit(P1_IF, P12);
+    IT11 = 0;
+    IT10 = 1;                               // 00: rising edge interrupt,01: failing edge interrupt,1x: edge-change mode interrupt
+    SetBit(IP0, PX11); //优先级
+    SetBit(IP0, PX10);
+    EX1 = 1;                                // 使能外部中断1, P11位外部中断输入硬件
+}
+
+/*Value--定时时间,单位ms,最小定时时间8ms,最大定时1800ms*/
+void WatchDogConfig(uint32 value, uint8 Status)
+{
+    SetReg(CCFG1, WDT_EN, (Status ? WDT_EN : 0x00));
+    WDT_ARR = ((uint16)(65532 - value * 32768 / 1000) >> 8);
+    ClrBit(WDT_CR, WDTF);
+    SetBit(WDT_CR, WDTRF);
+}
+

+ 80 - 0
User/Hardware/I2C.c

@@ -0,0 +1,80 @@
+/********************************************************************************
+
+ **** Copyright (C), 2019, Fortior Technology Co., Ltd.                      ****
+
+ ********************************************************************************
+    File Name     : I2C.c
+    Author        : Bruce HW&RD
+    Date          : 2019-03-27
+    Description   : .C file function description
+    Version       : 1.0
+    Function List :
+
+    Record        :
+    1.Date        : 2019-03-27
+     Author      : Bruce HW&RD
+     Modification: Created file
+
+********************************************************************************/
+
+#include "I2C.h"
+
+/*
+    void I2C_Init_Master(void)
+    {
+    SetBit(P0_PU , P00);
+    SetBit(P0_PU , P01);
+    // I2C initial
+    SetBit(I2C_CR , I2CMS);     //主从模式选择    0-->Slave Mode  1-->Host Mode
+    ClrBit(I2C_CR , I2CSPD1);   //00-->100kHz       01-->400kHz
+    SetBit(I2C_CR , I2CSPD0);   //10-->1MHz         11-->RSV
+    ClrBit(I2C_CR , I2CIE);     //中断使能         0-->Disable 1-->Enable
+    I2C_ID = 0xD0;
+    SetBit(I2C_ID , GC);    //广播呼叫使能    0-->Disable 1-->Enable
+    SetBit(I2C_CR , I2CEN); //I2C使能     0-->Disable 1-->Enable
+    }
+
+    void I2C_ID_Start(bool rw)
+    {
+    if(rw)
+        SetBit(I2C_SR , DMOD);
+    else
+        ClrBit(I2C_SR , DMOD);
+    SetBit(I2C_SR , I2CSTA);    //1-->发送START或RESTART和地址字节
+    while(!ReadBit(I2C_SR , STR));
+    ClrBit(I2C_SR , STR);
+    }
+
+    void I2C_Addr_Write(unsigned char addr,unsigned char wdata)
+    {
+    I2C_ID_Start(0);    // ID write
+
+    I2C_DR = addr;      // Slave reg addr.
+    while(!ReadBit(I2C_SR , STR));
+    ClrBit(I2C_SR , STR);
+
+    I2C_DR = wdata;     // Slave reg data.
+    while(!ReadBit(I2C_SR , STR));
+    ClrBit(I2C_SR , STR);
+    SetBit(I2C_SR , I2CSTP);    //1-->发送STOP
+    }
+
+    unsigned char I2C_Addr_Read(char addr)
+    {
+    unsigned char rd_data;
+    //write process
+    I2C_ID_Start(0);  // write+ID
+    I2C_DR = addr;   // write reg. addr
+    while(!ReadBit(I2C_SR , STR));
+    ClrBit(I2C_SR , STR);
+    //    SetBit(I2C_SR , I2CSTP);  //1-->发送STOP
+
+    //read process
+    I2C_ID_Start(1);  // read+ID
+    while(!ReadBit(I2C_SR , STR));
+    ClrBit(I2C_SR , STR);
+    rd_data = (unsigned char)(I2C_DR); // read data
+    SetBit(I2C_SR , NACK);      //第9位发送NACK
+    SetBit(I2C_SR , I2CSTP);    //1-->发送STOP
+    return(rd_data);
+    }*/

+ 17 - 18
User/source/Hardware/PIInit.c → User/Hardware/PIInit.c

@@ -3,17 +3,17 @@
  **** Copyright (C), 2020, Fortior Technology Co., Ltd.                      ****
 
  ********************************************************************************
- * File Name     : PIInit.c
- * Author        : Bruce HW&RD
- * Date          : 2020-10-16
- * Description   : .C file function description
- * Version       : 1.0
- * Function List :
- * 
- * Record        :
- * 1.Date        : 2020-10-16
- *   Author      : Bruce HW&RD
- *   Modification: Created file
+    File Name     : PIInit.c
+    Author        : Bruce HW&RD
+    Date          : 2020-10-16
+    Description   : .C file function description
+    Version       : 1.0
+    Function List :
+
+    Record        :
+    1.Date        : 2020-10-16
+     Author      : Bruce HW&RD
+     Modification: Created file
 
 ********************************************************************************/
 
@@ -36,33 +36,32 @@ void PI_Init(void)
     PI0_UKMIN = SOUTMIN;
     PI0_UKH = 0;
     PI0_UKL = 0;
-    
     PI1_KP = FiledWeakenKp;
     PI1_KI = FiledWeakenKi;
     PI1_EK = 0;
     PI1_EK1 = 0;
     PI1_UKMAX =  0;//mcFieldWeakenPID.outMax;
-    PI1_UKMIN =  _Q15((float)-35.0 / 180.0) ;//  mcFieldWeakenPID.outMin;
+    PI1_UKMIN =  _Q15((float) -35.0 / 180.0) ; //  mcFieldWeakenPID.outMin;
     PI1_UKH = 0;
-    PI1_UKL = 0;   
+    PI1_UKL = 0;
 }
 
 void PI2_Init(void)
 {
     PI2_KP = fengSKP;
     PI2_KI = fengSKI;
-	  PI2_KD=0;
+    PI2_KD = 0;
     PI2_EK = 0;
     PI2_EK1 = 0;
-		PI2_EK2 =0 ;
+    PI2_EK2 = 0 ;
     PI2_UKMAX = 1000;
     PI2_UKMIN = 1;
     PI2_UKH = 0;
-    PI2_UKL = 0;  
+    PI2_UKL = 0;
 }
 int16 PI_realize(int16 speed)
 {
     PI0_EK = speed;
-    SMDU_RunBlock(0 , 7);   //调用MDU运算单元0中的PI模式(7)
+    SMDU_RunBlock(0, 7);    //调用MDU运算单元0中的PI模式(7)
     return PI0_UKH;
 }

+ 75 - 0
User/Hardware/SPI.c

@@ -0,0 +1,75 @@
+/********************************************************************************
+
+ **** Copyright (C), 2020, Fortior Technology Co., Ltd.                      ****
+
+ ********************************************************************************
+    File Name     : SPI.c
+    Author        : Bruce HW&RD
+    Date          : 2020-10-15
+    Description   : .C file function description
+    Version       : 1.0
+    Function List :
+
+    Record        :
+    1.Date        : 2020-10-15
+     Author      : Bruce HW&RD
+     Modification: Created file
+
+********************************************************************************/
+
+#include "SPI.h"
+#include "FU68xx_5_MCU.h"
+
+/*****************************************************************************
+    Function      : SPI_Init
+    Description   : SPI初始化
+    Input         : void
+    Output        : None
+    Return        :
+    Others        :
+    Record
+    1.Date        : 20190402
+     Author      : Bruce HW&RD
+     Modification: Created function
+
+*****************************************************************************/
+void SPI_Init(void)
+{
+    ClrBit(SPI_CR1, SPIEN); // 0,disable SPI;1 enable
+    /*  -------------------------------------------------------------------------------------------------
+        SPI管脚配置
+        1、禁止UART复用,P06配置为MISO,P05配置为MOSI
+        2、禁止比较器输出复用,P07配置为SCLK
+        -------------------------------------------------------------------------------------------------*/
+    ClrBit(PH_SEL, UART1EN); // 0,P06 as GPIO or SPI_MISO,P05 as GPIO or SPI_MOSI;1,P06 and p07 as USART
+    ClrBit(PH_SEL1, SPICT);  // 0:P05/P06 1:P00/P01
+    /*  -------------------------------------------------------------------------------------------------
+        SPI时钟相位/极性配置
+        CPHA = 0, CPOL = 0:上升沿接收,下降沿发送,空闲电平为低
+        CPHA = 0, CPOL = 1:上升沿发送,下降沿接收,空闲电平为高
+        CPHA = 1, CPOL = 0:上升沿发送,下降沿接收,空闲电平为低
+        CPHA = 1, CPOL = 1:上升沿接收,下降沿发送,空闲电平为高
+        -------------------------------------------------------------------------------------------------*/
+    SetReg(SPI_CR0, CPHA | CPOL, CPOL);
+    /*  -------------------------------------------------------------------------------------------------
+        SPI从方式选择配置
+        00:3线从方式或3线主方式,NSS信号不连到端口管脚
+        01:4线从方式或4线多主方式,NSS配置为输入
+        1x:4线单主方式,NSS配置为输出,NSS信号输出x电平
+        -------------------------------------------------------------------------------------------------*/
+    //  SetReg(SPI_CR1 , NSSMOD0 | NSSMOD1 , NSSMOD0 | NSSMOD1);    //三线DBG模式
+    SetReg(SPI_CR1, NSSMOD0 | NSSMOD1, NSSMOD0 | NSSMOD1);  // 11:三线制     01:单线制(P05)
+    SetBit(SPI_CR0, SPIMS);                         // 0:Slave, 1:Master
+    /*  -------------------------------------------------------------------------------------------------
+        SPI中断配置
+        SPIF:SPI字节传输完成中断标志,硬件置位,软件清零
+        WCOL:SPI写冲突中断(发送缓冲器非空时写操作),硬件置位,软件清零
+        MODF:SPI方式错误中断(多主方式NSS被拉低,MSTEN和SPIEN被清零)硬件置位,软件清零
+        RXOVRN:SPI接收溢出中断(SPI接收缓冲器接收溢出),硬件置位,软件清零
+        -------------------------------------------------------------------------------------------------*/
+    SetReg(SPI_CR1, SPIIF | WCOL | MODF | RXOVRN, 0x00); // SPI所有中断清除
+    SPIIE = 0;                                  // SPI中断使能
+    SPI_CLK = 0;        // Fspi = Fcpu / (2*(SPI_CLK + 1)) = 6MHz
+    SetBit(SPI_CR1, SPIEN);                     // Enable SPI
+}
+

+ 70 - 0
User/Hardware/TIMER.c

@@ -0,0 +1,70 @@
+#include "TIMER.h"
+#include "FU68xx_5_MCU.h"
+
+void Timer2_Init(void)
+{
+    SetBit(PH_SEL, T2SEL);      //P10
+    SetBit(PH_SEL, T2SSEL);     //P07
+    ClrBit(TIM2_CR0, T2PSC2);   //计数器时钟分频选择
+    ClrBit(TIM2_CR0, T2PSC1);   //000-->24M     001-->12M       010-->6M    011-->3M
+    ClrBit(TIM2_CR0, T2PSC0);   //100-->1.5M    101-->750K      110-->375K  111-->187.5K
+    ClrBit(TIM2_CR0, T2OCM);
+    SetBit(TIM2_CR0, T2IRE);    //比较匹配中断/脉宽检测中断0-->Disable  1-->Enable
+    ClrBit(TIM2_CR0, T2CES);
+    ClrBit(TIM2_CR1, T2IPE);    //输入Timer PWM周期检测中断使能 0-->Disable  1-->Enable
+    ClrBit(TIM2_CR1, T2IFE);    //计数器上溢中断使能 0-->Disable  1-->Enable
+    ClrBit(TIM2_CR1, T2FE);     //输入噪声滤波使能,小于4个时钟周期脉宽滤除
+    ClrBit(TIM2_CR1, T2DIR);    //QEP&ISD&步进模式专用:当前的方向 0-->正向   1-->反向
+    TIM2__DR = 1200;
+    TIM2__ARR = 2400;
+    ClrBit(TIM2_CR0, T2MOD1);   //00-->输入Timer模式            01-->输出模式
+    SetBit(TIM2_CR0, T2MOD0);   //10-->输入Counter模式          11-->QEP&ISD&步进模式
+    SetBit(TIM2_CR1, T2CEN);    //TIM2使能    0-->Disable  1-->Enable
+}
+
+void Timer3_Init(void)
+{
+    SetBit(PH_SEL, T3SEL);      //Timer3端口使能
+    ClrBit(PH_SEL1, T3CT0);      //默认端口为P11,功能转移后为P01,需TIMER4转移到P00
+    ClrBit(PH_SEL1, T3CT1);      //默认端口为P11,功能转移后为P01,需TIMER4转移到P00
+    ClrBit(TIM3_CR0, T3PSC2);     //计数器时钟分频选择
+    SetBit(TIM3_CR0, T3PSC1);     //000-->24M     001-->12M       010-->6M    011-->3M
+    SetBit(TIM3_CR0, T3PSC0);     //100-->1.5M    101-->750K      110-->375K  111-->187.5K
+    //    SetReg(TIM3_CR0 , T3PSC2 | T3PSC1 | T3PSC0 , T3PSC2 | T3PSC1 | T3PSC0);
+    SetBit(TIM3_CR0, T3OCM);
+    ClrBit(TIM3_CR0, T3IRE);    //比较匹配中断/脉宽检测中断0-->Disable  1-->Enable
+    ClrBit(TIM3_CR0, T3OPM);    //0-->计数器不停止        1-->单次模式
+    ClrBit(TIM3_CR1, T3IPE);    //输入Timer PWM周期检测中断使能 0-->Disable  1-->Enable
+    ClrBit(TIM3_CR1, T3IFE);    //计数器上溢中断使能 0-->Disable  1-->Enable
+    ClrBit(TIM3_CR1, T3NM1);    //输入噪声脉宽选择
+    SetBit(TIM3_CR1, T3NM0);    //00-->不滤波    01-->4cycles    10-->8cycles  11-->16cycles
+    SetBit(TIM3_CR0, T3MOD);    //0-->Timer模式       1-->输出模式
+    TIM3__CNTR = 0;
+    TIM3__DR = 0;           //分子,给定输出PWM占空比
+    TIM3__ARR = 1000;     //分母周期值,给定输出PWM周期,频率1000  3k   2000  1.5k
+    SetBit(TIM3_CR1, T3EN);     //TIM3使能    0-->Disable  1-->Enable
+}
+
+void Timer4_Init(void)
+{
+    ClrBit(TIM4_CR1, T4EN);     //0-停止计数;1-使能计数
+    SetBit(PH_SEL,  T4SEL);         //Timer4端口使能
+    SetBit(PH_SEL1, T4CT0);         //默认端口为P01,功能转移后为P00
+    SetBit(PH_SEL1, T4CT1);       //默认端口为P01,功能转移后为P00
+    SetBit(TIM4_CR0, T4PSC2);     //计数器时钟分频选择
+    SetBit(TIM4_CR0, T4PSC1);     //000-->24M     001-->12M       010-->6M    011-->3M
+    ClrBit(TIM4_CR0, T4PSC0);     //100-->1.5M    101-->750K      110-->375K  111-->187.5K
+    SetBit(TIM4_CR0, T4OCM);
+    ClrBit(TIM4_CR0, T4IRE);    //比较匹配中断/脉宽检测中断0-->Disable  1-->Enable
+    ClrBit(TIM4_CR0, T4OPM);    //0-->计数器不停止        1-->单次模式
+    //    ClrBit(TIM4_CR1, T4IR | T4IF | T4IP); // 清除中断标志位
+    ClrBit(TIM4_CR1, T4IPE);    //输入Timer PWM周期检测中断使能 0-->Disable  1-->Enable
+    ClrBit(TIM4_CR1, T4IFE);    //计数器上溢中断使能 0-->Disable  1-->Enable
+    ClrBit(TIM4_CR1, T4NM1);    //输入噪声脉宽选择
+    ClrBit(TIM4_CR1, T4NM0);    //00-->不滤波    01-->4cycles  10-->8cycles  11-->16cycles
+    ClrBit(TIM4_CR0, T4MOD);    //0-->Timer模式  1-->输出模式
+    TIM4__CNTR = 0;
+    TIM4__DR = 0;
+    TIM4__ARR = 0;
+    SetBit(TIM4_CR1, T4EN);     //TIM4使能    0-->Disable  1-->Enable
+}

+ 461 - 0
User/Hardware/UART.c

@@ -0,0 +1,461 @@
+/********************************************************************************
+
+ **** Copyright (C), 2019, Fortior Technology Co., Ltd.                      ****
+
+ ********************************************************************************
+    File Name     : UART.c
+    Author        : Bruce HW&RD
+    Date          : 2019-09-11
+    Description   : .C file function description
+    Version       : 1.0
+    Function List :
+
+    Record        :
+    1.Date        : 2019-09-11
+     Author      : Bruce HW&RD
+     Modification: Created file
+
+********************************************************************************/
+#include "FU68xx_5.h"
+#include <Myproject.h>
+
+//MCUART   xdata  Uart;
+ddatet1  xdata  DATA1;
+DATE_HUI xdata  DATA2_Hui;
+
+uint8   FaultCommuMonCt = 0;
+
+extern int8 xdata UART1_RX_flag;
+extern int8 xdata UART1_TX_flag;
+extern int8 xdata  UART1_Rec_S;
+extern int8 UART1_rx_rat_time, UART1_rx_count;
+extern uint8 xdata UART1_In_L, UART1_In_H;    //
+extern int8  xdata UART1_Rx_dat[12];//Á¬ÊÕ8×Ö½Ú
+
+void UART2_Init(void)
+{
+    uint16  bps = 0;
+    #if (Uart_COMMUNICATION==0)
+    {
+        bps = 1200;
+    }
+    #elif (Uart_COMMUNICATION==1)
+    {
+        bps = 9600;
+    }
+    #endif
+    SetBit(PH_SEL, UART2EN);
+    /*  UART模式 UT2_MOD1,UT2_MOD0为:
+        00  模式0,移位寄存器波特率为 系统时钟 /12
+        01  模式1,8-bit UART 波特率为 fcpu_clk / ( (16 / (1+ UT2_BAUD[BAUD2_SEL]) ) / (UT2_BAUD+1) )
+        10  模式2,9-bit UART 波特率为 fcpu_clk / ( 32 – 16* UT2_BAUD[BAUD2_SEL])
+        11  模式3,9-bit UART 波特率为 fcpu_clk / ( (16 / (1+ UT2_BAUD[BAUD2_SEL])) / (UT2_BAUD+1) )   */
+    UT2MOD1 = 0;                // 9位模式    01
+    UT2MOD0 = 1;
+    /* Does not allow multi-thread cpu operation */
+    /* UT2_SM2 为 0 - 单机通讯为 1 - 多机通讯 */
+    UT2SM2 = 0;
+    /* UT2_REN 为 0 - 禁止接收为 1 - 使能接收 */
+    UT2REN = 1;
+    UT2RI = 0;
+    /* Uart2设置中断优先级 */
+    SetBit(IP3, PSPI_UT21);
+    ClrBit(IP3, PSPI_UT20);
+    // UART2CH1, UART2CH0
+    // 00:P3.6 为 RXD、P3.7 为 TXD(P3.6 为单线模式的输入输出)
+    // 01:P4.7 为 RXD、P1.2 为 TXD(P1.2 为单线模式的输入输出)
+    // 1X:P0.1 为 RXD、P0.0 为 TXD(P0.1 为单线模式的输入输出)
+    ClrBit(PH_SEL1, UART2CH1);
+    ClrBit(PH_SEL1, UART2CH0);
+    // 设置波特率 根据 fcpu_clk / ( (16 / (1+ UT2_BAUD[BAUD2_SEL]) ) / (UT2_BAUD+1) )计算
+    UT2_BAUD = 0;
+    //    if (bps > 600)
+    {
+        UT2_BAUD |= 1500000 / bps - 1;
+    }
+    //    else
+    //    {
+    //        SetBit(UT2_BAUD,BAUD2_SEL);
+    //
+    //        UT2_BAUD |= 750000 / bps - 1;
+    //    }
+    /* Enable UART2 interrupt */
+    SetBit(UT2_BAUD, UART2IEN);
+}
+
+void UART1_Init(void)
+{
+    #if (Debugg==1)
+    {
+        /*工具程序*/
+        /*工具*/
+        SetBit(PH_SEL, UART1EN);     //p0[6]as UART_RXD; p0[5]as UART_TXD
+        UT_MOD1 = 0;
+        UT_MOD0 = 1;                //8bit?????UART??
+        SM2 = 0;                    //??Mode2?Mode3????
+        REN = 1;                    //????
+        ES0 = 0;                    //????
+        SetBit(IP3, PI2C_UT11);
+        ClrBit(IP3, PI2C_UT10);    // 中断优先级别3
+        //                  SetBit(UT_BAUD , UART_2xBAUD);  //????0-->Disable  1-->Enable
+        UT_BAUD = 0x9B;             //default baudrate:9600-0x9b,1200-0x4E1  00  150000      1D =50000
+        ES0 = 1;                    //??/??????
+        
+    }
+    #else
+    {
+        //    /*自己串口*/
+        SetBit(PH_SEL, UART1EN);     //p0[6]as UART_RXD; p0[5]as UART_TXD
+        UT_MOD1 = 0;
+        UT_MOD0 = 1;                //8bit?????UART??
+        SM2 = 0;                    //??Mode2?Mode3????
+        REN = 1;                    //????
+        ES0 = 0;                    //????
+        ClrBit(IP3, PI2C_UT11);
+        ClrBit(IP3, PI2C_UT10);    // 中断优先级别3
+        SetBit(UT_BAUD, UART_2xBAUD);   //????0-->Disable  1-->Enable
+        UT_BAUD = 0x00;             //default baudrate:9600-0x9b,1200-0x4E1  00  150000      1D =50000
+        ES0 = 0;                    //??/??????
+    }
+    #endif
+}
+
+char putchar(char c)
+{
+    UT_DR = c;
+    
+    while (TI == 0) {}; TI = 0;
+    
+    return c;
+}
+
+/*  P是PSW程序状态字的一个位,表示奇偶校验位:它用来表示ALU运算结果中二进制数位“1”的个数的奇偶性。
+    若为奇数,则P=1,否则为0。 运算结果有奇数个1,P=1;运算结果有偶数个1,P=0。*/
+//奇校验(odd parity):让传输的数据(包含校验位)中1的个数为奇数。
+//偶校验(even parity):让传输的数据(包含校验位)中1的个数为偶数。
+
+
+//  Buf  校验的数据  o_or_e   奇偶方式选择
+
+uint8 even_or_odd(uint8 Buf, uint8 o_or_e)
+{
+    uint8  even_odd = 0, tmpP = 0;
+    ACC  = Buf;
+    tmpP = P;
+    
+    if (o_or_e == 0)      //偶校验
+    {
+        even_odd = (tmpP == 1) ? 1 : 0;
+    }
+    else                 //奇校验
+    {
+        even_odd = (tmpP == 1) ? 0 : 1;
+    }
+    
+    return even_odd;
+}
+
+#if (Uart_Select==Uart_MoNi)
+
+/*数据接收函数*/
+void UartRecive(void)
+{
+    Uart.UartReadTemp = RX_BUF ;      // 读接收数据
+    Uart.R_DATA[Uart.UartReadCnt++] = Uart.UartReadTemp;
+}
+
+/*数据发送函数*/
+void UartSend(void)
+{
+    if (Uart.TxCnt < (TX_LEN1 - 1))
+    {
+        Uart.TxCnt++;
+        TX_BUF = Uart.T_DATA[Uart.TxCnt];
+    }
+    else
+    {
+        Uart.TxCnt = 0;
+        Uart.sendflag = 0;
+    }
+}
+
+
+/*串口数据处理,处理接收到的串口数据,运行于大循环中*/
+void UartDealResponse(void)
+{
+    uint8 i;
+    Uart_Check();//判断接收的数据是否正确
+    
+    if (Uart.sussf_falg == 1) //数据接收正确且成功
+    {
+        Uart.ResponseFlag = 1; //发送延时计时标志位
+        Uart.UartReadCnt = 0;
+        Uart.time_shuju = 0;
+        mcFaultDect.commu_time = 0;
+        /*提取并转换串口接收数据*/
+        /*压机速度获取*/
+        DATA1.DATA12 = Uart.R_DATA[1];
+        
+        if (DATA1.bf.DATA1_0 == 1)
+        {
+            Uart.YaJI_Speed          = (uint16) Uart.R_DATA[2] * 60;
+            
+            if (Uart.R_DATA[2] == 0)
+            {
+                Uart.YaJI_Speed         = 0;
+            }
+        }
+        else
+        {
+            Uart.YaJI_Speed  = 0;
+        }
+        
+        ConTrolCmd.yajispeed = Uart.YaJI_Speed;
+        
+        /*4通阀控制*/
+        if (DATA1.bf.DATA1_1 == 1)
+        {
+            ConTrolCmd.sitongfa = 1;
+        }
+        else//4通阀关闭
+        {
+            ConTrolCmd.sitongfa = 0;
+        }
+        
+        /*风机速度获取*/
+        if (DATA1.bf.DATA1_2 == 1) //室外风机
+        {
+            Uart.FengSpeed      = (uint16)Uart.R_DATA[3] * 10;
+        }
+        else
+        {
+            Uart.FengSpeed      = 0;
+        }
+        
+        ConTrolCmd.fengjispeed = Uart.FengSpeed;
+        
+        /*电子膨胀阀开度获取*/
+        if (DATA1.bf.DATA1_6 == 1) //电子膨胀阀
+        {
+            Uart.PengZhangFa    = Uart.R_DATA[4] + 256;
+        }
+        else
+        {
+            Uart.PengZhangFa    = Uart.R_DATA[4];
+        }
+        
+        ConTrolCmd.dianzifakaidu = Uart.PengZhangFa;
+        
+        /*回传数据*/
+        for (i = 0; i <= TX_LEN1; i++) //赋值之前先清零
+        {
+            Uart.T_DATA[i] = 0;
+        }
+        
+        DATA2_Hui.DATA_HUI = 0; //先清零
+        
+        if (mcSpeedRamp.FlagONOFF == 1)
+        {
+            DATA2_Hui.bf.DATA2_0 = 1;
+        }
+        
+        if (ConTrolCmd.sitongfa == 1)
+        {
+            DATA2_Hui.bf.DATA2_1 = 1;
+        }
+        
+        if ( Uart.FengSpeed)
+        {
+            DATA2_Hui.bf.DATA2_2 = 1;
+        }
+        
+        Uart.PengZhangFa_ACT = bujindianji.Act;
+        
+        if (bujindianji.Act > 500)
+        {
+            DATA2_Hui.bf.DATA2_6 = 1;
+            Uart.PengZhangFa_ACT  = 500 - 256 ;   //电子膨胀阀开度
+        }
+        else if (bujindianji.Act > 255)
+        {
+            DATA2_Hui.bf.DATA2_6 = 1;
+            Uart.PengZhangFa_ACT  = bujindianji.Act - 256 ;   //电子膨胀阀开度
+        }
+        else
+        {
+            DATA2_Hui.bf.DATA2_6 = 0;
+            Uart.PengZhangFa_ACT  = (uint8)bujindianji.Act ;     //电子膨胀阀开度
+        }
+        
+        cumfault_6();
+        Uart.T_DATA[0]  =  TX_ZHENTOU1;
+        Uart.T_DATA[1]  =  DATA2_Hui.DATA_HUI;
+        Uart.T_DATA[2]  =  S_Value2;                                                           //压机速度(rps)
+        Uart.T_DATA[3]  =  Fengji_FG.FENJIPINLV2 / 10;                                         //风机转速
+        Uart.T_DATA[4]  =  Uart.PengZhangFa_ACT ;                                              //电子膨胀阀开度
+        Uart.T_DATA[5]  =  (uint8)(Huan_temp / 5 + 100); //(uint8)(RealTempjisuan(AdcSampleValue.ADC_huan_temp>>3,3)/5+100) ;   //环境温度
+        Uart.T_DATA[6]  =  (uint8)(Guan_temp / 5 + 100); //(uint8)(RealTempjisuan(AdcSampleValue.ADC_guan_temp>>3,2)/5+100) ;   //交换器温度
+        Uart.T_DATA[7]  =  (uint8)(Paiqi_temp / 10 + 50); //(uint8)(RealTempjisuan(AdcSampleValue.ADC_paiqi_temp>>3,1)/10+50) ;  //排气温度
+        Uart.T_DATA[8]  =  0x00 ;                                                                //预留
+        Uart.T_DATA[9]  =  FaultCommuMonCt ;                                                      //预留
+        Uart.T_DATA[10] =  checkAdd1(Uart.T_DATA, 0, TX_LEN1 - 1);
+        Uart.TxCnt = 0;
+        Uart.sussf_falg = 0;
+    }
+    
+    if ((Uart.time_cnt > 500 || Uart.time_shuju > 2000) && Uart.sendflag == 0) //16s内读取不到数据清零或2s内校验不成功
+    {
+        Uart.UartReadCnt = 0;
+        Uart.time_shuju = 0;
+        
+        for (i = 0; i < RX_LEN1; i++)
+        {
+            Uart.R_DATA[i] = 0;
+        }
+        
+        UART1_RX_flag = 0;
+        UART1_TX_flag = 0;
+        UART1_Rec_S = 0;
+        UART1_rx_count = 0;
+        UART1_rx_rat_time = 0;
+        UART1_In_L = 0;
+        UART1_In_H = 0;
+        RX_BUF = 0;
+        
+        for (i = 0; i < 11; i++)
+        {
+            UART1_Rx_dat[i] = 0;
+        }
+    }
+    
+    if (Uart.send_delay_time >= 160) //延时160ms发送
+    {
+        TX_BUF = Uart.T_DATA[0];
+        Uart.sendflag = 1;
+        Uart.TxCnt = 0;
+        Uart.send_delay_time = 0;
+        Uart.ResponseFlag = 0;
+    }
+}
+
+/*SUM1求和检验*/
+uint8 checkAdd1(uint8 * chCheckAdrr, uint8 chStartAddr, uint8 iCheckCnt)
+{
+    uint8 i;
+    uint8 iCheckResult = 0;
+    chCheckAdrr += chStartAddr;
+    
+    for (i = 0; i < iCheckCnt; i++)
+    {
+        iCheckResult += *chCheckAdrr;
+        chCheckAdrr++;
+    }
+    
+    iCheckResult &= 0xff;
+    return (iCheckResult);
+}
+
+
+/*SUM2求和检验*/
+uint8 checkAdd2(uint8 * chCheckAdrr, uint8 chStartAddr, uint8 iCheckCnt)
+{
+    uint8 i;
+    uint8 iCheckResult = 0;
+    chCheckAdrr += chStartAddr;
+    
+    for (i = 0; i < iCheckCnt; i++)
+    {
+        iCheckResult += *chCheckAdrr;
+        chCheckAdrr++;
+    }
+    
+    iCheckResult &= 0xff;
+    return (iCheckResult);
+}
+
+void Uart_Check(void)
+{
+    uint8 i = 0;
+    
+    if (Uart.R_DATA[0] != RX_ZHENTOU1) //针头错误清零
+    {
+        UART1_RX_flag = 0;
+        UART1_TX_flag = 0;
+        Uart.UartReadCnt = 0;
+        
+        for (i = 0; i < RX_LEN1; i++)
+        {
+            Uart.R_DATA[i] = 0;
+        }
+    }
+    
+    if (Uart.UartReadCnt >= RX_LEN1)
+    {
+        Uart.UartReadCnt = 0;
+        
+        if ((Uart.R_DATA[0] == RX_ZHENTOU1) && (checkAdd2(Uart.R_DATA, 0, (RX_LEN1 - 1)) == Uart.R_DATA[RX_LEN1 - 1])) //将读取的正确数据转换为所用数据,并将所需数据给Uart.T_DATA赋值
+        {
+            Uart.sussf_falg = 1;
+        }
+        
+        if ((Uart.R_DATA[0] != RX_ZHENTOU1) || (checkAdd2(Uart.R_DATA, 0, RX_LEN1 - 1) != Uart.R_DATA[RX_LEN1 - 1])) //检验不对清零
+        {
+            Uart.sussf_falg = 0;
+            UART1_RX_flag = 0;
+            UART1_TX_flag = 0;
+            Uart.UartReadCnt = 0;
+            
+            for (i = 0; i < RX_LEN1; i++)
+            {
+                Uart.R_DATA[i] = 0;
+            }
+        }
+    }
+}
+
+void cumfault_6(void)
+{
+    if (((mcFaultSource == FaultHardOVCurrent) || (mcFaultSource == FaultSoftOVCurrent)) && (mcProtectTime.CurrentPretectTimes >= CurrentProtectRestartTimes))
+    {
+        FaultCommuMonCt = 4;
+    }
+    else if ((mcFaultSource == FaultLossPhase) && (mcProtectTime.LossPHTimes >= PhaseProtectRestartTimes))
+    {
+        FaultCommuMonCt = 3;
+    }
+    else if ((mcFaultSource == FaultStall) && (mcProtectTime.StallTimes >= StallProtectRestartTimes))
+    {
+        FaultCommuMonCt = 3;
+    }
+    else if ((mcFaultSource == FaultIbusOffset) && (mcProtectTime.IbusOffsetProtectTimes >= IbusOffsetRestartTimes))
+    {
+        FaultCommuMonCt = 4;
+    }
+    else if (mcFaultSource == FaultIpmTemp)
+    {
+        FaultCommuMonCt = 27;
+    }
+    else if (mcFaultSource == FaultUnderVoltage)
+    {
+        FaultCommuMonCt = 2;
+    }
+    else if (mcFaultSource == FaultOverVoltage)
+    {
+        FaultCommuMonCt = 1;
+    }
+    else if (mcFaultSource == FaultGuanTempSensor)
+    {
+        FaultCommuMonCt = 19;
+    }
+    else if (mcFaultSource == FaultHuanTempSensor)
+    {
+        FaultCommuMonCt = 20;
+    }
+    else
+    {
+        FaultCommuMonCt = 0;
+    }
+}
+
+#endif
+

+ 57 - 0
User/Hardware/UART_4800.C

@@ -0,0 +1,57 @@
+
+
+#include "UART_4800.h"
+#include <Myproject.h>
+#include "FU68xx_5_MCU.h"
+
+
+// 1 个起始位(低电平)
+// 8 个数据位
+// 1 个校验位(偶校验:9位数据位里保证1的个数为偶数)。可以奇校验
+// 1 个停止位(高电平)
+// 1 个空闲位(高电平)
+
+
+
+int8 xdata UART1_Tx_len = 0; //发送字节数
+
+int8 xdata  UART1_Tx_index = 0;  //字节计数
+int8 xdata UART1_Tx_dat[10] = 0; //发送8字节
+
+int8  xdata UART1_Rx_dat[12] = 0; //连收8字节
+
+int8 xdata  UART1_Rec_S = 0;  //接收状态
+int8 xdata  UART1_rx_count = 0; //顺控步骤
+
+int8 xdata  UART1_TX_S = 0;     //发送状态
+int8 xdata  UART1_TX_BUF = 0;   //发送 8位
+int8 xdata  UART1_TX_count = 0; //顺控步骤
+uint8 xdata UART1_In_L = 0;
+uint8 xdata UART1_In_H = 0;
+
+
+int8 xdata UART1_rx_rat_time = 0;
+int8 xdata UART1_tx_rat_time = 0;
+
+int8 xdata UART1_RX_flag = 0, RX_Start = 0;
+int8 xdata UART1_TX_flag = 0;
+
+uint8 RX_BUF = 0, TX_BUF = 0;
+
+#if (Uart_Select==Uart_MoNi)
+
+void MONI_UART1_Init(void)
+{
+    SetBit(P3_OE, P37);     //tx
+    ClrBit(P3_OE, P36);     //rx
+    ClrBit(P3_PU, P36);     //上拉
+    SetBit(P3_PU, P37);     //上拉
+    GP37 = 1;
+    //    GP36=1;
+    UART1_TX_flag = 0;
+    UART1_rx_count = 0;
+    UART1_Rec_S = df_stop_bit_rec;
+}
+
+
+#endif

+ 0 - 0
User/User_Drive/Fan_monter_Ctr/Fan_monter_Ctr.c → User/User_Drive/Fan_monter_Ctr.c


+ 5 - 5
User/User_Drive/Fan_monter_Ctr/Fan_monter_Ctr.h → User/User_Drive/Fan_monter_Ctr.h

@@ -5,11 +5,11 @@
 #include "FU68xx_5_Type.h"
 
 
-typedef struct 
+typedef struct
 {
-	uint16	  FENJIPINLV;
-	uint16	  FENJIPINLV2;
-}FENGFG;
+    uint16    FENJIPINLV;
+    uint16    FENJIPINLV2;
+} FENGFG;
 
 
 
@@ -17,6 +17,6 @@ extern FENGFG             xdata   Fengji_FG;
 extern void FengJi_speed_control(int16 FanSpeed);
 extern uint16 FengJi_SpeedGet2();
 
-#endif  
+#endif
 
 

+ 19 - 0
User/User_Drive/Stepper_motors.c

@@ -0,0 +1,19 @@
+
+
+#include "User_Dri_main.h"
+
+BUJINDIAN          xdata   bujindianji;
+uint8              xdata   bujinstate = 0;
+
+/*  四相单拍工作方式,在这种工作方式下,A、B、C、D 三相轮流通电,
+    电流切换三次,磁场旋转一周,转子向前转过一个齿距角。因此这种通电方式叫做四相单四拍工作方式*/
+#if (Pengzhangfa_CW==0)
+const int8 C_W[8] = {0x09, 0x01, 0x03, 0x02, 0x06, 0x04, 0x0c, 0x08};
+#elif (Pengzhangfa_CW==1)
+const int8 C_W[8] = {0x08, 0x0c, 0x04, 0x06, 0x02, 0x03, 0x01, 0x09};
+#endif
+
+/*电子膨胀阀控制*/
+
+
+

+ 29 - 0
User/User_Drive/Stepper_motors.h

@@ -0,0 +1,29 @@
+
+#ifndef __STEPPER_MOTOR_H__
+#define __STEPPER_MOTOR_H__
+
+#include "FU68xx_5_Type.h"
+
+
+typedef struct
+{
+    int16     valvemotor_cnt;
+    int16     valvemotor_cnt_1;
+    int16       Target;
+    int16     Act;
+    uint16    bujintimer;
+    uint16    startbujintimer;
+    uint8     bujinfinshflag;
+    uint8     bujinstartflag;
+    uint8     bujinsuss;
+    
+    
+} BUJINDIAN;
+
+extern BUJINDIAN      xdata   bujindianji;
+extern int16 motor_cw(int16 bujinzhi);
+extern void pengzhangfa_control(int16 weizhi);
+
+#endif
+
+

+ 0 - 19
User/User_Drive/Stepper_motors/Stepper_motors.c

@@ -1,19 +0,0 @@
-
-
-#include "User_Dri_main.h"
-
-BUJINDIAN          xdata   bujindianji;
-uint8              xdata   bujinstate=0;
-
-/*四相单拍工作方式,在这种工作方式下,A、B、C、D 三相轮流通电,
-电流切换三次,磁场旋转一周,转子向前转过一个齿距角。因此这种通电方式叫做四相单四拍工作方式*/
-#if (Pengzhangfa_CW==0)
-  const int8 C_W[8]= {0x09,0x01,0x03,0x02,0x06,0x04,0x0c,0x08};
-#elif (Pengzhangfa_CW==1)
-	const int8 C_W[8]= {0x08,0x0c,0x04,0x06,0x02,0x03,0x01,0x09};
-#endif
-
-/*电子膨胀阀控制*/
-
-
-

+ 0 - 29
User/User_Drive/Stepper_motors/Stepper_motors.h

@@ -1,29 +0,0 @@
-
-#ifndef __STEPPER_MOTOR_H__
-#define __STEPPER_MOTOR_H__
-
-#include "FU68xx_5_Type.h"
-
-
-typedef struct 
-{
-	int16     valvemotor_cnt;
-	int16     valvemotor_cnt_1;
-	int16	    Target;
-	int16     Act;
-	uint16    bujintimer;
-	uint16    startbujintimer;
-	uint8     bujinfinshflag;
-	uint8     bujinstartflag;
-	uint8     bujinsuss;
-	
-	
-}BUJINDIAN;
-
-extern BUJINDIAN      xdata   bujindianji;
-extern int16 motor_cw(int16 bujinzhi);
-extern void pengzhangfa_control(int16 weizhi);
-
-#endif  
-
-

+ 18 - 0
User/User_Drive/Temp_compute.c

@@ -0,0 +1,18 @@
+
+#include "Temp_compute.h"
+#include <math.h>                       //math.h包含算术运算的数学函数
+#include "Customer.h"
+
+ADCRR              xdata   RealTempR;
+
+
+
+/*  温度、电阻计算  温度返回值扩大了10倍
+    R_Base:NTC在25℃下的阻值(单位欧姆)
+    int16 R_Real:NTC不同温度下电阻值(单位欧姆)
+    B:热敏系数,不同NTC此值,不同查阅NTC规格书*/
+
+
+int16 RealTempjisuan(uint16 ADC_vaule, uint8 flag)
+{
+}

+ 25 - 0
User/User_Drive/Temp_compute.h

@@ -0,0 +1,25 @@
+
+#ifndef __TEMP_COMPUTE_H__
+#define __TEMP_COMPUTE_H__
+
+#include "FU68xx_5_Type.h"
+
+typedef struct
+{
+    uint16    B;
+    uint32    R_Base;
+    float     T25;
+    uint32      R_PU;
+    uint32    R_PD;
+} ADCRR;
+
+extern ADCRR              xdata   RealTempR;
+extern int16 RealTempjisuan(uint16 ADC_vaule, uint8 flag);
+
+
+
+
+
+#endif
+
+

+ 0 - 19
User/User_Drive/Temp_compute/Temp_compute.c

@@ -1,19 +0,0 @@
-
-#include "Temp_compute.h"
-#include <math.h>                       //math.h包含算术运算的数学函数
-#include "Customer.h"
-
-ADCRR              xdata   RealTempR;
-
-
-
-/*温度、电阻计算  温度返回值扩大了10倍 
- R_Base:NTC在25℃下的阻值(单位欧姆)
- int16 R_Real:NTC不同温度下电阻值(单位欧姆)
- B:热敏系数,不同NTC此值,不同查阅NTC规格书*/
-
-
-int16 RealTempjisuan(uint16 ADC_vaule,uint8 flag)
-{
-		
-}

+ 0 - 25
User/User_Drive/Temp_compute/Temp_compute.h

@@ -1,25 +0,0 @@
-
-#ifndef __TEMP_COMPUTE_H__
-#define __TEMP_COMPUTE_H__
-
-#include "FU68xx_5_Type.h"
-
-typedef struct 
-{
-	uint16	  B;
-	uint32	  R_Base;
-	float     T25;
-	uint32  	R_PU;
-	uint32	  R_PD;
-}ADCRR;
-
-extern ADCRR              xdata   RealTempR;
-extern int16 RealTempjisuan(uint16 ADC_vaule,uint8 flag);
-
-
-
-
-
-#endif  
-
-

+ 73 - 62
User/User_Drive/User_Dri_main.c

@@ -3,76 +3,87 @@
 #include "User_Dri_main.h"
 
 extern uint16 sendMessagelength;
-void User_Dri_main(void)			//
+void User_Dri_main(void)            //
 {
-	  TargetRef_Process1();			//转速获取
-	  Temp_jisuan();						//温度计算
-
-		#if (Debugg==1)
-		{
-			 /*工具程序*/
-				PC_MONITOR_MAIN();
-				senddeal();
-		}
-		#else
-		{
-			//  I_IReal_10 实际电流   P_PowerReal实际功率
-			//mcTorqueCompensation.TorqueCompensateIqCurrentValue//mcTorqueCompensation.TorqueCompensateIqCurrentValue+3000
-//			     uart_boxing(2, FOC__THETA ,FOC__IA,IPM_RealTemp(AdcSampleValue.ADC_IPM_temp),RealTempjisuan(AdcSampleValue.ADC_paiqi_temp>>3,1),HW_BOARD_VOLT_MAX*mcFocCtrl.mcDcbusFlt/32767,RealTempjisuan(AdcSampleValue.ADC_guan_temp>>3,2),ID_Align_CURRENT_Start);
-//				UART1deal();
-				trace2();													
-		}
-		#endif
+    TargetRef_Process1();         //杞�€熻幏鍙�
+    Temp_jisuan();                        //娓╁害璁$畻
+    #if (Debugg==1)
+    {
+        /*宸ュ叿绋嬪簭*/
+        PC_MONITOR_MAIN();
+        senddeal();
+    }
+    #else
+    {
+        //  I_IReal_10 瀹為檯鐢垫祦   P_PowerReal瀹為檯鍔熺巼
+        //mcTorqueCompensation.TorqueCompensateIqCurrentValue//mcTorqueCompensation.TorqueCompensateIqCurrentValue+3000
+        //               uart_boxing(2, FOC__THETA ,FOC__IA,IPM_RealTemp(AdcSampleValue.ADC_IPM_temp),RealTempjisuan(AdcSampleValue.ADC_paiqi_temp>>3,1),HW_BOARD_VOLT_MAX*mcFocCtrl.mcDcbusFlt/32767,RealTempjisuan(AdcSampleValue.ADC_guan_temp>>3,2),ID_Align_CURRENT_Start);
+        //              UART1deal();
+        trace2();
+    }
+    #endif
 }
 
-void User_Dri_timer1ms(void)	//
+void User_Dri_timer1ms(void)    //
 {
-
-	
-		if(Uart.uarttimejishu<=500)            Uart.uarttimejishu++;
-		if(Uart.Uart_Tmreset<=5050)            Uart.Uart_Tmreset++;
-		if(Uart.Uart_Tmcomcyc<=550)            Uart.Uart_Tmcomcyc++;
-		if(Uart.Uart_Recivetime<=200)          Uart.Uart_Recivetime++;
-	
-	  if((Uart.TxCnt>=(sendMessagelength - 1))&&(Uart.Uart_Recivetime>=15))	
-		{
-				Uart.Recive_Flag=0;
-		}
+    if (Uart.uarttimejishu <= 500)
+    {
+        Uart.uarttimejishu++;
+    }
+    
+    if (Uart.Uart_Tmreset <= 5050)
+    {
+        Uart.Uart_Tmreset++;
+    }
+    
+    if (Uart.Uart_Tmcomcyc <= 550)
+    {
+        Uart.Uart_Tmcomcyc++;
+    }
+    
+    if (Uart.Uart_Recivetime <= 200)
+    {
+        Uart.Uart_Recivetime++;
+    }
+    
+    if ((Uart.TxCnt >= (sendMessagelength - 1)) && (Uart.Uart_Recivetime >= 15))
+    {
+        Uart.Recive_Flag = 0;
+    }
 }
 
 
 void TargetRef_Process1(void)
-{    
-	
-			#if (SPEED_MODE == UARTMODE)// uart调速模式
-			{
-					#if (Debugg==1)
-						Trace_Select_write(); //电脑上位机控制指令
-					#endif
-				
-					#if (Uart_Select==Uart_MoNi)
-							UartDealResponse();   //串口上位机数据处理
-					#elif (Uart_Select==Uart_Yingjian)
-				      #if (Uart_COMMUNICATION==0)
-				      {
-							   UartDealResponse1();
-				      }
-							#elif (Uart_COMMUNICATION==1)
-							{
-								 UartDealResponse2();
-              }
-							#endif
-					#endif					
-			}
-			#elif (SPEED_MODE == NONEMODE)// 直接上电运行模式          
-			{
-					ConTrolCmd.yajispeed =  5400;//压机闭环目标转速
-				  ConTrolCmd.fengjispeed=300;  //风机闭环目标转速
-				  ConTrolCmd.sitongfa=1;
-			}
-			#endif
-			//ConTrolCmd.yajispeed =  5400;//压机闭环目标转速
-			Control_Cmd();        //指令执行
+{
+    #if (SPEED_MODE == UARTMODE)// uart璋冮€熸ā寮�
+    {
+        #if (Debugg==1)
+        Trace_Select_write(); //鐢佃剳涓婁綅鏈烘帶鍒舵寚浠�
+        #endif
+        
+        #if (Uart_Select==Uart_MoNi)
+        UartDealResponse();   //涓插彛涓婁綅鏈烘暟鎹��鐞�
+        #elif (Uart_Select==Uart_Yingjian)
+        #if (Uart_COMMUNICATION==0)
+        {
+            UartDealResponse1();
+        }
+        #elif (Uart_COMMUNICATION==1)
+        {
+            UartDealResponse2();
+        }
+        #endif
+        #endif
+    }
+    #elif (SPEED_MODE == NONEMODE)// 鐩存帴涓婄數杩愯�妯″紡
+    {
+        ConTrolCmd.yajispeed =  5400;//鍘嬫満闂�幆鐩�爣杞�€�
+        ConTrolCmd.fengjispeed = 300; //椋庢満闂�幆鐩�爣杞�€�
+        ConTrolCmd.sitongfa = 1;
+    }
+    #endif
+    //ConTrolCmd.yajispeed =  5400;//鍘嬫満闂�幆鐩�爣杞�€�
+    Control_Cmd();        //鎸囦护鎵ц�
 }
 
 

+ 5 - 18
User/User_Drive/User_Dri_main.h

@@ -1,25 +1,13 @@
-/**
-  ******************************************************************************
-  * @file    FocControl.h
-  * @author  Fortior Application Team
-  * @version V1.0.0
-  * @date    10-Apr-2017
-  * @brief   define motor contorl parameter
-  ******************************************************************************
-  */
-
-/* Define to prevent recursive inclusion -------------------------------------*/
-
 #ifndef __USER_DRI_MAIN_H_
 #define __USER_DRI_MAIN_H_
 
 
 #include <Myproject.h>
-#include "commution/commution.h"
-#include "Temp_compute/Temp_compute.h"
-#include "Fan_monter_Ctr/Fan_monter_Ctr.h"
-#include "Stepper_motors/Stepper_motors.h"
-#include "watch/watch.h"
+#include "commution.h"
+#include "Temp_compute.h"
+#include "Fan_monter_Ctr.h"
+#include "Stepper_motors.h"
+#include "watch.h"
 
 
 void User_Dri_main(void);
@@ -27,5 +15,4 @@ void User_Dri_timer1ms(void);
 void TargetRef_Process1(void);
 
 
-
 #endif

+ 1955 - 0
User/User_Drive/commution.c

@@ -0,0 +1,1955 @@
+/**
+    @file     commution.c
+    @version  V1.0.0
+    @author   jaise
+    @date     2023-8-16 09:33:55
+    @brief    This file contains ...
+
+    @copyright Copyright(C) 2022 Fortior Technology Co., Ltd. All rights reserved.
+*/
+
+//#include “FU6815.h"
+
+#include "User_Dri_main.h"
+#include "SYS_Ctr_main.h"
+
+uint16 sendMessagelength = 0;
+uint16  SlaveCrc = 0;
+#define Version 101
+uint16 SKP1 = 150, SKI1 = 2;
+
+MCUART    xdata  Uart;
+//发送数据
+ddatet00  xdata  Uart_DATA00;
+ddatet00  xdata  Uart_DATA01;
+ddatet00  xdata  Uart_DATA02;
+ddatet00  xdata  Uart_DATA03;
+ddatet00  xdata  Uart_DATA04;
+ddatet00  xdata  Uart_DATA05;
+ddatet00  xdata  Uart_DATA06;
+ddatet00  xdata  Uart_DATA07;
+ddatet00  xdata  Uart_DATA08;
+ddatet00  xdata  Uart_DATA09;
+ddatet00  xdata  Uart_DATA10;
+ddatet00  xdata  Uart_DATA11;
+ddatet00  xdata  Uart_DATA12;
+ddatet00  xdata  Uart_DATA13;
+ddatet00  xdata  Uart_DATA14;
+ddatet00  xdata  Uart_DATA15;
+ddatet00  xdata  Uart_DATA16;
+ddatet00  xdata  Uart_DATA17;
+
+//接收数据
+MCUART_Rec00 xdata Uart_Rec_DATA00;
+MCUART_Rec00 xdata Uart_Rec_DATA01;
+MCUART_Rec00 xdata Uart_Rec_DATA02;
+MCUART_Rec00 xdata Uart_Rec_DATA03;
+MCUART_Rec00 xdata Uart_Rec_DATA04;
+MCUART_Rec00 xdata Uart_Rec_DATA05;
+MCUART_Rec00 xdata Uart_Rec_DATA06;
+MCUART_Rec00 xdata Uart_Rec_DATA09;
+MCUART_Rec00 xdata Uart_Rec_DATA10;
+MCUART_Rec00 xdata Uart_Rec_DATA11;
+MCUART_Rec00 xdata Uart_Rec_DATA12;
+MCUART_Rec00 xdata Uart_Rec_DATA13;
+MCUART_Rec00 xdata Uart_Rec_DATA14;
+MCUART_Rec00 xdata Uart_Rec_DATA15;
+//MCUART_Recother  xdata Uart_Rec_DATAo;
+
+unsigned char       u1_cnt_idu_comm_task    = 0;
+
+uint8 SYS_RunMode = 0, FAN_RunSpeed = 0;
+
+const uint16 ModbusCrcTable[256] =
+{
+    0,  49345,  49537,  320,    49921,  960,    640,    49729,
+    50689,  1728,   1920,   51009,  1280,   50625,  50305,  1088,
+    52225,  3264,   3456,   52545,  3840,   53185,  52865,  3648,
+    2560,   51905,  52097,  2880,   51457,  2496,   2176,   51265,
+    55297,  6336,   6528,   55617,  6912,   56257,  55937,  6720,
+    7680,   57025,  57217,  8000,   56577,  7616,   7296,   56385,
+    5120,   54465,  54657,  5440,   55041,  6080,   5760,   54849,
+    53761,  4800,   4992,   54081,  4352,   53697,  53377,  4160,
+    61441,  12480,  12672,  61761,  13056,  62401,  62081,  12864,
+    13824,  63169,  63361,  14144,  62721,  13760,  13440,  62529,
+    15360,  64705,  64897,  15680,  65281,  16320,  16000,  65089,
+    64001,  15040,  15232,  64321,  14592,  63937,  63617,  14400,
+    10240,  59585,  59777,  10560,  60161,  11200,  10880,  59969,
+    60929,  11968,  12160,  61249,  11520,  60865,  60545,  11328,
+    58369,  9408,   9600,   58689,  9984,   59329,  59009,  9792,
+    8704,   58049,  58241,  9024,   57601,  8640,   8320,   57409,
+    40961,  24768,  24960,  41281,  25344,  41921,  41601,  25152,
+    26112,  42689,  42881,  26432,  42241,  26048,  25728,  42049,
+    27648,  44225,  44417,  27968,  44801,  28608,  28288,  44609,
+    43521,  27328,  27520,  43841,  26880,  43457,  43137,  26688,
+    30720,  47297,  47489,  31040,  47873,  31680,  31360,  47681,
+    48641,  32448,  32640,  48961,  32000,  48577,  48257,  31808,
+    46081,  29888,  30080,  46401,  30464,  47041,  46721,  30272,
+    29184,  45761,  45953,  29504,  45313,  29120,  28800,  45121,
+    20480,  37057,  37249,  20800,  37633,  21440,  21120,  37441,
+    38401,  22208,  22400,  38721,  21760,  38337,  38017,  21568,
+    39937,  23744,  23936,  40257,  24320,  40897,  40577,  24128,
+    23040,  39617,  39809,  23360,  39169,  22976,  22656,  38977,
+    34817,  18624,  18816,  35137,  19200,  35777,  35457,  19008,
+    19968,  36545,  36737,  20288,  36097,  19904,  19584,  35905,
+    17408,  33985,  34177,  17728,  34561,  18368,  18048,  34369,
+    33281,  17088,  17280,  33601,  16640,  33217,  32897,  16448
+};
+
+/*
+    Function Name:   Get_CRC
+    Description: CRC生成新函数
+    Return Value:    u16 CRC值
+    Parameter:   SourceCrc   前次CRC值
+                Data    本次添加数据
+    Note:
+*/
+uint16 Get_CRC(uint16 SourceCrc, uint8 Data)
+{
+    return (SourceCrc >> 8) ^ ModbusCrcTable[Data ^ (SourceCrc & 0xff)];
+}
+
+
+uint16 makeCRC(uint8 * data2, uint8 length)
+{
+    uint16 crc = 0xFFFF;
+    uint8 i;
+    
+    for ( i = 0; i < length; i++)
+    {
+        crc = (crc >> 8) ^ ModbusCrcTable[data2[i] ^ (crc & 0xff)];
+    }
+    
+    return crc;
+}
+
+void Modbus_task01_RecData()
+{
+    Uart.send_start_falg = 1;
+    
+    if (Uart.send_start_falg == 1)
+    {
+        //              GP04 = 1;
+        Uart.Recive_Flag = 1;
+        UT2_DR = Uart.T_DATA[0];
+        //UT2TB8 = even_or_odd(Uart.T_DATA[0],evnodd);
+        Uart.send_start_falg = 0;
+        Uart.TxCnt = 0;
+    }
+}
+
+/*
+    Function Name:   ModbusSlaveAddOutWord
+    Description: 添加将要发送的字节
+    Return Value:    u8  返回添加后待发送到消息长度
+    Parameter:   pModbus 指向Modbus的指针
+                Data    要添加的字节
+    Note:
+*/
+uint8   ModbusSlaveAddOutWord(uint8 Data    )
+{
+    Uart.T_DATA[sendMessagelength] = Data;
+    SlaveCrc = Get_CRC(SlaveCrc, Data);
+    sendMessagelength++;
+    return  sendMessagelength;
+}
+
+/*
+    Function Name:   Modbus_ReplyReset
+    Description: 回复消息的准备
+    Return Value:    u8  返回待发送到消息长度
+    Parameter:   pModbus 指向Modbus的指针
+    Note:
+*/
+uint8   ModbusSlave_ReplyReset()
+{
+    sendMessagelength = 0;
+    SlaveCrc = 0xFFFF;
+    //  pModbus->sendMessage->data = &(pModbus->sendMessage->data[0]);
+    //ModbusSlaveAddOutWord(0xCF);    //识别码
+    ModbusSlaveAddOutWord(Uart.R_DATA[0]);
+    ModbusSlaveAddOutWord(Uart.R_DATA[1]);
+    return sendMessagelength;
+}
+
+/*
+    Function Name:   Modbus_AddCRC_SendDatas
+    Description: 添加封包CRC,并发送消息
+    Return Value:    u8  返回8位无符号数,0为正常,非0为错误
+    Parameter:   pModbus 指向Modbus的指针
+    Note:
+*/
+uint8   ModbusSlave_AddCRC_SendDatas()
+{
+    uint8 CrcLow, CrcHigh;
+    CrcLow = (uint8) SlaveCrc;
+    CrcHigh = (uint8) (SlaveCrc >> 8);
+    Uart.T_DATA[sendMessagelength] = CrcLow;
+    sendMessagelength++;
+    Uart.T_DATA[sendMessagelength] = CrcHigh;
+    sendMessagelength++;
+    return (uint8)0;
+}
+
+
+
+/*
+    Function Name:   CRCCheck
+    Description: 对收到的消息进行CRC校验
+    Return Value:    u8  返回值非0为校验未通过
+    Parameter:   message 收到的消息
+    Note:
+*/
+uint8   CRCCheck(   uint8 * data1, uint8 length)
+{
+    uint8   i = 0;
+    uint16  result = 0xFFFF;
+    
+    if (length < 4)
+    {
+        return 0xFF;
+    }
+    else
+    {
+        for (; i < length; i++)
+        {
+            result = Get_CRC(result, data1[i]);
+        }
+        
+        return result;
+    }
+}
+
+
+void Modbus_Recive_task01()
+{
+    uint8 function = Uart.R_DATA[1];
+    uint16 DC_Volt, Acbus, FirstCurrent;
+    
+    if (1 != Uart.R_DATA[0])
+    {
+        return;
+    }
+    
+    ModbusSlave_ReplyReset();
+    
+    switch (function)
+    {
+        case 3:
+            if ((0 == Uart.R_DATA[4]) && (0x0B == Uart.R_DATA[5])
+                && (0 == Uart.R_DATA[3]))
+            {
+                ModbusSlaveAddOutWord(0x16); //数据长度
+                ModbusSlaveAddOutWord(0);
+                ModbusSlaveAddOutWord(mcFocCtrl.SpeedFlt * MOTOR_SPEED_BASE / 32767 / 60); //转速
+                // FirstCurrent = (HW_BOARD_CURR_BASE*mcFocCtrl.FirstCurrentFlt/1.414)/32767;
+                ModbusSlaveAddOutWord(0);
+                ModbusSlaveAddOutWord(0);//一次电流 低
+                Acbus = 0;
+                ModbusSlaveAddOutWord((FOC__UQ >> 8) & 0xff);
+                ModbusSlaveAddOutWord(FOC__UQ);//交流电压 低
+                DC_Volt = mcFocCtrl.mcDcbusFlt * HW_BOARD_VOLT_MAX / 32767;
+                ModbusSlaveAddOutWord((DC_Volt >> 8) & 0xff);
+                ModbusSlaveAddOutWord(DC_Volt & 0xff); //直流电压 低
+                ModbusSlaveAddOutWord((I_IReal_10 >> 8) & 0xff);
+                ModbusSlaveAddOutWord(I_IReal_10 & 0xff); //二次电流 低
+                ModbusSlaveAddOutWord((mcFocCtrl.IPMtemp >> 8) & 0xff);
+                ModbusSlaveAddOutWord(mcFocCtrl.IPMtemp & 0xff); //IPM温度 低
+                ModbusSlaveAddOutWord(0x00);//驱动故障高16位
+                ModbusSlaveAddOutWord(mcIimit.Pflag);//驱动故障高
+                ModbusSlaveAddOutWord(0x00);//驱动故障高16位
+                ModbusSlaveAddOutWord(mcFaultSource);//驱动故障低 低
+                ModbusSlaveAddOutWord(0x00);//PFC驱动故障高16位
+                ModbusSlaveAddOutWord(0x00);//PFC驱动故障高
+                ModbusSlaveAddOutWord(0x00);//PFC故障低
+                ModbusSlaveAddOutWord(mcSpeedRamp.TargetValue * MOTOR_SPEED_BASE / 32767 / 60); //PFC故障低 低
+                ModbusSlaveAddOutWord(0x00);
+                ModbusSlaveAddOutWord(mcSpeedRamp.ActualValue * MOTOR_SPEED_BASE / 32767 / 60); //软件版本
+            }
+            else if ((0 == Uart.R_DATA[4]) && (0x0B == Uart.R_DATA[5])
+                && (11 == Uart.R_DATA[3]))
+            {
+                ModbusSlaveAddOutWord(0x16); //数据长度
+                ModbusSlaveAddOutWord(0);
+                ModbusSlaveAddOutWord(0);
+                ModbusSlaveAddOutWord(0);
+                ModbusSlaveAddOutWord(ConTrolCmd.yajispeed / 60);
+                ModbusSlaveAddOutWord((SKP1 >> 8) & 0xff);
+                ModbusSlaveAddOutWord(SKP1 & 0xff);
+                ModbusSlaveAddOutWord((SKI1 >> 8) & 0xff);
+                ModbusSlaveAddOutWord(SKI1 & 0xff);
+                //                  ModbusSlaveAddOutWord(0);
+                //                  ModbusSlaveAddOutWord(0);
+                //
+                //                  ModbusSlaveAddOutWord(0);
+                //                  ModbusSlaveAddOutWord(0);
+                ModbusSlaveAddOutWord(0);
+                ModbusSlaveAddOutWord(0);
+                ModbusSlaveAddOutWord(0);
+                ModbusSlaveAddOutWord(0);
+                ModbusSlaveAddOutWord(0);
+                ModbusSlaveAddOutWord(0);
+                ModbusSlaveAddOutWord(0);
+                ModbusSlaveAddOutWord(0);
+                ModbusSlaveAddOutWord(0);
+                ModbusSlaveAddOutWord(0);
+                ModbusSlaveAddOutWord(0);
+                ModbusSlaveAddOutWord(0);
+                ModbusSlaveAddOutWord(0);
+                ModbusSlaveAddOutWord(0);
+            }
+            else
+            {
+                return;
+            }
+            
+            break;
+            
+        case 16:
+            if ((0 == Uart.R_DATA[2]) && (0x0B == Uart.R_DATA[3]))
+            {
+                ConTrolCmd.yajispeed = Uart.R_DATA[10] * 60;
+                ModbusSlaveAddOutWord(0x00);
+                ModbusSlaveAddOutWord(0x0B);
+                ModbusSlaveAddOutWord(0x00);
+                ModbusSlaveAddOutWord(0x05);
+            }
+            else
+            {
+                return;
+            }
+            
+            break;
+            
+        case 6:
+            if ((0 == Uart.R_DATA[2]) && (0x0C == Uart.R_DATA[3]))
+            {
+                ConTrolCmd.yajispeed = Uart.R_DATA[5] * 60;
+                ModbusSlaveAddOutWord(Uart.R_DATA[2]);
+                ModbusSlaveAddOutWord(Uart.R_DATA[3]);
+                ModbusSlaveAddOutWord(Uart.R_DATA[4]);
+                ModbusSlaveAddOutWord(Uart.R_DATA[5]);
+            }
+            else if ((0 == Uart.R_DATA[2]) && (0x0D == Uart.R_DATA[3]))
+            {
+                SKP1 = (uint16)Uart.R_DATA[4];
+                SKP1 <<= 8;
+                SKP1 |= Uart.R_DATA[5];
+                ModbusSlaveAddOutWord(Uart.R_DATA[2]);
+                ModbusSlaveAddOutWord(Uart.R_DATA[3]);
+                ModbusSlaveAddOutWord(Uart.R_DATA[4]);
+                ModbusSlaveAddOutWord(Uart.R_DATA[5]);
+            }
+            else if ((0 == Uart.R_DATA[2]) && (0x0E == Uart.R_DATA[3]))
+            {
+                SKI1 = (uint16)Uart.R_DATA[4];
+                SKI1 <<= 8;
+                SKI1 |= Uart.R_DATA[5];
+                ModbusSlaveAddOutWord(Uart.R_DATA[2]);
+                ModbusSlaveAddOutWord(Uart.R_DATA[3]);
+                ModbusSlaveAddOutWord(Uart.R_DATA[4]);
+                ModbusSlaveAddOutWord(Uart.R_DATA[5]);
+            }
+            else
+            {
+                return;
+            }
+            
+            break;
+            
+        default:
+            break;
+    }
+    
+    ModbusSlave_AddCRC_SendDatas();
+    Modbus_task01_RecData();//发送数据
+}
+
+
+
+/*数据接收函数*/
+void UartRecive1(void)
+{
+    Uart.UartReadTemp = UT2_DR;       // 读接收数据
+    Uart.R_DATA[Uart.UartReadCnt++] = Uart.UartReadTemp;
+}
+
+/*数据发送函数*/
+void UartSend1(void)
+{
+    if (Uart.TxCnt < (sendMessagelength - 1))
+    {
+        Uart.TxCnt++;
+        UT2_DR = Uart.T_DATA[Uart.TxCnt];
+        // UT2TB8 = even_or_odd(Uart.T_DATA[Uart.TxCnt],evnodd);
+        Uart.Uart_Recivetime = 0;
+    }
+    else
+    {
+        //          GP04 = 0;
+    }
+}
+#if 0
+////CRC16校验      u16CRC=Common_Func_CRC16_ModBus(&u8SendBuf[0], 3+RegisterNum*2);
+uint16 Common_Func_CRC16_ModBus(uint8 * puchMsg, uint8 usDataLen)
+{
+    uint16 uCRC = 0xffff;//CRC寄存器
+    uint8 num;
+    uint8 x;
+    
+    for (num = 0; num < usDataLen; num++)
+    {
+        uCRC = (*puchMsg++) ^ uCRC;//把数据与16位的CRC寄存器的低8位相异或,结果存放于CRC寄存器。
+        
+        for (x = 0; x < 8; x++)
+        {
+            //循环8次
+            if (uCRC & 0x0001)
+            {
+                //判断最低位为:“1”
+                uCRC = uCRC >> 1;   //先右移
+                uCRC = uCRC ^ 0xA001;   //再与0xA001异或
+            }
+            else
+            {
+                //判断最低位为:“0”
+                uCRC = uCRC >> 1;   //右移
+            }
+        }
+    }
+    
+    return uCRC;//返回CRC校验值 高位在前低位在后
+}
+#endif
+////BBC校验
+uint8 BBC(uint8 * puchMsg, uint8 usDataLen)
+{
+    uint8 i;
+    uint8 bcc = 0;        // Initial value
+    #if 0
+    
+    while (usDataLen--)
+    {
+        bcc ^= *puchMsg++;
+    }
+    
+    #else
+    
+    for ( i = 0; i < usDataLen; i++ )//  sum
+    {
+        bcc += puchMsg[i];        // crc ^= *data;
+    }
+    
+    #endif
+    return bcc;
+}
+
+#if (Uart_COMMUNICATION==0)
+/*判断接收数据是否正确*/
+uint8 Modbus_Slave_Receive(void)
+{
+    uint8 u16CRC = 0;
+    
+    if ((Uart.uarttimejishu >= 15 ) && (Uart.UartReadCnt >= 10)) //Uart.uarttime每包数据的间隔
+    {
+        Uart.recive_lenth = Uart.UartReadCnt;
+        Uart.UartReadCnt = 0;
+        u16CRC = Uart.R_DATA[Uart.recive_lenth - 1];//接收到的的校验码
+        
+        if (u16CRC == BBC(&Uart.R_DATA[0], Uart.recive_lenth - 2))
+        {
+            Uart.recive_sussf_falg = 1;
+            Uart.send_start_falg = 1;
+        }
+        else
+        {
+            Uart.recive_sussf_falg = 0;
+        }
+    }
+    
+    return Uart.recive_sussf_falg;
+}
+
+
+
+
+void Uart_Int01(void)
+{
+    //参数清零因为复用问题
+    Uart_DATA00.DATA00 = 0; Uart_DATA01.DATA00 = 0; Uart_DATA02.DATA00 = 0; Uart_DATA03.DATA00 = 0;
+    Uart_DATA04.DATA00 = 0; Uart_DATA05.DATA00 = 0; Uart_DATA06.DATA00 = 0; Uart_DATA07.DATA00 = 0;
+    Uart_DATA08.DATA00 = 0; Uart_DATA09.DATA00 = 0; Uart_DATA10.DATA00 = 0; Uart_DATA11.DATA00 = 0;
+    Uart_DATA12.DATA00 = 0; Uart_DATA13.DATA00 = 0; Uart_DATA14.DATA00 = 0; Uart_DATA15.DATA00 = 0;
+    //第0个数据8位
+    Uart_DATA00.DATA00 = 0;
+    //第1个数据8位
+    Uart_DATA01.bf.DATA0 = 0; //0:变频,1:定频
+    Uart_DATA01.bf.DATA1 = 0; //0:冷暖,1:单冷
+    //  Uart_DATA01.bf.DATA2=0;//预留
+    //  Uart_DATA01.bf.DATA3=0;
+    Uart_DATA01.bf.DATA4 = 0; //通信速度    0001:600 bps  0010:1200bps
+    Uart_DATA01.bf.DATA5 = 1;
+    Uart_DATA01.bf.DATA6 = 0;
+    Uart_DATA01.bf.DATA7 = 0;
+    //第2个数据8位
+    //  Uart_DATA02.DATA00=35;  //外机能力代码 0.1kw/bit
+    //第3个数据8位
+    Uart_DATA03.bf.DATA0 = 0; //电源种类  001 :100~115V  010 :200~240V
+    Uart_DATA03.bf.DATA1 = 0;
+    Uart_DATA03.bf.DATA2 = 0;
+    Uart_DATA03.bf.DATA3 = 1; //供电方式选择   0:内机供电 1:外机供电
+    //  Uart_DATA03.bf.DATA4=0;//预留
+    //  Uart_DATA03.bf.DATA5=0;
+    //  Uart_DATA03.bf.DATA6=0;
+    //  Uart_DATA03.bf.DATA7=0;
+    //第4个数据8位
+    Uart_DATA04.DATA00 = 0;
+    //  Uart_DATA04.bf.DATA0=0;
+    //  Uart_DATA04.bf.DATA1=0;
+    //  Uart_DATA04.bf.DATA2=0;
+    //  Uart_DATA04.bf.DATA3=0;
+    //  Uart_DATA04.bf.DATA4=0;
+    //  Uart_DATA04.bf.DATA5=0;
+    //  Uart_DATA04.bf.DATA6=0;
+    //  Uart_DATA04.bf.DATA7=0;
+    //第5个数据8位
+    Uart_DATA05.DATA00 = 0;
+    //  Uart_DATA05.bf.DATA0=0;
+    //  Uart_DATA05.bf.DATA1=0;
+    //  Uart_DATA05.bf.DATA2=0;
+    //  Uart_DATA05.bf.DATA3=0;
+    //  Uart_DATA05.bf.DATA4=0;
+    //  Uart_DATA05.bf.DATA5=0;
+    //  Uart_DATA05.bf.DATA6=0;
+    //  Uart_DATA05.bf.DATA7=0;
+    //第6个数据8位
+    Uart_DATA06.bf.DATA0 = 0; //风机档数
+    Uart_DATA06.bf.DATA1 = 0;
+    Uart_DATA06.bf.DATA2 = 0;
+    Uart_DATA06.bf.DATA3 = 0; //风机个数  0:单风机  1:双风机
+    Uart_DATA06.bf.DATA4 = 0; //风机种类001 :交流电机  010 :直流电机
+    Uart_DATA06.bf.DATA5 = 0;
+    Uart_DATA06.bf.DATA6 = 0;
+    Uart_DATA06.bf.DATA7 = 0; //出风类型 0:侧出风 1:上出风
+    //第7个数据8位
+    Uart_DATA07.DATA00 = 0;
+    //  Uart_DATA07.bf.DATA0=0;
+    //  Uart_DATA07.bf.DATA1=0;
+    //  Uart_DATA07.bf.DATA2=0;
+    //  Uart_DATA07.bf.DATA3=0;
+    //  Uart_DATA07.bf.DATA4=0;
+    //  Uart_DATA07.bf.DATA5=0;
+    //  Uart_DATA07.bf.DATA6=0;
+    //  Uart_DATA07.bf.DATA7=0;
+    //      //第8个数据8位
+    //  Uart_DATA08.bf.DATA0=0;
+    //  Uart_DATA08.bf.DATA1=0;
+    //  Uart_DATA08.bf.DATA2=0;
+    //  Uart_DATA08.bf.DATA3=0;
+    //  Uart_DATA08.bf.DATA4=0;
+    //  Uart_DATA08.bf.DATA5=0;
+    //  Uart_DATA08.bf.DATA6=0;
+    //  Uart_DATA08.bf.DATA7=0;
+    //      //第9个数据8位
+    //  Uart_DATA09.bf.DATA0=0;
+    //  Uart_DATA09.bf.DATA1=0;
+    //  Uart_DATA09.bf.DATA2=0;
+    //  Uart_DATA09.bf.DATA3=0;
+    //  Uart_DATA09.bf.DATA4=0;
+    //  Uart_DATA09.bf.DATA5=0;
+    //  Uart_DATA09.bf.DATA6=0;
+    //  Uart_DATA09.bf.DATA7=0;
+    //      //第10个数据8位
+    //  Uart_DATA10.bf.DATA0=0;
+    //  Uart_DATA10.bf.DATA1=0;
+    //  Uart_DATA10.bf.DATA2=0;
+    //  Uart_DATA10.bf.DATA3=0;
+    //  Uart_DATA10.bf.DATA4=0;
+    //  Uart_DATA10.bf.DATA5=0;
+    //  Uart_DATA10.bf.DATA6=0;
+    //  Uart_DATA10.bf.DATA7=0;
+    //      //第11个数据8位
+    //  Uart_DATA11.bf.DATA0=0;
+    //  Uart_DATA11.bf.DATA1=0;
+    //  Uart_DATA11.bf.DATA2=0;
+    //  Uart_DATA11.bf.DATA3=0;
+    //  Uart_DATA11.bf.DATA4=0;
+    //  Uart_DATA11.bf.DATA5=0;
+    //  Uart_DATA11.bf.DATA6=0;
+    //  Uart_DATA11.bf.DATA7=0;
+    //      //第12个数据8位
+    //  Uart_DATA12.bf.DATA0=0;
+    //  Uart_DATA12.bf.DATA1=0;
+    //  Uart_DATA12.bf.DATA2=0;
+    //  Uart_DATA12.bf.DATA3=0;
+    //  Uart_DATA12.bf.DATA4=0;
+    //  Uart_DATA12.bf.DATA5=0;
+    //  Uart_DATA12.bf.DATA6=0;
+    //  Uart_DATA12.bf.DATA7=0;
+    //      //第13个数据8位
+    //  Uart_DATA13.bf.DATA0=0;
+    //  Uart_DATA13.bf.DATA1=0;
+    //  Uart_DATA13.bf.DATA2=0;
+    //  Uart_DATA13.bf.DATA3=0;
+    //  Uart_DATA13.bf.DATA4=0;
+    //  Uart_DATA13.bf.DATA5=0;
+    //  Uart_DATA13.bf.DATA6=0;
+    //  Uart_DATA13.bf.DATA7=0;
+    //      //第14个数据8位
+    //  Uart_DATA14.bf.DATA0=0;
+    //  Uart_DATA14.bf.DATA1=0;
+    //  Uart_DATA14.bf.DATA2=0;
+    //  Uart_DATA14.bf.DATA3=0;
+    //  Uart_DATA14.bf.DATA4=0;
+    //  Uart_DATA14.bf.DATA5=0;
+    //  Uart_DATA14.bf.DATA6=0;
+    //  Uart_DATA14.bf.DATA7=0;
+    //      //第15个数据8位
+    //  Uart_DATA15.bf.DATA0=0;
+    //  Uart_DATA15.bf.DATA1=0;
+    //  Uart_DATA15.bf.DATA2=0;
+    //  Uart_DATA15.bf.DATA3=0;
+    //  Uart_DATA15.bf.DATA4=0;
+    //  Uart_DATA15.bf.DATA5=0;
+    //  Uart_DATA15.bf.DATA6=0;
+    //  Uart_DATA15.bf.DATA7=0;
+}
+void Uart_Int02(void)
+{
+    //参数清零因为复用问题
+    Uart_DATA00.DATA00 = 0; Uart_DATA01.DATA00 = 0; Uart_DATA02.DATA00 = 0; Uart_DATA03.DATA00 = 0;
+    Uart_DATA04.DATA00 = 0; Uart_DATA05.DATA00 = 0; Uart_DATA06.DATA00 = 0; Uart_DATA07.DATA00 = 0;
+    Uart_DATA08.DATA00 = 0; Uart_DATA09.DATA00 = 0; Uart_DATA10.DATA00 = 0; Uart_DATA11.DATA00 = 0;
+    Uart_DATA12.DATA00 = 0; Uart_DATA13.DATA00 = 0; Uart_DATA14.DATA00 = 0; Uart_DATA15.DATA00 = 0;
+    //第0个数据8位
+    Uart_DATA00.DATA00 = 0;
+    //  Uart_DATA00.bf.DATA0=0;
+    //  Uart_DATA00.bf.DATA1=0;
+    //  Uart_DATA00.bf.DATA2=0;
+    //  Uart_DATA00.bf.DATA3=0;
+    //  Uart_DATA00.bf.DATA4=0;
+    //  Uart_DATA00.bf.DATA5=0;
+    //  Uart_DATA00.bf.DATA6=0;
+    //  Uart_DATA00.bf.DATA7=0;
+    //第1个数据8位
+    Uart_DATA01.DATA00 = 0;
+    //  Uart_DATA01.bf.DATA0=0;
+    //  Uart_DATA01.bf.DATA1=0;
+    //  Uart_DATA01.bf.DATA2=0;
+    //  Uart_DATA01.bf.DATA3=0;
+    //  Uart_DATA01.bf.DATA4=0;
+    //  Uart_DATA01.bf.DATA5=0;
+    //  Uart_DATA01.bf.DATA6=0;
+    //  Uart_DATA01.bf.DATA7=0;
+    //第2个数据8位
+    Uart_DATA02.DATA00 = 0;
+    //  Uart_DATA02.bf.DATA0=0;
+    //  Uart_DATA02.bf.DATA1=0;
+    //  Uart_DATA02.bf.DATA2=0;
+    //  Uart_DATA02.bf.DATA3=0;
+    //  Uart_DATA02.bf.DATA4=0;
+    //  Uart_DATA02.bf.DATA5=0;
+    //  Uart_DATA02.bf.DATA6=0;
+    //  Uart_DATA02.bf.DATA7=0;
+    //第3个数据8位
+    Uart_DATA03.DATA00 = 0;
+    //  Uart_DATA03.bf.DATA0=0;
+    //  Uart_DATA03.bf.DATA1=0;
+    //  Uart_DATA03.bf.DATA2=0;
+    //  Uart_DATA03.bf.DATA3=0;
+    //  Uart_DATA03.bf.DATA4=0;
+    //  Uart_DATA03.bf.DATA5=0;
+    //  Uart_DATA03.bf.DATA6=0;
+    //  Uart_DATA03.bf.DATA7=0;
+    //第4个数据8位
+    Uart_DATA04.DATA00 = 0;
+    //  Uart_DATA04.bf.DATA0=0;
+    //  Uart_DATA04.bf.DATA1=0;
+    //  Uart_DATA04.bf.DATA2=0;
+    //  Uart_DATA04.bf.DATA3=0;
+    //  Uart_DATA04.bf.DATA4=0;
+    //  Uart_DATA04.bf.DATA5=0;
+    //  Uart_DATA04.bf.DATA6=0;
+    //  Uart_DATA04.bf.DATA7=0;
+    //      //第5个数据8位
+    Uart_DATA05.DATA00 = 0;
+    //  Uart_DATA05.bf.DATA0=0;
+    //  Uart_DATA05.bf.DATA1=0;
+    //  Uart_DATA05.bf.DATA2=0;
+    //  Uart_DATA05.bf.DATA3=0;
+    //  Uart_DATA05.bf.DATA4=0;
+    //  Uart_DATA05.bf.DATA5=0;
+    //  Uart_DATA05.bf.DATA6=0;
+    //  Uart_DATA05.bf.DATA7=0;
+    //      //第6个数据8位
+    Uart_DATA06.DATA00 = 0;
+    //  Uart_DATA06.bf.DATA0=0;
+    //  Uart_DATA06.bf.DATA1=0;
+    //  Uart_DATA06.bf.DATA2=0;
+    //  Uart_DATA06.bf.DATA3=0;
+    //  Uart_DATA06.bf.DATA4=0;
+    //  Uart_DATA06.bf.DATA5=0;
+    //  Uart_DATA06.bf.DATA6=0;
+    //  Uart_DATA06.bf.DATA7=0;
+    //      //第7个数据8位
+    Uart_DATA07.DATA00 = 0;
+    //  Uart_DATA07.bf.DATA0=0;
+    //  Uart_DATA07.bf.DATA1=0;
+    //  Uart_DATA07.bf.DATA2=0;
+    //  Uart_DATA07.bf.DATA3=0;
+    //  Uart_DATA07.bf.DATA4=0;
+    //  Uart_DATA07.bf.DATA5=0;
+    //  Uart_DATA07.bf.DATA6=0;
+    //  Uart_DATA07.bf.DATA7=0;
+    //      //第8个数据8位
+    Uart_DATA08.DATA00 = 0;
+    //  Uart_DATA08.bf.DATA0=0;
+    //  Uart_DATA08.bf.DATA1=0;
+    //  Uart_DATA08.bf.DATA2=0;
+    //  Uart_DATA08.bf.DATA3=0;
+    //  Uart_DATA08.bf.DATA4=0;
+    //  Uart_DATA08.bf.DATA5=0;
+    //  Uart_DATA08.bf.DATA6=0;
+    //  Uart_DATA08.bf.DATA7=0;
+    //      //第9个数据8位
+    Uart_DATA09.DATA00 = 0;
+    //  Uart_DATA09.bf.DATA0=0;
+    //  Uart_DATA09.bf.DATA1=0;
+    //  Uart_DATA09.bf.DATA2=0;
+    //  Uart_DATA09.bf.DATA3=0;
+    //  Uart_DATA09.bf.DATA4=0;
+    //  Uart_DATA09.bf.DATA5=0;
+    //  Uart_DATA09.bf.DATA6=0;
+    //  Uart_DATA09.bf.DATA7=0;
+    //      //第10个数据8位
+    Uart_DATA10.DATA00 = 0;
+    //  Uart_DATA10.bf.DATA0=0;
+    //  Uart_DATA10.bf.DATA1=0;
+    //  Uart_DATA10.bf.DATA2=0;
+    //  Uart_DATA10.bf.DATA3=0;
+    //  Uart_DATA10.bf.DATA4=0;
+    //  Uart_DATA10.bf.DATA5=0;
+    //  Uart_DATA10.bf.DATA6=0;
+    //  Uart_DATA10.bf.DATA7=0;
+    //      //第11个数据8位
+    Uart_DATA11.DATA00 = 0;
+    //  Uart_DATA11.bf.DATA0=0;
+    //  Uart_DATA11.bf.DATA1=0;
+    //  Uart_DATA11.bf.DATA2=0;
+    //  Uart_DATA11.bf.DATA3=0;
+    //  Uart_DATA11.bf.DATA4=0;
+    //  Uart_DATA11.bf.DATA5=0;
+    //  Uart_DATA11.bf.DATA6=0;
+    //  Uart_DATA11.bf.DATA7=0;
+    //      //第12个数据8位
+    Uart_DATA12.DATA00 = 0;
+    //  Uart_DATA12.bf.DATA0=0;
+    //  Uart_DATA12.bf.DATA1=0;
+    //  Uart_DATA12.bf.DATA2=0;
+    //  Uart_DATA12.bf.DATA3=0;
+    //  Uart_DATA12.bf.DATA4=0;
+    //  Uart_DATA12.bf.DATA5=0;
+    //  Uart_DATA12.bf.DATA6=0;
+    //  Uart_DATA12.bf.DATA7=0;
+    //      //第13个数据8位
+    Uart_DATA13.DATA00 = 0;
+    //  Uart_DATA13.bf.DATA0=0;
+    //  Uart_DATA13.bf.DATA1=0;
+    //  Uart_DATA13.bf.DATA2=0;
+    //  Uart_DATA13.bf.DATA3=0;
+    //  Uart_DATA13.bf.DATA4=0;
+    //  Uart_DATA13.bf.DATA5=0;
+    //  Uart_DATA13.bf.DATA6=0;
+    //  Uart_DATA13.bf.DATA7=0;
+    //      //第14个数据8位
+    Uart_DATA14.DATA00 = 0;
+    //  Uart_DATA14.bf.DATA0=0;
+    //  Uart_DATA14.bf.DATA1=0;
+    //  Uart_DATA14.bf.DATA2=0;
+    //  Uart_DATA14.bf.DATA3=0;
+    //  Uart_DATA14.bf.DATA4=0;
+    //  Uart_DATA14.bf.DATA5=0;
+    //  Uart_DATA14.bf.DATA6=0;
+    //  Uart_DATA14.bf.DATA7=0;
+    //      //第15个数据8位
+    Uart_DATA15.DATA00 = 0;
+    //  Uart_DATA15.bf.DATA0=0;
+    //  Uart_DATA15.bf.DATA1=0;
+    //  Uart_DATA15.bf.DATA2=0;
+    //  Uart_DATA15.bf.DATA3=0;
+    //  Uart_DATA15.bf.DATA4=0;
+    //  Uart_DATA15.bf.DATA5=0;
+    //  Uart_DATA15.bf.DATA6=0;
+    //  Uart_DATA15.bf.DATA7=0;
+}
+
+void Uart_Int_Finsh(void)
+{
+    //参数清零因为复用问题
+    Uart_DATA00.DATA00 = 0; Uart_DATA01.DATA00 = 0; Uart_DATA02.DATA00 = 0; Uart_DATA03.DATA00 = 0;
+    Uart_DATA04.DATA00 = 0; Uart_DATA05.DATA00 = 0; Uart_DATA06.DATA00 = 0; Uart_DATA07.DATA00 = 0;
+    Uart_DATA08.DATA00 = 0; Uart_DATA09.DATA00 = 0; Uart_DATA10.DATA00 = 0; Uart_DATA11.DATA00 = 0;
+    Uart_DATA12.DATA00 = 0; Uart_DATA13.DATA00 = 0; Uart_DATA14.DATA00 = 0; Uart_DATA15.DATA00 = 0;
+}
+void Uart_Run01(void)
+{
+    uint16  Power = 0;
+    Power = P_PowerReal;
+    //参数清零因为复用问题
+    Uart_DATA00.DATA00 = 0; Uart_DATA01.DATA00 = 0; Uart_DATA02.DATA00 = 0; Uart_DATA03.DATA00 = 0;
+    Uart_DATA04.DATA00 = 0; Uart_DATA05.DATA00 = 0; Uart_DATA06.DATA00 = 0; Uart_DATA07.DATA00 = 0;
+    Uart_DATA08.DATA00 = 0; Uart_DATA09.DATA00 = 0; Uart_DATA10.DATA00 = 0; Uart_DATA11.DATA00 = 0;
+    Uart_DATA12.DATA00 = 0; Uart_DATA13.DATA00 = 0; Uart_DATA14.DATA00 = 0; Uart_DATA15.DATA00 = 0;
+    //第0个数据8位
+    //  SYS_RunMode;
+    Uart_DATA00.DATA00 = SYS_RunMode;
+    //  Uart_DATA00.bf.DATA0=0; //回送模式  收啥发啥
+    //  Uart_DATA00.bf.DATA1=0;
+    //  Uart_DATA00.bf.DATA2=0;
+    //  Uart_DATA00.bf.DATA3=0;
+    Uart_DATA00.bf.DATA4 = mcSpeedRamp.FlagONOFF; //压缩机开/关状态  0:压缩机关  1:压缩机开
+    //  Uart_DATA00.bf.DATA5=0;//预留
+    //  Uart_DATA00.bf.DATA6=0;
+    //  Uart_DATA00.bf.DATA7=0;
+    //第1个数据8位
+    Uart_DATA01.DATA00 = S_Value2; //压缩机运行转速  实际运行转速 单位:rps
+    //  Uart_DATA01.bf.DATA0=0;
+    //  Uart_DATA01.bf.DATA1=0;
+    //  Uart_DATA01.bf.DATA2=0;
+    //  Uart_DATA01.bf.DATA3=0;
+    //  Uart_DATA01.bf.DATA4=0;
+    //  Uart_DATA01.bf.DATA5=0;
+    //  Uart_DATA01.bf.DATA6=0;
+    //  Uart_DATA01.bf.DATA7=0;
+    //第2个数据8位
+    Uart_DATA02.DATA00 = Fengji_FG.FENJIPINLV2 / 10; //外风机1转速  实际转速/10  单位:rpm
+    //  Uart_DATA02.bf.DATA0=0;
+    //  Uart_DATA02.bf.DATA1=0;
+    //  Uart_DATA02.bf.DATA2=0;
+    //  Uart_DATA02.bf.DATA3=0;
+    //  Uart_DATA02.bf.DATA4=0;
+    //  Uart_DATA02.bf.DATA5=0;
+    //  Uart_DATA02.bf.DATA6=0;
+    //  Uart_DATA02.bf.DATA7=0;
+    //第3个数据8位
+    Uart_DATA03.DATA00 = 0; //外风机2转速  实际转速/10  单位:rpm
+    //  Uart_DATA03.bf.DATA0=0;
+    //  Uart_DATA03.bf.DATA1=0;
+    //  Uart_DATA03.bf.DATA2=0;
+    //  Uart_DATA03.bf.DATA3=0;
+    //  Uart_DATA03.bf.DATA4=0;
+    //  Uart_DATA03.bf.DATA5=0;
+    //  Uart_DATA03.bf.DATA6=0;
+    //  Uart_DATA03.bf.DATA7=0;
+    //      //第4个数据8位
+    Uart_DATA04.DATA00 = Power >> 5; //压缩机运行功率  实际运行功率/32  单位:W
+    //  Uart_DATA04.bf.DATA0=0;
+    //  Uart_DATA04.bf.DATA1=0;
+    //  Uart_DATA04.bf.DATA2=0;
+    //  Uart_DATA04.bf.DATA3=0;
+    //  Uart_DATA04.bf.DATA4=0;
+    //  Uart_DATA04.bf.DATA5=0;
+    //  Uart_DATA04.bf.DATA6=0;
+    //  Uart_DATA04.bf.DATA7=0;
+    //      //第5个数据8位
+    Uart_DATA05.DATA00 = 0; //预留
+    //  Uart_DATA05.bf.DATA0=0;
+    //  Uart_DATA05.bf.DATA1=0;
+    //  Uart_DATA05.bf.DATA2=0;
+    //  Uart_DATA05.bf.DATA3=0;
+    //  Uart_DATA05.bf.DATA4=0;
+    //  Uart_DATA05.bf.DATA5=0;
+    //  Uart_DATA05.bf.DATA6=0;
+    //  Uart_DATA05.bf.DATA7=0;
+    //      //第6个数据8位
+    Uart_DATA06.DATA00 = 0; //电子膨胀阀开度
+    //  Uart_DATA06.bf.DATA0=0;
+    //  Uart_DATA06.bf.DATA1=0;
+    //  Uart_DATA06.bf.DATA2=0;
+    //  Uart_DATA06.bf.DATA3=0;
+    //  Uart_DATA06.bf.DATA4=0;
+    //  Uart_DATA06.bf.DATA5=0;
+    //  Uart_DATA06.bf.DATA6=0;
+    //  Uart_DATA06.bf.DATA7=0;
+    //      //第7个数据8位
+    Uart_DATA07.DATA00 = (((uint32)(mcFocCtrl.mcDcbusFlt * HW_BOARD_VOLT_MAX)) >> 15) >> 2; //直流母线电压  实际直流母线电压值/4   单位:V
+    //  Uart_DATA07.bf.DATA0=0;
+    //  Uart_DATA07.bf.DATA1=0;
+    //  Uart_DATA07.bf.DATA2=0;
+    //  Uart_DATA07.bf.DATA3=0;
+    //  Uart_DATA07.bf.DATA4=0;
+    //  Uart_DATA07.bf.DATA5=0;
+    //  Uart_DATA07.bf.DATA6=0;
+    //  Uart_DATA07.bf.DATA7=0;
+    //      //第8个数据8位
+    //      Uart_DATA08.DATA08=0;
+    Uart_DATA08.bf.DATA0 = 0; //室外环境温度小数标志   00: 0℃标志  01: 0.25℃标志  10: 0.5℃标志  11: 0.75℃标志
+    Uart_DATA08.bf.DATA1 = 0;
+    Uart_DATA08.bf.DATA2 = 0; //室外冷凝器温度小数标志
+    Uart_DATA08.bf.DATA3 = 0;
+    Uart_DATA08.bf.DATA4 = 0; //室外排气温度小数标志
+    Uart_DATA08.bf.DATA5 = 0;
+    //      Uart_DATA08.bf.DATA6=0;//预留
+    //      Uart_DATA08.bf.DATA7=0;
+    //      //第9个数据8位
+    Uart_DATA09.DATA00 = Huan_temp / 10 + 40; //室外环境温度  0h:-40℃,数据每增加1则温度增加1℃
+    //  Uart_DATA09.bf.DATA0=0;
+    //  Uart_DATA09.bf.DATA1=0;
+    //  Uart_DATA09.bf.DATA2=0;
+    //  Uart_DATA09.bf.DATA3=0;
+    //  Uart_DATA09.bf.DATA4=0;
+    //  Uart_DATA09.bf.DATA5=0;
+    //  Uart_DATA09.bf.DATA6=0;
+    //  Uart_DATA09.bf.DATA7=0;
+    //      //第10个数据8位
+    Uart_DATA10.DATA00 = Guan_temp / 10 + 40; //室外冷凝器中间温度  0h:-40℃,数据每增加1则温度增加1℃
+    //  Uart_DATA10.bf.DATA0=0;
+    //  Uart_DATA10.bf.DATA1=0;
+    //  Uart_DATA10.bf.DATA2=0;
+    //  Uart_DATA10.bf.DATA3=0;
+    //  Uart_DATA10.bf.DATA4=0;
+    //  Uart_DATA10.bf.DATA5=0;
+    //  Uart_DATA10.bf.DATA6=0;
+    //  Uart_DATA10.bf.DATA7=0;
+    //      //第11个数据8位
+    Uart_DATA11.DATA00 = Paiqi_temp / 10 + 40; //室外排气温度  0h:-40℃,数据每增加1则温度增加1℃
+    //  Uart_DATA11.bf.DATA0=0;
+    //  Uart_DATA11.bf.DATA1=0;
+    //  Uart_DATA11.bf.DATA2=0;
+    //  Uart_DATA11.bf.DATA3=0;
+    //  Uart_DATA11.bf.DATA4=0;
+    //  Uart_DATA11.bf.DATA5=0;
+    //  Uart_DATA11.bf.DATA6=0;
+    //  Uart_DATA11.bf.DATA7=0;
+    //      //第12个数据8位
+    //    Uart_DATA12.DATA12=0;
+    Uart_DATA12.bf.DATA0 = 0; //除霜要求  0:无要求  1:除霜要求
+    Uart_DATA12.bf.DATA1 = 0; //普通除霜状态 0:通常状态(default) 或特殊除霜状态  1:普通除霜中
+    Uart_DATA12.bf.DATA2 = 0; //回油状态  0:无需停内风机的制热回油或非回油状态  1:制冷回油 或 需要停内风机的制热回油
+    Uart_DATA12.bf.DATA3 = 0; //3分钟待机状态  0:通常状态   1:3分钟待机中
+    Uart_DATA12.bf.DATA4 = 0; //电子膨胀阀状态 0:通常状态  1:复位中
+    Uart_DATA12.bf.DATA5 = 0; //外机静音状态  0:通常状态  1:外机静音中
+    Uart_DATA12.bf.DATA6 = 0; //外机防凝露状态  0:通常状态 1:外机防凝露中
+    Uart_DATA12.bf.DATA7 = 0; //SAVE状态  0:通常状态   1:SAVE状态运行中
+    //      //第13个数据8位
+    //      Uart_DATA13.DATA13=0;
+    Uart_DATA13.bf.DATA0 = 0; //回送自测状态
+    Uart_DATA13.bf.DATA1 = 0;
+    Uart_DATA13.bf.DATA2 = mcFaultSource; //外机任意停机故障  0:正常  1:故障
+    Uart_DATA13.bf.DATA3 = 0; //特殊除霜状态  0:通常状态(default) 或普通除霜状态  1:特殊除霜中
+    //  Uart_DATA13.bf.DATA4=0;//预留
+    //  Uart_DATA13.bf.DATA5=0;
+    //  Uart_DATA13.bf.DATA6=0;
+    //  Uart_DATA13.bf.DATA7=0;
+    //      //第14个数据8位
+    Uart_DATA14.DATA00 = 0; //外机AC电流值  实际电流,单位0.5A
+    //  Uart_DATA14.bf.DATA0=0;
+    //  Uart_DATA14.bf.DATA1=0;
+    //  Uart_DATA14.bf.DATA2=0;
+    //  Uart_DATA14.bf.DATA3=0;
+    //  Uart_DATA14.bf.DATA4=0;
+    //  Uart_DATA14.bf.DATA5=0;
+    //  Uart_DATA14.bf.DATA6=0;
+    //  Uart_DATA14.bf.DATA7=0;
+    //      //第15个数据8位
+    //    Uart_DATA15.DATA15=0;
+    Uart_DATA15.bf.DATA0 = 0; //DRED模式运行状态
+    Uart_DATA15.bf.DATA1 = 0;
+    Uart_DATA15.bf.DATA2 = 0; //强制制冷  0:未执行;1:执行
+    Uart_DATA15.bf.DATA3 = 0; //强制制热
+    Uart_DATA15.bf.DATA4 = 0; //强制除霜
+    Uart_DATA15.bf.DATA5 = 0; //收氟模式
+    Uart_DATA15.bf.DATA6 = 0; //试运行
+    //  Uart_DATA15.bf.DATA7=0; //预留
+}
+void Uart_Run02(void)
+{
+    //参数清零因为复用问题
+    Uart_DATA00.DATA00 = 0; Uart_DATA01.DATA00 = 0; Uart_DATA02.DATA00 = 0; Uart_DATA03.DATA00 = 0;
+    Uart_DATA04.DATA00 = 0; Uart_DATA05.DATA00 = 0; Uart_DATA06.DATA00 = 0; Uart_DATA07.DATA00 = 0;
+    Uart_DATA08.DATA00 = 0; Uart_DATA09.DATA00 = 0; Uart_DATA10.DATA00 = 0; Uart_DATA11.DATA00 = 0;
+    Uart_DATA12.DATA00 = 0; Uart_DATA13.DATA00 = 0; Uart_DATA14.DATA00 = 0; Uart_DATA15.DATA00 = 0;
+    //第0个数据8位
+    //  Uart_DATA00.DATA00=0;
+    Uart_DATA00.bf.DATA0 = 0; //外机AC电流保护限/降频  0:正常            1:限/降频
+    Uart_DATA00.bf.DATA1 = 0; //排气保护限/降频
+    Uart_DATA00.bf.DATA2 = 0; //防冻结保护限/降频
+    Uart_DATA00.bf.DATA3 = 0; //过负荷保护限/降频
+    Uart_DATA00.bf.DATA4 = 0; //直流母线电压保护限/降频
+    Uart_DATA00.bf.DATA5 = 0; //模块温度保护限/降频
+    Uart_DATA00.bf.DATA6 = 0; //模块电流(压缩机相电流)保护限/降频
+    Uart_DATA00.bf.DATA7 = 0; //功率过高保护限/降频
+    //第1个数据8位
+    Uart_DATA01.DATA00 = 0;
+    //  Uart_DATA01.bf.DATA0=0;
+    //  Uart_DATA01.bf.DATA1=0;
+    //  Uart_DATA01.bf.DATA2=0;
+    //  Uart_DATA01.bf.DATA3=0;
+    //  Uart_DATA01.bf.DATA4=0;
+    //  Uart_DATA01.bf.DATA5=0;
+    //  Uart_DATA01.bf.DATA6=0;
+    //  Uart_DATA01.bf.DATA7=0;
+    //第2个数据8位
+    //  Uart_DATA02.DATA02=0;
+    Uart_DATA02.bf.DATA0 = 0; //功率过高保护 0:正常            1:故障
+    Uart_DATA02.bf.DATA1 = 0; //防冻结保护
+    Uart_DATA02.bf.DATA2 = 0; //模块温度保护
+    Uart_DATA02.bf.DATA3 = 0; //模块电流(Fo)保护
+    Uart_DATA02.bf.DATA4 = 0; //外机AC电流保护
+    Uart_DATA02.bf.DATA5 = 0; //过负荷保护
+    Uart_DATA02.bf.DATA6 = 0; //排气保护
+    Uart_DATA02.bf.DATA7 = 0; //压缩机热过载保护
+    //第3个数据8位
+    //      Uart_DATA03.DATA03=0;
+    Uart_DATA03.bf.DATA0 = 0; //一拖多内外机管路连接与通讯连接不匹配  0:正常        1:故障
+    Uart_DATA03.bf.DATA1 = 0; //室内外机型不匹配
+    Uart_DATA03.bf.DATA2 = 0; //模式冲突
+    Uart_DATA03.bf.DATA3 = 0; //缺氟保护
+    Uart_DATA03.bf.DATA4 = 0; //直流母线电压过低保护
+    Uart_DATA03.bf.DATA5 = 0; //直流母线电压过高保护
+    Uart_DATA03.bf.DATA6 = 0; //PFC过流故障
+    Uart_DATA03.bf.DATA7 = 0; //压缩机缺/逆相保护欠相,脱调(缺相)
+    //第4个数据8位
+    Uart_DATA04.DATA00 = 0;
+    //  Uart_DATA04.bf.DATA0=0;
+    //  Uart_DATA04.bf.DATA1=0;
+    //  Uart_DATA04.bf.DATA2=0;
+    //  Uart_DATA04.bf.DATA3=0;
+    //  Uart_DATA04.bf.DATA4=0;
+    //  Uart_DATA04.bf.DATA5=0;//四通阀换向异常  0:正常        1:故障
+    //  Uart_DATA04.bf.DATA6=0;
+    //  Uart_DATA04.bf.DATA7=0;
+    //      //第5个数据8位
+    //    Uart_DATA05.DATA05=0;
+    Uart_DATA05.bf.DATA0 = 0; //压缩机退磁保护  0:正常        1:故障
+    Uart_DATA05.bf.DATA1 = 0; //压缩机失步
+    Uart_DATA05.bf.DATA2 = 0; //压缩机相电流电路检测故障
+    Uart_DATA05.bf.DATA3 = 0; //电容充电故障
+    Uart_DATA05.bf.DATA4 = 0; //整机电流检测故障
+    Uart_DATA05.bf.DATA5 = 0; //直流母线电压跌落故障
+    Uart_DATA05.bf.DATA6 = 0; //系统高压保护
+    Uart_DATA05.bf.DATA7 = 0; //系统低压保护
+    //      //第6个数据8位
+    //      Uart_DATA06.DATA06=0;
+    Uart_DATA06.bf.DATA0 = 0; //温漂保护
+    Uart_DATA06.bf.DATA1 = 0; //交流接触器保护
+    Uart_DATA06.bf.DATA2 = 0; //驱动板环境感温包故障
+    Uart_DATA06.bf.DATA3 = 0; //压缩机拨码异常
+    Uart_DATA06.bf.DATA4 = 0; //超速
+    Uart_DATA06.bf.DATA5 = 0; //驱动模块复位
+    Uart_DATA06.bf.DATA6 = 0; //启动失败
+    Uart_DATA06.bf.DATA7 = 0; //压缩机堵转
+    //      //第7个数据8位
+    //    Uart_DATA07.DATA07=0;
+    //  Uart_DATA07.bf.DATA0=0;//预留
+    //  Uart_DATA07.bf.DATA1=0;
+    //  Uart_DATA07.bf.DATA2=0;
+    Uart_DATA07.bf.DATA3 = 0; //风机调速板通讯故障
+    Uart_DATA07.bf.DATA4 = 0; //交流输入电压异常
+    Uart_DATA07.bf.DATA5 = 0; //压缩机相电流过流
+    Uart_DATA07.bf.DATA6 = 0; //驱动板通讯故障
+    Uart_DATA07.bf.DATA7 = 0; //传感器连接保护(电流传感器没有接到对应的U相或V相)
+    //      //第8个数据8位
+    Uart_DATA08.DATA00 = 0;
+    //  Uart_DATA08.bf.DATA0=0;
+    //  Uart_DATA08.bf.DATA1=0;
+    //  Uart_DATA08.bf.DATA2=0;
+    //  Uart_DATA08.bf.DATA3=0;
+    //  Uart_DATA08.bf.DATA4=0;
+    //  Uart_DATA08.bf.DATA5=0;
+    //  Uart_DATA08.bf.DATA6=0;
+    //  Uart_DATA08.bf.DATA7=0;
+    //      //第9个数据8位
+    Uart_DATA09.DATA00 = mcFocCtrl.IPMtemp / 10 - 40; //IPM模块温度  0h:-40℃,数据每增加1则温度增加1℃
+    //  Uart_DATA09.bf.DATA0=0;
+    //  Uart_DATA09.bf.DATA1=0;
+    //  Uart_DATA09.bf.DATA2=0;
+    //  Uart_DATA09.bf.DATA3=0;
+    //  Uart_DATA09.bf.DATA4=0;
+    //  Uart_DATA09.bf.DATA5=0;
+    //  Uart_DATA09.bf.DATA6=0;
+    //  Uart_DATA09.bf.DATA7=0;
+    //      //第10个数据8位
+    Uart_DATA10.DATA00 = 0;
+    //  Uart_DATA10.bf.DATA0=0;
+    //  Uart_DATA10.bf.DATA1=0;
+    //  Uart_DATA10.bf.DATA2=0;
+    //  Uart_DATA10.bf.DATA3=0;
+    //  Uart_DATA10.bf.DATA4=0;
+    //  Uart_DATA10.bf.DATA5=0;
+    //  Uart_DATA10.bf.DATA6=0;
+    //  Uart_DATA10.bf.DATA7=0;
+    //      //第11个数据8位
+    Uart_DATA11.DATA00 = 0;
+    //  Uart_DATA11.bf.DATA0=0;
+    //  Uart_DATA11.bf.DATA1=0;
+    //  Uart_DATA11.bf.DATA2=0;
+    //  Uart_DATA11.bf.DATA3=0;
+    //  Uart_DATA11.bf.DATA4=0;
+    //  Uart_DATA11.bf.DATA5=0;
+    //  Uart_DATA11.bf.DATA6=0;
+    //  Uart_DATA11.bf.DATA7=0;
+    //      //第12个数据8位
+    Uart_DATA12.DATA00 = 0;
+    //  Uart_DATA12.bf.DATA0=0;
+    //  Uart_DATA12.bf.DATA1=0;
+    //  Uart_DATA12.bf.DATA2=0;
+    //  Uart_DATA12.bf.DATA3=0;
+    //  Uart_DATA12.bf.DATA4=0;
+    //  Uart_DATA12.bf.DATA5=0;
+    //  Uart_DATA12.bf.DATA6=0;
+    //  Uart_DATA12.bf.DATA7=0;
+    //      //第13个数据8位
+    Uart_DATA13.DATA00 = 0;
+    //  Uart_DATA13.bf.DATA0=0;
+    //  Uart_DATA13.bf.DATA1=0;
+    //  Uart_DATA13.bf.DATA2=0;
+    //  Uart_DATA13.bf.DATA3=0;
+    //  Uart_DATA13.bf.DATA4=0;
+    //  Uart_DATA13.bf.DATA5=0;
+    //  Uart_DATA13.bf.DATA6=0;
+    //  Uart_DATA13.bf.DATA7=0;
+    //      //第14个数据8位
+    Uart_DATA14.DATA00 = 0;
+    //  Uart_DATA14.bf.DATA0=0;
+    //  Uart_DATA14.bf.DATA1=0;
+    //  Uart_DATA14.bf.DATA2=0;
+    //  Uart_DATA14.bf.DATA3=0;
+    //  Uart_DATA14.bf.DATA4=0;
+    //  Uart_DATA14.bf.DATA5=0;
+    //  Uart_DATA14.bf.DATA6=0;
+    //  Uart_DATA14.bf.DATA7=0;
+    //      //第15个数据8位
+    Uart_DATA15.DATA00 = 0;
+    //  Uart_DATA15.bf.DATA0=0;
+    //  Uart_DATA15.bf.DATA1=0;
+    //  Uart_DATA15.bf.DATA2=0;
+    //  Uart_DATA15.bf.DATA3=0;
+    //  Uart_DATA15.bf.DATA4=0;
+    //  Uart_DATA15.bf.DATA5=0;
+    //  Uart_DATA15.bf.DATA6=0;
+    //  Uart_DATA15.bf.DATA7=0;
+}
+
+
+
+
+void Modbus_respond(void)
+{
+    uint8 u16CRC = 0;
+    Uart.T_DATA[0]  = Uart.Oder;                         //指令
+    Uart.T_DATA[1]  = 0x00;                              //地址   00一拖一
+    Uart.T_DATA[2]  = 0x00;                              //标志
+    Uart.T_DATA[3]  = Uart_DATA00.DATA00;        //数据第0位
+    Uart.T_DATA[4]  = Uart_DATA01.DATA00;            //数据第1位
+    Uart.T_DATA[5]  = Uart_DATA02.DATA00;        //数据第2位
+    Uart.T_DATA[6]  = Uart_DATA03.DATA00;        //数据第3位
+    Uart.T_DATA[7]  = Uart_DATA04.DATA00;        //数据第4位
+    Uart.T_DATA[8]  = Uart_DATA05.DATA00;        //数据第5位
+    Uart.T_DATA[9]  = Uart_DATA06.DATA00;        //数据第6位
+    Uart.T_DATA[10] = Uart_DATA07.DATA00;            //数据第7位
+    Uart.T_DATA[11] = Uart_DATA08.DATA00;          //数据第8位
+    Uart.T_DATA[12] = Uart_DATA09.DATA00;        //数据第9位
+    Uart.T_DATA[13] = Uart_DATA10.DATA00;        //数据第10位
+    Uart.T_DATA[14] = Uart_DATA11.DATA00;        //数据第11位
+    Uart.T_DATA[15] = Uart_DATA12.DATA00;        //数据第12位
+    Uart.T_DATA[16] = Uart_DATA13.DATA00;            //数据第13位
+    Uart.T_DATA[17] = Uart_DATA14.DATA00;          //数据第14位
+    Uart.T_DATA[18] = Uart_DATA15.DATA00;        //数据第15位
+    //          Uart.T_DATA[0]  = 0x31;//Uart.Oder;                          //指令
+    //          Uart.T_DATA[1]  = 0x00;                              //地址   00一拖一
+    //          Uart.T_DATA[2]  = 0x00;                              //标志
+    //          Uart.T_DATA[3]  =1; //Uart_DATA00.DATA00;        //数据第0位
+    //          Uart.T_DATA[4]  =0; //Uart_DATA01.DATA01;            //数据第1位
+    //          Uart.T_DATA[5]  =0; //Uart_DATA02.DATA02;        //数据第2位
+    //          Uart.T_DATA[6]  =0; //Uart_DATA03.DATA03;        //数据第3位
+    //          Uart.T_DATA[7]  =0; //Uart_DATA04.DATA04;        //数据第4位
+    //          Uart.T_DATA[8]  =0; //Uart_DATA05.DATA05;        //数据第5位
+    //          Uart.T_DATA[9]  =0; //Uart_DATA06.DATA06;        //数据第6位
+    //          Uart.T_DATA[10] =0; //Uart_DATA07.DATA07;            //数据第7位
+    //          Uart.T_DATA[11] =0; //Uart_DATA08.DATA08;          //数据第8位
+    //          Uart.T_DATA[12] =0; //Uart_DATA09.DATA09;        //数据第9位
+    //          Uart.T_DATA[13] =0; //Uart_DATA10.DATA10;        //数据第10位
+    //          Uart.T_DATA[14] =0; //Uart_DATA11.DATA11;        //数据第11位
+    //          Uart.T_DATA[15] =0; //Uart_DATA12.DATA12;        //数据第12位
+    //          Uart.T_DATA[16] =0; //Uart_DATA13.DATA13;            //数据第13位
+    //          Uart.T_DATA[17] =0; //Uart_DATA14.DATA14;          //数据第14位
+    //          Uart.T_DATA[18] =0; //Uart_DATA15.DATA15;        //数据第15位
+    u16CRC = BBC(&Uart.T_DATA[0], TX_LEN - 2);
+    Uart.T_DATA[19] = u16CRC;                    //CRC
+    Uart.send_start_falg = 1;
+    
+    if (Uart.send_start_falg == 1)
+    {
+        Uart.Recive_Flag = 1;
+        UT2_DR = Uart.T_DATA[0];
+        UT2TB8 = even_or_odd(Uart.T_DATA[0], evnodd);
+        Uart.send_start_falg = 0;
+        Uart.TxCnt = 0;
+    }
+}
+
+void Modbus_task00(void)
+{
+    if (Uart.Uart_Tmreset >= (T_mreset + T_mwtchg)) //T_mreset
+    {
+        Uart_Int01();
+        Modbus_respond();
+        Uart.Uart_Tmreset = 0;
+    }
+}
+void Modbus_task01(void)
+{
+    if (Uart.Uart_Tmcomcyc >= (T_mcomcyc + T_mwtchg)) //(T_mcomcyc+T_mwtchg)
+    {
+        Uart_Int02();
+        Modbus_respond();
+        Uart.Uart_Tmcomcyc = 0;
+    }
+}
+void Modbus_task02(void)
+{
+    if (Uart.Uart_Tmcomcyc >= (T_mcomcyc + T_mwtchg))
+    {
+        Uart_Int_Finsh();
+        Modbus_respond();
+        Uart.Uart_Tmcomcyc = 0;
+    }
+}
+void Modbus_task03(void)
+{
+    if (Uart.Uart_Tmcomcyc >= (T_mcomcyc + T_mwtchg))
+    {
+        Uart_Run01();
+        Modbus_respond();
+        Uart.Uart_Tmcomcyc = 0;
+    }
+}
+void Modbus_task04(void)
+{
+    if (Uart.Uart_Tmcomcyc >= (T_mcomcyc + T_mwtchg))
+    {
+        Uart_Run02();
+        Modbus_respond();
+        Uart.Uart_Tmcomcyc = 0;
+    }
+}
+void Modbus_task06(void)
+{
+    Uart.YaJI_Speed   = (Uart.R_DATA[4] << 8) | Uart.R_DATA[5];
+    ConTrolCmd.yajispeed = Uart.YaJI_Speed;
+    mcFaultDect.commu_time = 0;
+    Modbus_respond();
+}
+
+/**任务机发送**/
+void Modbus_task(void)
+{
+    switch (Uart.Oder)//判断功能码
+    {
+        case 0x11:            //初始状态1
+            Modbus_task00();
+            break;
+            
+        case 0x12:            //初始状态2
+            Modbus_task01();
+            break;
+            
+        case 0x2F:            //复位结束
+            Modbus_task02();
+            break;
+            
+        case 0x31:            //运转信息1
+            Modbus_task03();
+            break;
+            
+        case 0x32:            //运转信息2
+            Modbus_task04();
+            break;
+            
+        default:
+            break;
+    }
+}
+
+
+
+void Modbus_Recive_task0(void)
+{
+}
+void Modbus_Recive_task1(void)
+{
+}
+void Modbus_Recive_task2(void)
+{
+}
+void Modbus_Recive_task3(void)
+{
+    Uart_Rec_DATA00.DATAT00 = Uart.R_DATA[3];
+    Uart_Rec_DATA01.DATAT00 = Uart.R_DATA[4];
+    Uart_Rec_DATA02.DATAT00 = Uart.R_DATA[5];
+    Uart_Rec_DATA03.DATAT00 = Uart.R_DATA[6];//室内设定温度
+    Uart_Rec_DATA04.DATAT00 = Uart.R_DATA[7];//室内环境温度
+    Uart_Rec_DATA05.DATAT00 = Uart.R_DATA[8];
+    Uart_Rec_DATA06.DATAT00 = Uart.R_DATA[9];//蒸发器温度
+    Uart_Rec_DATA09.DATAT00 = Uart.R_DATA[12];
+    Uart_Rec_DATA10.DATAT00 = Uart.R_DATA[13];
+    Uart_Rec_DATA11.DATAT00 = Uart.R_DATA[14];
+    Uart_Rec_DATA12.DATAT00 = Uart.R_DATA[15];
+    Uart_Rec_DATA13.DATAT00 = Uart.R_DATA[16];
+    Uart_Rec_DATA14.DATAT00 = Uart.R_DATA[17];
+    Uart_Rec_DATA15.DATAT00 = Uart.R_DATA[18];
+    //运行模式提取
+    SYS_RunMode                                = Uart_Rec_DATA00.DATAT00 & 0x0f;
+    
+    if (0 == SYS_RunMode)                  // 上电默认
+    {
+        //       u8_RunMode                         = MODE_FAN;
+    }
+    else if (1 == SYS_RunMode)     // 制冷
+    {
+        u8_RunMode                         = MODE_COOL;
+    }
+    else if (2 == SYS_RunMode)     // 除湿
+    {
+        u8_RunMode                         = MODE_DEHUMIDIFY;
+    }
+    else if (3 == SYS_RunMode)         // 送风
+    {
+        u8_RunMode                         = MODE_FAN;
+    }
+    else if (4 == SYS_RunMode)         // 制热
+    {
+        u8_RunMode                         = MODE_HEAT;
+    }
+    else if (5 == SYS_RunMode)     // 强制制冷
+    {
+        u8_RunMode                         = MODE_COOL;
+    }
+    else if (6 == SYS_RunMode)     // 强制制热
+    {
+        u8_RunMode                         = MODE_HEAT;
+    }
+    else if (7 == SYS_RunMode)     // 强制除霜
+    {
+        u8_RunMode                         = MODE_HEAT;
+    }
+    else if (8 == SYS_RunMode)     // 制冷能力测试
+    {
+        u8_RunMode                         = MODE_COOL;
+    }
+    else if (9 == SYS_RunMode)     // 制热能力测试
+    {
+        u8_RunMode                         = MODE_HEAT;
+    }
+    else if (10 == SYS_RunMode)    // 收氟
+    {
+        u8_RunMode                         = MODE_COOL;
+    }
+    else if (11 == SYS_RunMode)    // 试运行
+    {
+        u8_RunMode                         = MODE_COOL;
+    }
+    
+    // 室内风速
+    FAN_RunSpeed                               = Uart_Rec_DATA01.DATAT00 & 0x0f;
+    
+    if (4 == FAN_RunSpeed)
+    {
+        u1_IndoorFanSpeed               = 4 ; // HH
+    }
+    else if (3 == FAN_RunSpeed)
+    {
+        u1_IndoorFanSpeed               = 3 ; // H
+    }
+    else if (2 == FAN_RunSpeed)
+    {
+        u1_IndoorFanSpeed               = 2 ; // M
+    }
+    else if (0 == FAN_RunSpeed)
+    {
+        u1_IndoorFanSpeed               = 0 ; // STOP
+    }
+    else
+    {
+        u1_IndoorFanSpeed               = 1 ; // L or LL
+    }
+    
+    // 室内设定温度 温度四舍误入  Uart_Rec_DATA02.bf.DATA1
+    //u8_TempSet  u8_TempIndoor  u8_TempIncoil  0代表-20度    0.5度的精度
+    if (Uart_Rec_DATA03.DATAT00 < 20)
+    {
+        u8_TempSet                     = 0;
+    }
+    else
+    {
+        u8_TempSet                     = (Uart_Rec_DATA03.DATAT00 << 1) - 40 + Uart_Rec_DATA02.bf.DATA1;
+    }
+    
+    //室内温度提取
+    if (Uart_Rec_DATA04.DATAT00 < 20)
+    {
+        u8_TempIndoor                  = 0;
+    }
+    else
+    {
+        u8_TempIndoor                  = (Uart_Rec_DATA04.DATAT00 << 1) - 40 + Uart_Rec_DATA02.bf.DATA3;
+    }
+    
+    // 室内盘管温度
+    if (Uart_Rec_DATA06.DATAT00 < 20)
+    {
+        u8_TempIncoil                      = 0;
+    }
+    else
+    {
+        u8_TempIncoil                      = (Uart_Rec_DATA06.DATAT00 << 1) - 40 + Uart_Rec_DATA02.bf.DATA5;
+    }
+    
+    //系统开关状态 其他信息 模式 设定温度 室内温度等更新后再设置开机状态
+    if (Uart_Rec_DATA00.bf.DATA4 == 1)
+    {
+        u1_SystemOnF                    = 1;
+    }
+    else
+    {
+        u1_SystemOnF                    = 0;
+    }
+    
+    if (u1_cnt_idu_comm_task < 255)
+    {
+        u1_cnt_idu_comm_task++;
+    }
+    
+    mcFaultDect.commu_time = 0;
+}
+void Modbus_Recive_task4(void)
+{
+}
+/**任务机接收**/
+void Modbus_Recive_task(void)
+{
+    switch (Uart.R_DATA[0])//判断功能码
+    {
+        case 0x11:            //初始状态1
+            Modbus_Recive_task0();
+            break;
+            
+        case 0x12:            //初始状态2
+            Modbus_Recive_task1();
+            break;
+            
+        case 0x2F:            //复位结束
+            Modbus_Recive_task2();
+            break;
+            
+        case 0x31:            //运转信息1
+            Modbus_Recive_task3();
+            break;
+            
+        case 0x32:            //运转信息2
+            Modbus_Recive_task4();
+            break;
+            
+        default:
+            break;
+    }
+}
+
+/*串口数据处理,处理接收到的串口数据,运行于大循环中*/
+void UartDealResponse1(void)
+{
+    if (FaultNoSource != mcFaultSource)
+    {
+        u8_OutdoorErrorCode                 = mcFaultSource;
+    }
+    
+    u8_IndoorErrorCode                      = 0;
+    
+    if (Modbus_Slave_Receive() == 1)//接收数据
+    {
+        Modbus_Recive_task();
+        mcFaultDect.commu_time = 0;
+        
+        if (Uart.R_DATA[0] == 0x11)
+        {Uart.Oder = 0x12;}
+        else if (Uart.R_DATA[0] == 0x12)
+        {Uart.Oder = 0x2F;}
+        else if (Uart.R_DATA[0] == 0x2F)
+        {Uart.Oder = 0x31;}
+        else if (Uart.R_DATA[0] == 0x31)
+        {Uart.Oder = 0x32;}
+        else if (Uart.R_DATA[0] == 0x32)
+        {Uart.Oder = 0x31;}
+        
+        Uart.recive_sussf_falg = 0;
+    }
+    
+    Modbus_task();//发送数据
+}
+
+
+
+
+
+
+
+/////*****以上为格力通信协议,以下为月兔通信协议******///
+
+
+
+
+
+
+
+#elif (Uart_COMMUNICATION==1)
+
+uint8 BBC2(uint8 * puchMsg, uint8 usDataLen)
+{
+    uint8 i;
+    uint8 bcc = 0;        // Initial value
+    
+    //      for ( i = 0; i < usDataLen; i++ )//  sum
+    //      {
+    //          bcc += puchMsg[i];        // crc ^= *data;
+    //      }
+    for ( i = 0; i < usDataLen; i++ )//  不进位累加、异或检验
+    {
+        bcc = bcc ^ puchMsg[i];      // crc ^= *data;
+    }
+    
+    bcc = (~bcc) + 1;
+    return bcc;
+}
+
+
+/*判断接收数据是否正确*/
+uint8 Modbus_Slave_Receive2(void)
+{
+    uint8 u16CRC = 0;
+    
+    if ((Uart.uarttimejishu >= 30 ) && (Uart.UartReadCnt >= 8)) //Uart.uarttime每包数据的间隔
+    {
+        Uart.recive_lenth = Uart.UartReadCnt;
+        Uart.UartReadCnt = 0;
+        
+        //              u16CRC = Uart.R_DATA[Uart.recive_lenth - 1];//接收到的的校验码
+        //              if (u16CRC == BBC2(&Uart.R_DATA[0], Uart.recive_lenth - 3))
+        //              {
+        //                      Uart.recive_sussf_falg = 1;
+        //                      Uart.send_start_falg = 1;
+        //              }
+        //              else
+        //              {
+        //                      Uart.recive_sussf_falg = 0;
+        //              }
+        //
+        if (0 == CRCCheck(Uart.R_DATA, Uart.recive_lenth))
+        {
+            Uart.recive_sussf_falg = 1;
+            Uart.send_start_falg = 1;
+        }
+        else
+        {
+            Uart.recive_sussf_falg = 0;
+        }
+    }
+    
+    return Uart.recive_sussf_falg;
+}
+
+
+void Modbus_Recive_task23(void)
+{
+    Uart_Rec_DATA00.DATAT00 = Uart.R_DATA[4];//运行模式
+    Uart_Rec_DATA01.DATAT00 = Uart.R_DATA[5];//强制压缩机运转频率
+    Uart_Rec_DATA02.DATAT00 = Uart.R_DATA[6];//设定温度
+    Uart_Rec_DATA03.DATAT00 = Uart.R_DATA[7];//室内机环境温度(高位-整数位)
+    Uart_Rec_DATA04.DATAT00 = Uart.R_DATA[8];//室内机环境温度(低位-小数位)
+    Uart_Rec_DATA05.DATAT00 = Uart.R_DATA[9];//室内盘管温度
+    Uart_Rec_DATA06.DATAT00 = Uart.R_DATA[10];//内机风速档
+    Uart_Rec_DATA09.DATAT00 = Uart.R_DATA[11];//室内风机当前转速
+    Uart_Rec_DATA10.DATAT00 = Uart.R_DATA[12];//测试模式
+    Uart_Rec_DATA11.DATAT00 = Uart.R_DATA[13];//辅助功能标志位
+    Uart_Rec_DATA12.DATAT00 = Uart.R_DATA[14];//室内机故障
+    Uart_Rec_DATA13.DATAT00 = Uart.R_DATA[15];//特殊遥控代码号
+    Uart_Rec_DATA14.DATAT00 = Uart.R_DATA[16];//特殊遥控器代码值
+    Uart_Rec_DATA15.DATAT00 = Uart.R_DATA[17];//室内出风温度
+    
+    //   //运行模式提取
+    //   SYS_RunMode                                = Uart_Rec_DATA00.DATAT00 & 0x0f;
+    //
+    //   if(0 == SYS_RunMode)                   // 关机
+    //   {
+    ////         u8_RunMode                         = MODE_FAN;
+    //   }
+    //   else if(1 == SYS_RunMode)      // 制冷
+    //   {
+    //       u8_RunMode                         = MODE_COOL;
+    //   }
+    //   else if(2 == SYS_RunMode)      // 除湿
+    //   {
+    //       u8_RunMode                         = MODE_DEHUMIDIFY;
+    //   }
+    //   else if(3 == SYS_RunMode)          // 制热
+    //   {
+    //       u8_RunMode                         = MODE_HEAT;
+    //   }
+    //   else if(4 == SYS_RunMode)          // 制热  MODE_FAN
+    //   {
+    //       u8_RunMode                         = MODE_FAN;
+    //   }
+    //
+    //
+    //
+    //   // 室内风速
+    //   FAN_RunSpeed                               = Uart_Rec_DATA06.DATAT00 & 0x0f;
+    //   if(0 == FAN_RunSpeed)
+    //   {
+    //      u1_IndoorFanSpeed               = 0 ; // STOP
+    //   }
+    //   else if(0 == FAN_RunSpeed)
+    //   {
+    //      u1_IndoorFanSpeed               = 1 ; // H  L or LL
+    //   }
+    //   else if(2 == FAN_RunSpeed)
+    //   {
+    //      u1_IndoorFanSpeed               = 2 ; // M
+    //   }
+    //   else if(3 == FAN_RunSpeed)
+    //   {
+    //      u1_IndoorFanSpeed               = 3 ; // H
+    //   }
+    //   else if(4 == FAN_RunSpeed)
+    //   {
+    //      u1_IndoorFanSpeed               = 4 ; // HH
+    //   }
+    //   else if(5 == FAN_RunSpeed)
+    //   {
+    //      u1_IndoorFanSpeed               = 5 ; //  HH
+    //   }
+    //   else if(6 == FAN_RunSpeed)
+    //   {
+    //      u1_IndoorFanSpeed               = 6 ; //  HH
+    //   }
+    
+    //
+    //   // 室内设定温度 温度四舍误入  Uart_Rec_DATA02.bf.DATA1
+    //   //u8_TempSet  u8_TempIndoor  u8_TempIncoil  0代表-20度    0.5度的精度  Uart_Rec_DATA02.DATAT00
+    //   if(Uart_Rec_DATA02.DATAT00 < 20)
+    //   {
+    //       u8_TempSet                     = 0;
+    //   }
+    //   else
+    //   {
+    //       u8_TempSet                     = (Uart_Rec_DATA02.DATAT00<<1)- 64;
+    //   }
+    //
+    //   //室内温度提取
+    //   if(Uart_Rec_DATA03.DATAT00 < 20)
+    //   {
+    //       u8_TempIndoor                  = 0;
+    //   }
+    //   else
+    //   {
+    //       u8_TempIndoor                  = (Uart_Rec_DATA03.DATAT00<<1)-64 + Uart_Rec_DATA04.bf.DATA3/100;
+    //   }
+    
+    //   // 室内盘管温度
+    //   if(Uart_Rec_DATA05.DATAT00 < 20)
+    //   {
+    //       u8_TempIncoil                      = 0;
+    //   }
+    //   else
+    //   {
+    //       u8_TempIncoil                      = (Uart_Rec_DATA05.DATAT00<<1)- 64 ;
+    //   }
+    //
+    //
+    //       //系统开关状态 其他信息 模式 设定温度 室内温度等更新后再设置开机状态
+    //   if(SYS_RunMode==0)
+    //   {
+    //          u1_SystemOnF                    = 0;
+    //   }
+    //   else
+    //   {
+    //          u1_SystemOnF                    = 1;
+    //   }
+    
+    if (u1_cnt_idu_comm_task < 255)
+    {
+        u1_cnt_idu_comm_task++;
+    }
+    
+    mcFaultDect.commu_time = 0;
+}
+
+void Uart_Run21(void)
+{
+    uint16  Power = 0;
+    Power = P_PowerReal;
+    //参数清零因为复用问题
+    Uart_DATA00.DATA00 = 0; Uart_DATA01.DATA00 = 0; Uart_DATA02.DATA00 = 0; Uart_DATA03.DATA00 = 0;
+    Uart_DATA04.DATA00 = 0; Uart_DATA05.DATA00 = 0; Uart_DATA06.DATA00 = 0; Uart_DATA07.DATA00 = 0;
+    Uart_DATA08.DATA00 = 0; Uart_DATA09.DATA00 = 0; Uart_DATA10.DATA00 = 0; Uart_DATA11.DATA00 = 0;
+    Uart_DATA12.DATA00 = 0; Uart_DATA13.DATA00 = 0; Uart_DATA14.DATA00 = 0; Uart_DATA15.DATA00 = 0;
+    //第0个数据8位
+    //  SYS_RunMode;
+    Uart_DATA00.DATA00 = SYS_RunMode;
+    //  Uart_DATA00.bf.DATA0=0; //回送模式  收啥发啥
+    //  Uart_DATA00.bf.DATA1=0;
+    //  Uart_DATA00.bf.DATA2=0;
+    //  Uart_DATA00.bf.DATA3=0;
+    //  Uart_DATA00.bf.DATA4=mcSpeedRamp.FlagONOFF;//压机目标频率
+    //  Uart_DATA00.bf.DATA5=0;//预留
+    //  Uart_DATA00.bf.DATA6=0;
+    //  Uart_DATA00.bf.DATA7=0;
+    //第1个数据8位
+    Uart_DATA01.DATA00 = 0; //u8_AimFrequencyToDriver;//压缩机目标频率  实际运行转速 单位:rps
+    //  Uart_DATA01.bf.DATA0=0;
+    //  Uart_DATA01.bf.DATA1=0;
+    //  Uart_DATA01.bf.DATA2=0;
+    //  Uart_DATA01.bf.DATA3=0;
+    //  Uart_DATA01.bf.DATA4=0;
+    //  Uart_DATA01.bf.DATA5=0;
+    //  Uart_DATA01.bf.DATA6=0;
+    //  Uart_DATA01.bf.DATA7=0;
+    //第2个数据8位
+    Uart_DATA02.DATA00 = S_Value2; //压缩机运行转速  实际运行转速 单位:rps
+    //  Uart_DATA02.bf.DATA0=0;
+    //  Uart_DATA02.bf.DATA1=0;
+    //  Uart_DATA02.bf.DATA2=0;
+    //  Uart_DATA02.bf.DATA3=0;
+    //  Uart_DATA02.bf.DATA4=0;
+    //  Uart_DATA02.bf.DATA5=0;
+    //  Uart_DATA02.bf.DATA6=0;
+    //  Uart_DATA02.bf.DATA7=0;
+    //第3个数据8位
+    Uart_DATA03.DATA00 = 0; //室外机故障、保护停
+    //  Uart_DATA03.bf.DATA0=0;
+    //  Uart_DATA03.bf.DATA1=0;
+    //  Uart_DATA03.bf.DATA2=0;
+    //  Uart_DATA03.bf.DATA3=0;
+    //  Uart_DATA03.bf.DATA4=0;
+    //  Uart_DATA03.bf.DATA5=0;
+    //  Uart_DATA03.bf.DATA6=0;
+    //  Uart_DATA03.bf.DATA7=0;
+    //      //第4个数据8位
+    Uart_DATA04.DATA00 = 0; //室外盘管温度
+    //  Uart_DATA04.bf.DATA0=0;
+    //  Uart_DATA04.bf.DATA1=0;
+    //  Uart_DATA04.bf.DATA2=0;
+    //  Uart_DATA04.bf.DATA3=0;
+    //  Uart_DATA04.bf.DATA4=0;
+    //  Uart_DATA04.bf.DATA5=0;
+    //  Uart_DATA04.bf.DATA6=0;
+    //  Uart_DATA04.bf.DATA7=0;
+    //      //第5个数据8位
+    Uart_DATA05.DATA00 = 0; //室外环境温度
+    //  Uart_DATA05.bf.DATA0=0;
+    //  Uart_DATA05.bf.DATA1=0;
+    //  Uart_DATA05.bf.DATA2=0;
+    //  Uart_DATA05.bf.DATA3=0;
+    //  Uart_DATA05.bf.DATA4=0;
+    //  Uart_DATA05.bf.DATA5=0;
+    //  Uart_DATA05.bf.DATA6=0;
+    //  Uart_DATA05.bf.DATA7=0;
+    //      //第6个数据8位
+    Uart_DATA06.DATA00 = 0; //压缩机排气温度
+    //  Uart_DATA06.bf.DATA0=0;
+    //  Uart_DATA06.bf.DATA1=0;
+    //  Uart_DATA06.bf.DATA2=0;
+    //  Uart_DATA06.bf.DATA3=0;
+    //  Uart_DATA06.bf.DATA4=0;
+    //  Uart_DATA06.bf.DATA5=0;
+    //  Uart_DATA06.bf.DATA6=0;
+    //  Uart_DATA06.bf.DATA7=0;
+    //      //第7个数据8位
+    Uart_DATA07.DATA00 = (((uint32)(mcFocCtrl.mcDcbusFlt * HW_BOARD_VOLT_MAX)) >> 15) >> 2; //压缩机回气温度
+    //  Uart_DATA07.bf.DATA0=0;
+    //  Uart_DATA07.bf.DATA1=0;
+    //  Uart_DATA07.bf.DATA2=0;
+    //  Uart_DATA07.bf.DATA3=0;
+    //  Uart_DATA07.bf.DATA4=0;
+    //  Uart_DATA07.bf.DATA5=0;
+    //  Uart_DATA07.bf.DATA6=0;
+    //  Uart_DATA07.bf.DATA7=0;
+    //      //第8个数据8位
+    Uart_DATA08.DATA00 = 0; //压缩机相电流值
+    //      Uart_DATA08.bf.DATA0=0;//室外环境温度小数标志   00: 0℃标志  01: 0.25℃标志  10: 0.5℃标志  11: 0.75℃标志
+    //      Uart_DATA08.bf.DATA1=0;
+    //      Uart_DATA08.bf.DATA2=0;//室外冷凝器温度小数标志
+    //      Uart_DATA08.bf.DATA3=0;
+    //      Uart_DATA08.bf.DATA4=0;//室外排气温度小数标志
+    //      Uart_DATA08.bf.DATA5=0;
+    //      Uart_DATA08.bf.DATA6=0;//预留
+    //      Uart_DATA08.bf.DATA7=0;
+    //      //第9个数据8位
+    Uart_DATA09.DATA00 = Huan_temp / 10 + 40; //室外AC电流值
+    //  Uart_DATA09.bf.DATA0=0;
+    //  Uart_DATA09.bf.DATA1=0;
+    //  Uart_DATA09.bf.DATA2=0;
+    //  Uart_DATA09.bf.DATA3=0;
+    //  Uart_DATA09.bf.DATA4=0;
+    //  Uart_DATA09.bf.DATA5=0;
+    //  Uart_DATA09.bf.DATA6=0;
+    //  Uart_DATA09.bf.DATA7=0;
+    //      //第10个数据8位
+    Uart_DATA10.DATA00 = Guan_temp / 10 + 40; //室外DC电压值
+    //  Uart_DATA10.bf.DATA0=0;
+    //  Uart_DATA10.bf.DATA1=0;
+    //  Uart_DATA10.bf.DATA2=0;
+    //  Uart_DATA10.bf.DATA3=0;
+    //  Uart_DATA10.bf.DATA4=0;
+    //  Uart_DATA10.bf.DATA5=0;
+    //  Uart_DATA10.bf.DATA6=0;
+    //  Uart_DATA10.bf.DATA7=0;
+    //      //第11个数据8位
+    Uart_DATA11.DATA00 = Paiqi_temp / 10 + 40; //电子膨胀阀开度
+    //  Uart_DATA11.bf.DATA0=0;
+    //  Uart_DATA11.bf.DATA1=0;
+    //  Uart_DATA11.bf.DATA2=0;
+    //  Uart_DATA11.bf.DATA3=0;
+    //  Uart_DATA11.bf.DATA4=0;
+    //  Uart_DATA11.bf.DATA5=0;
+    //  Uart_DATA11.bf.DATA6=0;
+    //  Uart_DATA11.bf.DATA7=0;
+    //      //第12个数据8位
+    Uart_DATA12.DATA00 = 0; //外风机档位或转速
+    Uart_DATA12.bf.DATA0 = 0; //除霜要求  0:无要求  1:除霜要求
+    Uart_DATA12.bf.DATA1 = 0; //普通除霜状态 0:通常状态(default) 或特殊除霜状态  1:普通除霜中
+    Uart_DATA12.bf.DATA2 = 0; //回油状态  0:无需停内风机的制热回油或非回油状态  1:制冷回油 或 需要停内风机的制热回油
+    Uart_DATA12.bf.DATA3 = 0; //3分钟待机状态  0:通常状态   1:3分钟待机中
+    Uart_DATA12.bf.DATA4 = 0; //电子膨胀阀状态 0:通常状态  1:复位中
+    Uart_DATA12.bf.DATA5 = 0; //外机静音状态  0:通常状态  1:外机静音中
+    Uart_DATA12.bf.DATA6 = 0; //外机防凝露状态  0:通常状态 1:外机防凝露中
+    Uart_DATA12.bf.DATA7 = 0; //SAVE状态  0:通常状态   1:SAVE状态运行中
+    //      //第13个数据8位
+    //      Uart_DATA13.DATA13=0;//室外机标志位
+    Uart_DATA13.bf.DATA0 = 0; //回送自测状态
+    Uart_DATA13.bf.DATA1 = 0;
+    Uart_DATA13.bf.DATA2 = mcFaultSource; //外机任意停机故障  0:正常  1:故障
+    Uart_DATA13.bf.DATA3 = 0; //特殊除霜状态  0:通常状态(default) 或普通除霜状态  1:特殊除霜中
+    //  Uart_DATA13.bf.DATA4=0;//预留
+    //  Uart_DATA13.bf.DATA5=0;
+    //  Uart_DATA13.bf.DATA6=0;
+    //  Uart_DATA13.bf.DATA7=0;
+    //      //第14个数据8位
+    Uart_DATA14.DATA00 = 0; //IPM温度
+    //  Uart_DATA14.bf.DATA0=0;
+    //  Uart_DATA14.bf.DATA1=0;
+    //  Uart_DATA14.bf.DATA2=0;
+    //  Uart_DATA14.bf.DATA3=0;
+    //  Uart_DATA14.bf.DATA4=0;
+    //  Uart_DATA14.bf.DATA5=0;
+    //  Uart_DATA14.bf.DATA6=0;
+    //  Uart_DATA14.bf.DATA7=0;
+    //      //第15个数据8位
+    //    Uart_DATA15.DATA00=0;//室外AC电压值
+    Uart_DATA15.bf.DATA0 = 0; //DRED模式运行状态
+    Uart_DATA15.bf.DATA1 = 0;
+    Uart_DATA15.bf.DATA2 = 0; //强制制冷  0:未执行;1:执行
+    Uart_DATA15.bf.DATA3 = 0; //强制制热
+    Uart_DATA15.bf.DATA4 = 0; //强制除霜
+    Uart_DATA15.bf.DATA5 = 0; //收氟模式
+    Uart_DATA15.bf.DATA6 = 0; //试运行
+    //  Uart_DATA15.bf.DATA7=0; //预留
+    //第16个数据8位
+    Uart_DATA16.DATA00 = 0; //限频、降频标志位
+    //第17个数据8位
+    Uart_DATA17.DATA00 = 0; //预留
+}
+void Modbus_respond2(void)
+{
+    uint8 u16CRC = 0;
+    Uart.T_DATA[0]  = 0xCF;                          //识别码
+    Uart.T_DATA[1]  = 0x01;                              //正常工作
+    Uart.T_DATA[2]  = 19;                            //数据长度
+    Uart.T_DATA[3]  = 0;                         //
+    Uart.T_DATA[4]  = Uart_DATA00.DATA00;            //数据第0位
+    Uart.T_DATA[5]  = Uart_DATA01.DATA00;        //数据第1位
+    Uart.T_DATA[6]  = Uart_DATA02.DATA00;        //数据第2位
+    Uart.T_DATA[7]  = Uart_DATA03.DATA00;        //数据第3位
+    Uart.T_DATA[8]  = Uart_DATA04.DATA00;        //数据第4位
+    Uart.T_DATA[9]  = Uart_DATA05.DATA00;        //数据第5位
+    Uart.T_DATA[10] = Uart_DATA06.DATA00;            //数据第6位
+    Uart.T_DATA[11] = Uart_DATA07.DATA00;          //数据第7位
+    Uart.T_DATA[12] = Uart_DATA08.DATA00;        //数据第8位
+    Uart.T_DATA[13] = Uart_DATA09.DATA00;        //数据第9位
+    Uart.T_DATA[14] = Uart_DATA10.DATA00;        //数据第10位
+    Uart.T_DATA[15] = Uart_DATA11.DATA00;        //数据第11位
+    Uart.T_DATA[16] = Uart_DATA12.DATA00;            //数据第12位
+    Uart.T_DATA[17] = Uart_DATA13.DATA00;          //数据第13位
+    Uart.T_DATA[18] = Uart_DATA14.DATA00;        //数据第14位
+    Uart.T_DATA[19] = Uart_DATA15.DATA00;        //数据第14位
+    Uart.T_DATA[20] = Uart_DATA16.DATA00;        //数据第14位
+    Uart.T_DATA[21] = Uart_DATA17.DATA00;        //数据第14位
+    u16CRC = BBC2(&Uart.T_DATA[0], TX_LEN - 2);
+    Uart.T_DATA[22] = u16CRC;                    //CRC
+    Uart.T_DATA[23] = 0x55;                    //结束码
+    Uart.send_start_falg = 1;
+    
+    if (Uart.send_start_falg == 1)
+    {
+        Uart.Recive_Flag = 1;
+        UT2_DR = Uart.T_DATA[0];
+        UT2TB8 = even_or_odd(Uart.T_DATA[0], evnodd);
+        Uart.send_start_falg = 0;
+        Uart.TxCnt = 0;
+    }
+}
+void Modbus_task23(void)
+{
+    if (Uart.Uart_Tmcomcyc >= (T_mcomcyc + T_mwtchg))
+    {
+        Uart_Run21();
+        Modbus_respond2();
+        Uart.Uart_Tmcomcyc = 0;
+    }
+}
+/**任务机接收**/
+void Modbus_Recive_task66(void)
+{
+    switch (Uart.R_DATA[0])//判断功能码
+    {
+        case 0x02:            //正常工作
+            Modbus_Recive_task23();
+            break;
+            
+        case 0x38:            //工厂初测
+            Modbus_Recive_task23();
+            break;
+            
+        case 0x58:            //工厂终测
+            Modbus_Recive_task23();
+            break;
+            
+        case 0x78:            //工装手动调试
+            Modbus_Recive_task23();
+            break;
+            
+        default:
+            break;
+    }
+}
+
+/*串口数据处理,处理接收到的串口数据,运行于大循环中*/
+void UartDealResponse2(void)
+{
+    //  if (Modbus_Slave_Receive2() == 1)//接收数据
+    //  {
+    //          Modbus_Recive_task66();
+    //        mcFaultDect.commu_time=0;
+    //          Uart.recive_sussf_falg = 0;
+    //  }
+    //  Modbus_task23();//发送数据
+    //}
+    if (Modbus_Slave_Receive2() == 1)//接收数据
+    {
+        Modbus_Recive_task01();
+        mcFaultDect.commu_time = 0;
+        Uart.recive_sussf_falg = 0;
+    }
+}
+
+#endif

+ 155 - 0
User/User_Drive/commution.h

@@ -0,0 +1,155 @@
+/**
+    @file     commution.h
+    @version  V1.0.0
+    @author   jaise
+    @date     2023-8-16 09:35:55
+    @brief    This file contains ...
+
+    @copyright Copyright(C) 2022 Fortior Technology Co., Ltd. All rights reserved.
+*/
+
+#ifndef __COMMUTION_H__
+#define __COMMUTION_H__
+
+// Include external header file.
+
+#if (Uart_COMMUNICATION==0)
+    #define RX_LEN                        20
+    #define TX_LEN                        20
+#elif (Uart_COMMUNICATION==1)
+    #define RX_LEN                        23
+    #define TX_LEN                        23
+#endif
+
+#define RX_ZHENTOU                    0x00
+#define TX_ZHENTOU                    0x95
+
+#define RX_LEN1                        8
+#define TX_LEN1                        11
+
+#define RX_ZHENTOU1                   0x81
+#define TX_ZHENTOU1                   0x28
+
+#define T_mreset                    5000      //5000ms
+#define T_mrxerr                    180       //180s
+#define T_mchgerr                   120       //120s
+#define T_mtxcyc                    230       //230ms
+#define T_mcomcyc                   500       //500ms
+#define T_mfrmwt                    25        //25ms
+#define T_mwtchg                    50        //50ms
+
+#define evnodd                      0    //0:  ????1:???
+
+
+
+typedef union
+{
+    uint8 DATA00;
+    struct
+    {
+        uint8  DATA0 :  1;  //DATA1.0
+        uint8  DATA1 :  1;  //DATA1.1
+        uint8  DATA2 :  1;  //DATA1.2
+        uint8  DATA3 :  1;  //DATA1.3
+        uint8  DATA4 :  1;  //DATA1.4
+        uint8  DATA5 :  1;  //DATA1.5
+        uint8  DATA6 :  1;  //DATA1.6
+        uint8  DATA7 :  1;  //DATA1.7
+    } bf;
+} ddatet00;
+
+
+
+//????typedef struct
+
+typedef union
+{
+    uint8 DATAT00;
+    struct
+    {
+        uint8  DATA0 :  1;  //DATA1.0
+        uint8  DATA1 :  1;  //DATA1.1
+        uint8  DATA2 :  1;  //DATA1.2
+        uint8  DATA3 :  1;  //DATA1.3
+        uint8  DATA4 :  1;  //DATA1.4
+        uint8  DATA5 :  1;  //DATA1.5
+        uint8  DATA6 :  1;  //DATA1.6
+        uint8  DATA7 :  1;  //DATA1.7
+    } bf;
+} MCUART_Rec00;
+
+
+
+
+typedef struct
+{
+    uint8 R_DATA[42];
+    uint8 T_DATA[42];
+    int16 uarttimejishu;
+    uint8 recive_lenth;
+    uint16 Uart_Tmreset;
+    uint16 Uart_Tmcomcyc;
+    uint8  Uart_Recivetime;
+    uint8 Oder;
+    uint8 Recive_Flag;
+    
+    
+    uint8 recive_sussf_falg;
+    uint8 send_start_falg;
+    uint8     sussf_falg;
+    
+    uint8     sendflag;
+    uint8     ResponseFlag;
+    
+    uint16      time_cnt;
+    uint16    time_shuju;
+    
+    uint8     UartReadTemp;
+    uint8     UartReadCnt;
+    uint8     TxCnt;
+    uint8     send_delay_time;
+    
+    uint16    YaJI_Speed;
+    uint16    FengSpeed;
+    int16     PengZhangFa;
+    int16     PengZhangFa_ACT;
+    uint8     u1IduRevDataCnt;
+} MCUART;
+
+
+
+
+extern MCUART xdata Uart;
+extern uint8 BBC(uint8 * puchMsg, uint8 usDataLen);
+
+extern unsigned char        u1_cnt_idu_comm_task;
+
+extern MCUART_Rec00 xdata Uart_Rec_DATA00;
+extern MCUART_Rec00 xdata Uart_Rec_DATA01;
+extern MCUART_Rec00 xdata Uart_Rec_DATA02;
+extern MCUART_Rec00 xdata Uart_Rec_DATA03;
+extern MCUART_Rec00 xdata Uart_Rec_DATA04;
+extern MCUART_Rec00 xdata Uart_Rec_DATA05;
+extern MCUART_Rec00 xdata Uart_Rec_DATA06;
+extern MCUART_Rec00 xdata Uart_Rec_DATA09;
+extern MCUART_Rec00 xdata Uart_Rec_DATA10;
+extern MCUART_Rec00 xdata Uart_Rec_DATA12;
+extern MCUART_Rec00 xdata Uart_Rec_DATA13;
+extern MCUART_Rec00 xdata Uart_Rec_DATA14;
+extern MCUART_Rec00 xdata Uart_Rec_DATA15;
+
+extern void UartRecive1(void);
+extern void UartSend1(void);
+extern void UartDealResponse1(void);
+extern void UartDealResponse2(void);
+extern void Uart_Int01(void);
+extern void Uart_Int02(void);
+extern void Uart_Int_Finsh(void);
+extern void Uart_Run01(void);
+extern void Uart_Run02(void);
+extern void Uart_Run03(void);
+
+
+
+#endif
+

+ 0 - 1973
User/User_Drive/commution/commution.c

@@ -1,1973 +0,0 @@
-/**
- * @file     commution.c
- * @version  V1.0.0
- * @author   jaise
- * @date     2023-8-16 09:33:55
- * @brief    This file contains ...
- * 
- * @copyright Copyright(C) 2022 Fortior Technology Co., Ltd. All rights reserved.
- */
- 
-//#include “FU6815.h"
-
-#include "User_Dri_main.h"
-#include "SYS_Ctr_main.h"
-
-uint16 sendMessagelength = 0;
-uint16	SlaveCrc = 0;
-#define Version 101
-uint16 SKP1 = 150, SKI1 = 2;
-
-MCUART    xdata  Uart;
-//发送数据
-ddatet00  xdata  Uart_DATA00;
-ddatet00  xdata  Uart_DATA01;
-ddatet00  xdata  Uart_DATA02;
-ddatet00  xdata  Uart_DATA03;
-ddatet00  xdata  Uart_DATA04;
-ddatet00  xdata  Uart_DATA05;
-ddatet00  xdata  Uart_DATA06;
-ddatet00  xdata  Uart_DATA07;
-ddatet00  xdata  Uart_DATA08;
-ddatet00  xdata  Uart_DATA09;
-ddatet00  xdata  Uart_DATA10;
-ddatet00  xdata  Uart_DATA11;
-ddatet00  xdata  Uart_DATA12;
-ddatet00  xdata  Uart_DATA13;
-ddatet00  xdata  Uart_DATA14;
-ddatet00  xdata  Uart_DATA15;
-ddatet00  xdata  Uart_DATA16;
-ddatet00  xdata  Uart_DATA17;
-
-//接收数据
-MCUART_Rec00 xdata Uart_Rec_DATA00;
-MCUART_Rec00 xdata Uart_Rec_DATA01;
-MCUART_Rec00 xdata Uart_Rec_DATA02;
-MCUART_Rec00 xdata Uart_Rec_DATA03;
-MCUART_Rec00 xdata Uart_Rec_DATA04;
-MCUART_Rec00 xdata Uart_Rec_DATA05;
-MCUART_Rec00 xdata Uart_Rec_DATA06;
-MCUART_Rec00 xdata Uart_Rec_DATA09;
-MCUART_Rec00 xdata Uart_Rec_DATA10;
-MCUART_Rec00 xdata Uart_Rec_DATA11;
-MCUART_Rec00 xdata Uart_Rec_DATA12;
-MCUART_Rec00 xdata Uart_Rec_DATA13;
-MCUART_Rec00 xdata Uart_Rec_DATA14;
-MCUART_Rec00 xdata Uart_Rec_DATA15;
-//MCUART_Recother  xdata Uart_Rec_DATAo;
-
-unsigned char		u1_cnt_idu_comm_task	= 0;
-
-uint8 SYS_RunMode=0,FAN_RunSpeed=0;
-
- const uint16 ModbusCrcTable[256] =
-{
-		0,	49345,	49537,	320,	49921,	960,	640,	49729,
-		50689,	1728,	1920,	51009,	1280,	50625,	50305,	1088,
-		52225,	3264,	3456,	52545,	3840,	53185,	52865,	3648,
-		2560,	51905,	52097,	2880,	51457,	2496,	2176,	51265,
-		55297,	6336,	6528,	55617,	6912,	56257,	55937,	6720,
-		7680,	57025,	57217,	8000,	56577,	7616,	7296,	56385,
-		5120,	54465,	54657,	5440,	55041,	6080,	5760,	54849,
-		53761,	4800,	4992,	54081,	4352,	53697,	53377,	4160,
-		61441,	12480,	12672,	61761,	13056,	62401,	62081,	12864,
-		13824,	63169,	63361,	14144,	62721,	13760,	13440,	62529,
-		15360,	64705,	64897,	15680,	65281,	16320,	16000,	65089,
-		64001,	15040,	15232,	64321,	14592,	63937,	63617,	14400,
-		10240,	59585,	59777,	10560,	60161,	11200,	10880,	59969,
-		60929,	11968,	12160,	61249,	11520,	60865,	60545,	11328,
-		58369,	9408,	9600,	58689,	9984,	59329,	59009,	9792,
-		8704,	58049,	58241,	9024,	57601,	8640,	8320,	57409,
-		40961,	24768,	24960,	41281,	25344,	41921,	41601,	25152,
-		26112,	42689,	42881,	26432,	42241,	26048,	25728,	42049,
-		27648,	44225,	44417,	27968,	44801,	28608,	28288,	44609,
-		43521,	27328,	27520,	43841,	26880,	43457,	43137,	26688,
-		30720,	47297,	47489,	31040,	47873,	31680,	31360,	47681,
-		48641,	32448,	32640,	48961,	32000,	48577,	48257,	31808,
-		46081,	29888,	30080,	46401,	30464,	47041,	46721,	30272,
-		29184,	45761,	45953,	29504,	45313,	29120,	28800,	45121,
-		20480,	37057,	37249,	20800,	37633,	21440,	21120,	37441,
-		38401,	22208,	22400,	38721,	21760,	38337,	38017,	21568,
-		39937,	23744,	23936,	40257,	24320,	40897,	40577,	24128,
-		23040,	39617,	39809,	23360,	39169,	22976,	22656,	38977,
-		34817,	18624,	18816,	35137,	19200,	35777,	35457,	19008,
-		19968,	36545,	36737,	20288,	36097,	19904,	19584,	35905,
-		17408,	33985,	34177,	17728,	34561,	18368,	18048,	34369,
-		33281,	17088,	17280,	33601,	16640,	33217,	32897,	16448
-};
-
-/*
- * Function Name:	Get_CRC
- * Description:	CRC生成新函数
- * Return Value:	u16	CRC值
- * Parameter:	SourceCrc	前次CRC值
- * 				Data	本次添加数据
- * Note:
- */
-uint16 Get_CRC(uint16 SourceCrc, uint8 Data)
-{
-	return (SourceCrc >> 8) ^ ModbusCrcTable[Data ^ (SourceCrc & 0xff)];
-}
-
-
-uint16 makeCRC(uint8 * data2, uint8 length)
-{
-  uint16 crc = 0xFFFF;
-	uint8 i;
-  for ( i = 0; i < length; i++)
-  {
-    crc = (crc >> 8) ^ ModbusCrcTable[data2[i] ^ (crc & 0xff)];
-  }
-  return crc;
-}
-
-void Modbus_task01_RecData()
-{
-      Uart.send_start_falg=1;
-			if (Uart.send_start_falg == 1)
-			{   
-//			    GP04 = 1;
-				  Uart.Recive_Flag=1;
-					UT2_DR = Uart.T_DATA[0];
-				  //UT2TB8 = even_or_odd(Uart.T_DATA[0],evnodd);
-					Uart.send_start_falg = 0;
-					Uart.TxCnt = 0;
-			}
-}
-
-/*
- * Function Name:	ModbusSlaveAddOutWord
- * Description:	添加将要发送的字节
- * Return Value:	u8	返回添加后待发送到消息长度
- * Parameter:	pModbus	指向Modbus的指针
- * 				Data	要添加的字节
- * Note:
- */
-uint8	ModbusSlaveAddOutWord(uint8	Data	)
-{
-	Uart.T_DATA[sendMessagelength] = Data;
-	SlaveCrc = Get_CRC(SlaveCrc, Data);
-	sendMessagelength++;
-	return	sendMessagelength;
-}
-
-/*
- * Function Name:	Modbus_ReplyReset
- * Description:	回复消息的准备
- * Return Value:	u8	返回待发送到消息长度
- * Parameter:	pModbus	指向Modbus的指针
- * Note:
- */
-uint8	ModbusSlave_ReplyReset()
-{
-	
-	sendMessagelength = 0;
-	SlaveCrc = 0xFFFF;
-//	pModbus->sendMessage->data = &(pModbus->sendMessage->data[0]);
-	     
-  //ModbusSlaveAddOutWord(0xCF);	//识别码
-	ModbusSlaveAddOutWord(Uart.R_DATA[0]);
-	ModbusSlaveAddOutWord(Uart.R_DATA[1]);
-	return sendMessagelength;
-}
-
-/*
- * Function Name:	Modbus_AddCRC_SendDatas
- * Description:	添加封包CRC,并发送消息
- * Return Value:	u8	返回8位无符号数,0为正常,非0为错误
- * Parameter:	pModbus	指向Modbus的指针
- * Note:
- */
-uint8	ModbusSlave_AddCRC_SendDatas()
-{
-	uint8 CrcLow, CrcHigh;
-	CrcLow = (uint8) SlaveCrc;
-	CrcHigh = (uint8) (SlaveCrc >> 8);
-	Uart.T_DATA[sendMessagelength] = CrcLow;
-	sendMessagelength++;
-	Uart.T_DATA[sendMessagelength] = CrcHigh;
-	sendMessagelength++;
-
-
-	return (uint8)0;
-}
-
-
-
-/*
- * Function Name:	CRCCheck
- * Description:	对收到的消息进行CRC校验
- * Return Value:	u8	返回值非0为校验未通过
- * Parameter:	message	收到的消息
- * Note:
- */
-uint8	CRCCheck(	uint8 *data1	, uint8 length)
-{
-	uint8	i = 0;
-	uint16	result = 0xFFFF;
-	if (length < 4)
-	{
-		return 0xFF;
-	}
-	else
-	{
-		for (; i < length; i++)
-		{
-			result = Get_CRC(result, data1[i]);
-		}
-		return result;
-	}
-}
-
-
-void Modbus_Recive_task01()
-{
-	  uint8 function = Uart.R_DATA[1];
-	  uint16 DC_Volt,Acbus,FirstCurrent;
-	  if (1 != Uart.R_DATA[0])
-		{
-		   return;
-		}
-
-		ModbusSlave_ReplyReset();
-		
-		switch (function)
-		{
-		case 3:
-			if ((0 == Uart.R_DATA[4]) && (0x0B == Uart.R_DATA[5])
-				&& (0 == Uart.R_DATA[3]))
-			{
-					ModbusSlaveAddOutWord(0x16); //数据长度
- 
-					ModbusSlaveAddOutWord(0);
-					ModbusSlaveAddOutWord(mcFocCtrl.SpeedFlt*MOTOR_SPEED_BASE/32767/60);//转速
-						
-				 // FirstCurrent = (HW_BOARD_CURR_BASE*mcFocCtrl.FirstCurrentFlt/1.414)/32767;
-					ModbusSlaveAddOutWord(0);
-					ModbusSlaveAddOutWord(0);//一次电流 低
-				  
-				  
-				  Acbus = 0;
-					ModbusSlaveAddOutWord((FOC__UQ>>8)&0xff);
-					ModbusSlaveAddOutWord(FOC__UQ);//交流电压 低
-				
-				  DC_Volt = mcFocCtrl.mcDcbusFlt * HW_BOARD_VOLT_MAX/32767;
-					ModbusSlaveAddOutWord((DC_Volt>>8)&0xff);
-					ModbusSlaveAddOutWord(DC_Volt&0xff);//直流电压 低
-				
-					ModbusSlaveAddOutWord((I_IReal_10>>8)&0xff);
-					ModbusSlaveAddOutWord(I_IReal_10&0xff);//二次电流 低
-				
-					ModbusSlaveAddOutWord((mcFocCtrl.IPMtemp>>8)&0xff);
-					ModbusSlaveAddOutWord(mcFocCtrl.IPMtemp&0xff);//IPM温度 低
-				
-				  ModbusSlaveAddOutWord(0x00);//驱动故障高16位
-				  ModbusSlaveAddOutWord(mcIimit.Pflag);//驱动故障高
-				
-					ModbusSlaveAddOutWord(0x00);//驱动故障高16位
-					ModbusSlaveAddOutWord(mcFaultSource);//驱动故障低 低
-				
-				  ModbusSlaveAddOutWord(0x00);//PFC驱动故障高16位
-				  ModbusSlaveAddOutWord(0x00);//PFC驱动故障高
-					
-					ModbusSlaveAddOutWord(0x00);//PFC故障低
-					ModbusSlaveAddOutWord(mcSpeedRamp.TargetValue *MOTOR_SPEED_BASE/32767/60);//PFC故障低 低
-					
-					ModbusSlaveAddOutWord(0x00);
-					ModbusSlaveAddOutWord(mcSpeedRamp.ActualValue *MOTOR_SPEED_BASE/32767/60);//软件版本
-				
-			}
-			else if((0 == Uart.R_DATA[4]) && (0x0B == Uart.R_DATA[5])
-				&& (11 == Uart.R_DATA[3]))
-			{
-					ModbusSlaveAddOutWord(0x16); //数据长度
-			
-					ModbusSlaveAddOutWord(0);
-					ModbusSlaveAddOutWord(0);
-					
-					ModbusSlaveAddOutWord(0);
-					ModbusSlaveAddOutWord(ConTrolCmd.yajispeed/60);
-					
-				ModbusSlaveAddOutWord((SKP1>>8)&0xff);
-					ModbusSlaveAddOutWord(SKP1&0xff);
-				
-				 ModbusSlaveAddOutWord((SKI1>>8)&0xff);
-					ModbusSlaveAddOutWord(SKI1&0xff);
-				
-//					ModbusSlaveAddOutWord(0);
-//					ModbusSlaveAddOutWord(0);
-//					
-//					ModbusSlaveAddOutWord(0);
-//					ModbusSlaveAddOutWord(0);
-					
-					ModbusSlaveAddOutWord(0);
-					ModbusSlaveAddOutWord(0);
-					
-					ModbusSlaveAddOutWord(0);
-					ModbusSlaveAddOutWord(0);
-					
-					ModbusSlaveAddOutWord(0);
-					ModbusSlaveAddOutWord(0);
-					
-					ModbusSlaveAddOutWord(0);
-					ModbusSlaveAddOutWord(0);
-					
-					ModbusSlaveAddOutWord(0);
-					ModbusSlaveAddOutWord(0);
-					
-					ModbusSlaveAddOutWord(0);
-					ModbusSlaveAddOutWord(0);
-					
-					ModbusSlaveAddOutWord(0);
-					ModbusSlaveAddOutWord(0);
-      }
-			else
-			{
-					return;
-			}
-			break;
-		case 16:
-		if ((0 == Uart.R_DATA[2]) && (0x0B == Uart.R_DATA[3]))
-		{
-				ConTrolCmd.yajispeed = Uart.R_DATA[10] * 60;
-				ModbusSlaveAddOutWord(0x00); 
-				ModbusSlaveAddOutWord(0x0B);
-				ModbusSlaveAddOutWord(0x00); 
-				ModbusSlaveAddOutWord(0x05);
-		}
-		else
-		{
-				return;
-		}
-	  break;
-		case 6:
-		if ((0 == Uart.R_DATA[2]) && (0x0C == Uart.R_DATA[3]))
-		{
-				ConTrolCmd.yajispeed = Uart.R_DATA[5] * 60;
-				ModbusSlaveAddOutWord(Uart.R_DATA[2]); 
-				ModbusSlaveAddOutWord(Uart.R_DATA[3]);
-				ModbusSlaveAddOutWord(Uart.R_DATA[4]); 
-				ModbusSlaveAddOutWord(Uart.R_DATA[5]);
-		}
-		else if ((0 == Uart.R_DATA[2]) && (0x0D == Uart.R_DATA[3]))
-		{
-			
-			  SKP1 = (uint16)Uart.R_DATA[4];
-			  SKP1 <<= 8;
-			  SKP1 |= Uart.R_DATA[5];
-				ModbusSlaveAddOutWord(Uart.R_DATA[2]); 
-				ModbusSlaveAddOutWord(Uart.R_DATA[3]);
-				ModbusSlaveAddOutWord(Uart.R_DATA[4]); 
-				ModbusSlaveAddOutWord(Uart.R_DATA[5]);
-		}
-		else if ((0 == Uart.R_DATA[2]) && (0x0E == Uart.R_DATA[3]))
-		{
-				SKI1 = (uint16)Uart.R_DATA[4];
-			  SKI1 <<= 8;
-			  SKI1 |= Uart.R_DATA[5];
-			
-				ModbusSlaveAddOutWord(Uart.R_DATA[2]); 
-				ModbusSlaveAddOutWord(Uart.R_DATA[3]);
-				ModbusSlaveAddOutWord(Uart.R_DATA[4]); 
-				ModbusSlaveAddOutWord(Uart.R_DATA[5]);
-		}
-		else
-		{
-				return;
-		}
-			break;
-		default:
-			break;
-	}
-	ModbusSlave_AddCRC_SendDatas();
-  Modbus_task01_RecData();//发送数据	
-	
-}
-
-
-
-/*数据接收函数*/
-void UartRecive1(void)
-{
-	Uart.UartReadTemp = UT2_DR;       // 读接收数据
-	Uart.R_DATA[Uart.UartReadCnt++] = Uart.UartReadTemp;
-}
-
-/*数据发送函数*/
-void UartSend1(void)
-{
-	if (Uart.TxCnt < (sendMessagelength - 1))
-	{
-			Uart.TxCnt++;
-			UT2_DR = Uart.T_DATA[Uart.TxCnt];
-		 // UT2TB8 = even_or_odd(Uart.T_DATA[Uart.TxCnt],evnodd);
-		  Uart.Uart_Recivetime=0;
-	}
-	else
-	{
-//			GP04 = 0;
-	}
-}
-#if 0
-////CRC16校验      u16CRC=Common_Func_CRC16_ModBus(&u8SendBuf[0], 3+RegisterNum*2);
-uint16 Common_Func_CRC16_ModBus(uint8* puchMsg, uint8 usDataLen)
-{
-	uint16 uCRC = 0xffff;//CRC寄存器
-	uint8 num;
-	uint8 x;
-	for (num = 0; num < usDataLen; num++)
-	{
-		uCRC = (*puchMsg++) ^ uCRC;//把数据与16位的CRC寄存器的低8位相异或,结果存放于CRC寄存器。
-		for (x = 0; x < 8; x++)
-		{
-		  //循环8次
-			if (uCRC & 0x0001)
-			{
-		   	  //判断最低位为:“1”
-				uCRC = uCRC >> 1;	//先右移
-				uCRC = uCRC ^ 0xA001;	//再与0xA001异或
-			}
-			else
-			{
-			    //判断最低位为:“0”
-				uCRC = uCRC >> 1;	//右移
-			}
-		}
-	}
-	return uCRC;//返回CRC校验值 高位在前低位在后
-}
-#endif
-////BBC校验
-uint8 BBC(uint8* puchMsg, uint8 usDataLen)
-{
-		uint8 i;
-		uint8 bcc = 0;        // Initial value
-		#if 0
-			while(usDataLen--)
-			{
-				bcc ^= *puchMsg++;
-			}		
-		#else
-			for ( i = 0; i < usDataLen; i++ )//  sum
-			{
-				bcc += puchMsg[i];        // crc ^= *data;
-			}
-		#endif	
-		return bcc; 
-}	
-
-#if (Uart_COMMUNICATION==0)
-/*判断接收数据是否正确*/
-uint8 Modbus_Slave_Receive(void)
-{
-		uint8 u16CRC=0;
-		if ((Uart.uarttimejishu >= 15 )&& (Uart.UartReadCnt >= 10))//Uart.uarttime每包数据的间隔
-		{
-				Uart.recive_lenth = Uart.UartReadCnt;
-        Uart.UartReadCnt = 0;
-				u16CRC = Uart.R_DATA[Uart.recive_lenth - 1];//接收到的的校验码	  
-				if (u16CRC == BBC(&Uart.R_DATA[0], Uart.recive_lenth - 2))
-				{
-						Uart.recive_sussf_falg = 1;
-						Uart.send_start_falg = 1;
-				}
-				else
-				{
-						Uart.recive_sussf_falg = 0;
-				}
-		}
-		return Uart.recive_sussf_falg;	
-}
-
-
-
-
-void Uart_Int01(void)
-{
-	//参数清零因为复用问题
-	Uart_DATA00.DATA00=0;Uart_DATA01.DATA00=0;Uart_DATA02.DATA00=0;Uart_DATA03.DATA00=0;
-	Uart_DATA04.DATA00=0;Uart_DATA05.DATA00=0;Uart_DATA06.DATA00=0;Uart_DATA07.DATA00=0;
-	Uart_DATA08.DATA00=0;Uart_DATA09.DATA00=0;Uart_DATA10.DATA00=0;Uart_DATA11.DATA00=0;
-	Uart_DATA12.DATA00=0;Uart_DATA13.DATA00=0;Uart_DATA14.DATA00=0;Uart_DATA15.DATA00=0;
-	
-	//第0个数据8位
-	Uart_DATA00.DATA00=0;
-
-	//第1个数据8位
-	Uart_DATA01.bf.DATA0=0;//0:变频,1:定频
-	Uart_DATA01.bf.DATA1=0;//0:冷暖,1:单冷
-//	Uart_DATA01.bf.DATA2=0;//预留
-//	Uart_DATA01.bf.DATA3=0;
-	Uart_DATA01.bf.DATA4=0; //通信速度    0001:600 bps  0010:1200bps
-	Uart_DATA01.bf.DATA5=1;
-	Uart_DATA01.bf.DATA6=0;
-	Uart_DATA01.bf.DATA7=0;
-	//第2个数据8位
-//  Uart_DATA02.DATA00=35;  //外机能力代码 0.1kw/bit
-		//第3个数据8位
-	Uart_DATA03.bf.DATA0=0;//电源种类  001 :100~115V  010 :200~240V
-	Uart_DATA03.bf.DATA1=0;
-	Uart_DATA03.bf.DATA2=0;
-	Uart_DATA03.bf.DATA3=1;//供电方式选择   0:内机供电 1:外机供电
-//	Uart_DATA03.bf.DATA4=0;//预留
-//	Uart_DATA03.bf.DATA5=0;
-//	Uart_DATA03.bf.DATA6=0;
-//	Uart_DATA03.bf.DATA7=0;
-		//第4个数据8位
-		Uart_DATA04.DATA00=0;
-//	Uart_DATA04.bf.DATA0=0;
-//	Uart_DATA04.bf.DATA1=0;
-//	Uart_DATA04.bf.DATA2=0;
-//	Uart_DATA04.bf.DATA3=0;
-//	Uart_DATA04.bf.DATA4=0;
-//	Uart_DATA04.bf.DATA5=0;
-//	Uart_DATA04.bf.DATA6=0;
-//	Uart_DATA04.bf.DATA7=0;
-		//第5个数据8位
-		Uart_DATA05.DATA00=0;
-//	Uart_DATA05.bf.DATA0=0;
-//	Uart_DATA05.bf.DATA1=0;
-//	Uart_DATA05.bf.DATA2=0;
-//	Uart_DATA05.bf.DATA3=0;
-//	Uart_DATA05.bf.DATA4=0;
-//	Uart_DATA05.bf.DATA5=0;
-//	Uart_DATA05.bf.DATA6=0;
-//	Uart_DATA05.bf.DATA7=0;
-		//第6个数据8位
-	Uart_DATA06.bf.DATA0=0; //风机档数
-	Uart_DATA06.bf.DATA1=0;
-	Uart_DATA06.bf.DATA2=0;
-	Uart_DATA06.bf.DATA3=0;//风机个数  0:单风机  1:双风机
-	Uart_DATA06.bf.DATA4=0;//风机种类001 :交流电机  010 :直流电机
-	Uart_DATA06.bf.DATA5=0;
-	Uart_DATA06.bf.DATA6=0;
-	Uart_DATA06.bf.DATA7=0;//出风类型 0:侧出风 1:上出风
-		//第7个数据8位
-		Uart_DATA07.DATA00=0;
-//	Uart_DATA07.bf.DATA0=0;
-//	Uart_DATA07.bf.DATA1=0;
-//	Uart_DATA07.bf.DATA2=0;
-//	Uart_DATA07.bf.DATA3=0;
-//	Uart_DATA07.bf.DATA4=0;
-//	Uart_DATA07.bf.DATA5=0;
-//	Uart_DATA07.bf.DATA6=0;
-//	Uart_DATA07.bf.DATA7=0;
-//		//第8个数据8位
-//	Uart_DATA08.bf.DATA0=0;
-//	Uart_DATA08.bf.DATA1=0;
-//	Uart_DATA08.bf.DATA2=0;
-//	Uart_DATA08.bf.DATA3=0;
-//	Uart_DATA08.bf.DATA4=0;
-//	Uart_DATA08.bf.DATA5=0;
-//	Uart_DATA08.bf.DATA6=0;
-//	Uart_DATA08.bf.DATA7=0;
-//		//第9个数据8位
-//	Uart_DATA09.bf.DATA0=0;
-//	Uart_DATA09.bf.DATA1=0;
-//	Uart_DATA09.bf.DATA2=0;
-//	Uart_DATA09.bf.DATA3=0;
-//	Uart_DATA09.bf.DATA4=0;
-//	Uart_DATA09.bf.DATA5=0;
-//	Uart_DATA09.bf.DATA6=0;
-//	Uart_DATA09.bf.DATA7=0;
-//		//第10个数据8位
-//	Uart_DATA10.bf.DATA0=0;
-//	Uart_DATA10.bf.DATA1=0;
-//	Uart_DATA10.bf.DATA2=0;
-//	Uart_DATA10.bf.DATA3=0;
-//	Uart_DATA10.bf.DATA4=0;
-//	Uart_DATA10.bf.DATA5=0;
-//	Uart_DATA10.bf.DATA6=0;
-//	Uart_DATA10.bf.DATA7=0;
-//		//第11个数据8位
-//	Uart_DATA11.bf.DATA0=0;
-//	Uart_DATA11.bf.DATA1=0;
-//	Uart_DATA11.bf.DATA2=0;
-//	Uart_DATA11.bf.DATA3=0;
-//	Uart_DATA11.bf.DATA4=0;
-//	Uart_DATA11.bf.DATA5=0;
-//	Uart_DATA11.bf.DATA6=0;
-//	Uart_DATA11.bf.DATA7=0;
-//		//第12个数据8位
-//	Uart_DATA12.bf.DATA0=0;
-//	Uart_DATA12.bf.DATA1=0;
-//	Uart_DATA12.bf.DATA2=0;
-//	Uart_DATA12.bf.DATA3=0;
-//	Uart_DATA12.bf.DATA4=0;
-//	Uart_DATA12.bf.DATA5=0;
-//	Uart_DATA12.bf.DATA6=0;
-//	Uart_DATA12.bf.DATA7=0;
-//		//第13个数据8位
-//	Uart_DATA13.bf.DATA0=0;
-//	Uart_DATA13.bf.DATA1=0;
-//	Uart_DATA13.bf.DATA2=0;
-//	Uart_DATA13.bf.DATA3=0;
-//	Uart_DATA13.bf.DATA4=0;
-//	Uart_DATA13.bf.DATA5=0;
-//	Uart_DATA13.bf.DATA6=0;
-//	Uart_DATA13.bf.DATA7=0;
-//		//第14个数据8位
-//	Uart_DATA14.bf.DATA0=0;
-//	Uart_DATA14.bf.DATA1=0;
-//	Uart_DATA14.bf.DATA2=0;
-//	Uart_DATA14.bf.DATA3=0;
-//	Uart_DATA14.bf.DATA4=0;
-//	Uart_DATA14.bf.DATA5=0;
-//	Uart_DATA14.bf.DATA6=0;
-//	Uart_DATA14.bf.DATA7=0;
-//		//第15个数据8位
-//	Uart_DATA15.bf.DATA0=0;
-//	Uart_DATA15.bf.DATA1=0;
-//	Uart_DATA15.bf.DATA2=0;
-//	Uart_DATA15.bf.DATA3=0;
-//	Uart_DATA15.bf.DATA4=0;
-//	Uart_DATA15.bf.DATA5=0;
-//	Uart_DATA15.bf.DATA6=0;
-//	Uart_DATA15.bf.DATA7=0;
-
-}
-void Uart_Int02(void)
-{
-		//参数清零因为复用问题
-	Uart_DATA00.DATA00=0;Uart_DATA01.DATA00=0;Uart_DATA02.DATA00=0;Uart_DATA03.DATA00=0;
-	Uart_DATA04.DATA00=0;Uart_DATA05.DATA00=0;Uart_DATA06.DATA00=0;Uart_DATA07.DATA00=0;
-	Uart_DATA08.DATA00=0;Uart_DATA09.DATA00=0;Uart_DATA10.DATA00=0;Uart_DATA11.DATA00=0;
-	Uart_DATA12.DATA00=0;Uart_DATA13.DATA00=0;Uart_DATA14.DATA00=0;Uart_DATA15.DATA00=0;
-			//第0个数据8位
-	Uart_DATA00.DATA00=0;
-//	Uart_DATA00.bf.DATA0=0;
-//	Uart_DATA00.bf.DATA1=0;
-//	Uart_DATA00.bf.DATA2=0;
-//	Uart_DATA00.bf.DATA3=0;
-//	Uart_DATA00.bf.DATA4=0;
-//	Uart_DATA00.bf.DATA5=0;
-//	Uart_DATA00.bf.DATA6=0;
-//	Uart_DATA00.bf.DATA7=0;
-	//第1个数据8位
-	Uart_DATA01.DATA00=0;
-//	Uart_DATA01.bf.DATA0=0;
-//	Uart_DATA01.bf.DATA1=0;
-//	Uart_DATA01.bf.DATA2=0;
-//	Uart_DATA01.bf.DATA3=0;
-//	Uart_DATA01.bf.DATA4=0;
-//	Uart_DATA01.bf.DATA5=0;
-//	Uart_DATA01.bf.DATA6=0;
-//	Uart_DATA01.bf.DATA7=0;
-	//第2个数据8位
-	Uart_DATA02.DATA00=0;
-//	Uart_DATA02.bf.DATA0=0;
-//	Uart_DATA02.bf.DATA1=0;
-//	Uart_DATA02.bf.DATA2=0;
-//	Uart_DATA02.bf.DATA3=0;
-//	Uart_DATA02.bf.DATA4=0;
-//	Uart_DATA02.bf.DATA5=0;
-//	Uart_DATA02.bf.DATA6=0;
-//	Uart_DATA02.bf.DATA7=0;
-		//第3个数据8位
-		Uart_DATA03.DATA00=0;
-//	Uart_DATA03.bf.DATA0=0;
-//	Uart_DATA03.bf.DATA1=0;
-//	Uart_DATA03.bf.DATA2=0;
-//	Uart_DATA03.bf.DATA3=0;
-//	Uart_DATA03.bf.DATA4=0;
-//	Uart_DATA03.bf.DATA5=0;
-//	Uart_DATA03.bf.DATA6=0;
-//	Uart_DATA03.bf.DATA7=0;
-		//第4个数据8位
-		Uart_DATA04.DATA00=0;
-//	Uart_DATA04.bf.DATA0=0;
-//	Uart_DATA04.bf.DATA1=0;
-//	Uart_DATA04.bf.DATA2=0;
-//	Uart_DATA04.bf.DATA3=0;
-//	Uart_DATA04.bf.DATA4=0;
-//	Uart_DATA04.bf.DATA5=0;
-//	Uart_DATA04.bf.DATA6=0;
-//	Uart_DATA04.bf.DATA7=0;
-//		//第5个数据8位
-    Uart_DATA05.DATA00=0;
-//	Uart_DATA05.bf.DATA0=0;
-//	Uart_DATA05.bf.DATA1=0;
-//	Uart_DATA05.bf.DATA2=0;
-//	Uart_DATA05.bf.DATA3=0;
-//	Uart_DATA05.bf.DATA4=0;
-//	Uart_DATA05.bf.DATA5=0;
-//	Uart_DATA05.bf.DATA6=0;
-//	Uart_DATA05.bf.DATA7=0;
-//		//第6个数据8位
-		Uart_DATA06.DATA00=0;
-//	Uart_DATA06.bf.DATA0=0;
-//	Uart_DATA06.bf.DATA1=0;
-//	Uart_DATA06.bf.DATA2=0;
-//	Uart_DATA06.bf.DATA3=0;
-//	Uart_DATA06.bf.DATA4=0;
-//	Uart_DATA06.bf.DATA5=0;
-//	Uart_DATA06.bf.DATA6=0;
-//	Uart_DATA06.bf.DATA7=0;
-//		//第7个数据8位
-    Uart_DATA07.DATA00=0;
-//	Uart_DATA07.bf.DATA0=0;
-//	Uart_DATA07.bf.DATA1=0;
-//	Uart_DATA07.bf.DATA2=0;
-//	Uart_DATA07.bf.DATA3=0;
-//	Uart_DATA07.bf.DATA4=0;
-//	Uart_DATA07.bf.DATA5=0;
-//	Uart_DATA07.bf.DATA6=0;
-//	Uart_DATA07.bf.DATA7=0;
-//		//第8个数据8位
-		Uart_DATA08.DATA00=0;
-//	Uart_DATA08.bf.DATA0=0;
-//	Uart_DATA08.bf.DATA1=0;
-//	Uart_DATA08.bf.DATA2=0;
-//	Uart_DATA08.bf.DATA3=0;
-//	Uart_DATA08.bf.DATA4=0;
-//	Uart_DATA08.bf.DATA5=0;
-//	Uart_DATA08.bf.DATA6=0;
-//	Uart_DATA08.bf.DATA7=0;
-//		//第9个数据8位
-		Uart_DATA09.DATA00=0;
-//	Uart_DATA09.bf.DATA0=0;
-//	Uart_DATA09.bf.DATA1=0;
-//	Uart_DATA09.bf.DATA2=0;
-//	Uart_DATA09.bf.DATA3=0;
-//	Uart_DATA09.bf.DATA4=0;
-//	Uart_DATA09.bf.DATA5=0;
-//	Uart_DATA09.bf.DATA6=0;
-//	Uart_DATA09.bf.DATA7=0;
-//		//第10个数据8位
-    Uart_DATA10.DATA00=0;
-//	Uart_DATA10.bf.DATA0=0;
-//	Uart_DATA10.bf.DATA1=0;
-//	Uart_DATA10.bf.DATA2=0;
-//	Uart_DATA10.bf.DATA3=0;
-//	Uart_DATA10.bf.DATA4=0;
-//	Uart_DATA10.bf.DATA5=0;
-//	Uart_DATA10.bf.DATA6=0;
-//	Uart_DATA10.bf.DATA7=0;
-//		//第11个数据8位
-		Uart_DATA11.DATA00=0;
-//	Uart_DATA11.bf.DATA0=0;
-//	Uart_DATA11.bf.DATA1=0;
-//	Uart_DATA11.bf.DATA2=0;
-//	Uart_DATA11.bf.DATA3=0;
-//	Uart_DATA11.bf.DATA4=0;
-//	Uart_DATA11.bf.DATA5=0;
-//	Uart_DATA11.bf.DATA6=0;
-//	Uart_DATA11.bf.DATA7=0;
-//		//第12个数据8位
-    Uart_DATA12.DATA00=0;
-//	Uart_DATA12.bf.DATA0=0;
-//	Uart_DATA12.bf.DATA1=0;
-//	Uart_DATA12.bf.DATA2=0;
-//	Uart_DATA12.bf.DATA3=0;
-//	Uart_DATA12.bf.DATA4=0;
-//	Uart_DATA12.bf.DATA5=0;
-//	Uart_DATA12.bf.DATA6=0;
-//	Uart_DATA12.bf.DATA7=0;
-//		//第13个数据8位
-		Uart_DATA13.DATA00=0;
-//	Uart_DATA13.bf.DATA0=0;
-//	Uart_DATA13.bf.DATA1=0;
-//	Uart_DATA13.bf.DATA2=0;
-//	Uart_DATA13.bf.DATA3=0;
-//	Uart_DATA13.bf.DATA4=0;
-//	Uart_DATA13.bf.DATA5=0;
-//	Uart_DATA13.bf.DATA6=0;
-//	Uart_DATA13.bf.DATA7=0;
-//		//第14个数据8位
-    Uart_DATA14.DATA00=0;
-//	Uart_DATA14.bf.DATA0=0;
-//	Uart_DATA14.bf.DATA1=0;
-//	Uart_DATA14.bf.DATA2=0;
-//	Uart_DATA14.bf.DATA3=0;
-//	Uart_DATA14.bf.DATA4=0;
-//	Uart_DATA14.bf.DATA5=0;
-//	Uart_DATA14.bf.DATA6=0;
-//	Uart_DATA14.bf.DATA7=0;
-//		//第15个数据8位
-    Uart_DATA15.DATA00=0;
-//	Uart_DATA15.bf.DATA0=0;
-//	Uart_DATA15.bf.DATA1=0;
-//	Uart_DATA15.bf.DATA2=0;
-//	Uart_DATA15.bf.DATA3=0;
-//	Uart_DATA15.bf.DATA4=0;
-//	Uart_DATA15.bf.DATA5=0;
-//	Uart_DATA15.bf.DATA6=0;
-//	Uart_DATA15.bf.DATA7=0;
-}
-
-void Uart_Int_Finsh(void)
-{
-		//参数清零因为复用问题
-	Uart_DATA00.DATA00=0;Uart_DATA01.DATA00=0;Uart_DATA02.DATA00=0;Uart_DATA03.DATA00=0;
-	Uart_DATA04.DATA00=0;Uart_DATA05.DATA00=0;Uart_DATA06.DATA00=0;Uart_DATA07.DATA00=0;
-	Uart_DATA08.DATA00=0;Uart_DATA09.DATA00=0;Uart_DATA10.DATA00=0;Uart_DATA11.DATA00=0;
-	Uart_DATA12.DATA00=0;Uart_DATA13.DATA00=0;Uart_DATA14.DATA00=0;Uart_DATA15.DATA00=0;			
-}
-void Uart_Run01(void)
-{
-	
-	uint16  Power=0;
-	Power=P_PowerReal;
-	
-		//参数清零因为复用问题
-	Uart_DATA00.DATA00=0;Uart_DATA01.DATA00=0;Uart_DATA02.DATA00=0;Uart_DATA03.DATA00=0;
-	Uart_DATA04.DATA00=0;Uart_DATA05.DATA00=0;Uart_DATA06.DATA00=0;Uart_DATA07.DATA00=0;
-	Uart_DATA08.DATA00=0;Uart_DATA09.DATA00=0;Uart_DATA10.DATA00=0;Uart_DATA11.DATA00=0;
-	Uart_DATA12.DATA00=0;Uart_DATA13.DATA00=0;Uart_DATA14.DATA00=0;Uart_DATA15.DATA00=0;
-	//第0个数据8位
-//	SYS_RunMode;
-	Uart_DATA00.DATA00=SYS_RunMode;
-//	Uart_DATA00.bf.DATA0=0; //回送模式  收啥发啥
-//	Uart_DATA00.bf.DATA1=0;
-//	Uart_DATA00.bf.DATA2=0;
-//	Uart_DATA00.bf.DATA3=0;
-	Uart_DATA00.bf.DATA4=mcSpeedRamp.FlagONOFF;//压缩机开/关状态  0:压缩机关  1:压缩机开
-//	Uart_DATA00.bf.DATA5=0;//预留
-//	Uart_DATA00.bf.DATA6=0;
-//	Uart_DATA00.bf.DATA7=0;
-	//第1个数据8位
-	Uart_DATA01.DATA00=S_Value2;//压缩机运行转速  实际运行转速 单位:rps
-//	Uart_DATA01.bf.DATA0=0;
-//	Uart_DATA01.bf.DATA1=0;
-//	Uart_DATA01.bf.DATA2=0;
-//	Uart_DATA01.bf.DATA3=0;
-//	Uart_DATA01.bf.DATA4=0;
-//	Uart_DATA01.bf.DATA5=0;
-//	Uart_DATA01.bf.DATA6=0;
-//	Uart_DATA01.bf.DATA7=0;
-	//第2个数据8位
-	Uart_DATA02.DATA00=Fengji_FG.FENJIPINLV2/10;//外风机1转速  实际转速/10  单位:rpm
-//	Uart_DATA02.bf.DATA0=0;
-//	Uart_DATA02.bf.DATA1=0;
-//	Uart_DATA02.bf.DATA2=0;
-//	Uart_DATA02.bf.DATA3=0;
-//	Uart_DATA02.bf.DATA4=0;
-//	Uart_DATA02.bf.DATA5=0;
-//	Uart_DATA02.bf.DATA6=0;
-//	Uart_DATA02.bf.DATA7=0;
-		//第3个数据8位
-		Uart_DATA03.DATA00=0;//外风机2转速  实际转速/10  单位:rpm
-//	Uart_DATA03.bf.DATA0=0;
-//	Uart_DATA03.bf.DATA1=0;
-//	Uart_DATA03.bf.DATA2=0;
-//	Uart_DATA03.bf.DATA3=0;
-//	Uart_DATA03.bf.DATA4=0;
-//	Uart_DATA03.bf.DATA5=0;
-//	Uart_DATA03.bf.DATA6=0;
-//	Uart_DATA03.bf.DATA7=0;
-//		//第4个数据8位
-		Uart_DATA04.DATA00=Power>>5;//压缩机运行功率  实际运行功率/32  单位:W
-//	Uart_DATA04.bf.DATA0=0;
-//	Uart_DATA04.bf.DATA1=0;
-//	Uart_DATA04.bf.DATA2=0;
-//	Uart_DATA04.bf.DATA3=0;
-//	Uart_DATA04.bf.DATA4=0;
-//	Uart_DATA04.bf.DATA5=0;
-//	Uart_DATA04.bf.DATA6=0;
-//	Uart_DATA04.bf.DATA7=0;
-//		//第5个数据8位
-    Uart_DATA05.DATA00=0;//预留
-//	Uart_DATA05.bf.DATA0=0;
-//	Uart_DATA05.bf.DATA1=0;
-//	Uart_DATA05.bf.DATA2=0;
-//	Uart_DATA05.bf.DATA3=0;
-//	Uart_DATA05.bf.DATA4=0;
-//	Uart_DATA05.bf.DATA5=0;
-//	Uart_DATA05.bf.DATA6=0;
-//	Uart_DATA05.bf.DATA7=0;
-//		//第6个数据8位
-		Uart_DATA06.DATA00=0;//电子膨胀阀开度
-//	Uart_DATA06.bf.DATA0=0;
-//	Uart_DATA06.bf.DATA1=0;
-//	Uart_DATA06.bf.DATA2=0;
-//	Uart_DATA06.bf.DATA3=0;
-//	Uart_DATA06.bf.DATA4=0;
-//	Uart_DATA06.bf.DATA5=0;
-//	Uart_DATA06.bf.DATA6=0;
-//	Uart_DATA06.bf.DATA7=0;
-//		//第7个数据8位
-    Uart_DATA07.DATA00=(((uint32)(mcFocCtrl.mcDcbusFlt * HW_BOARD_VOLT_MAX)) >> 15)>>2;//直流母线电压  实际直流母线电压值/4   单位:V
-//	Uart_DATA07.bf.DATA0=0;
-//	Uart_DATA07.bf.DATA1=0;
-//	Uart_DATA07.bf.DATA2=0;
-//	Uart_DATA07.bf.DATA3=0;
-//	Uart_DATA07.bf.DATA4=0;
-//	Uart_DATA07.bf.DATA5=0;
-//	Uart_DATA07.bf.DATA6=0;
-//	Uart_DATA07.bf.DATA7=0;
-//		//第8个数据8位
-//		Uart_DATA08.DATA08=0;
-		Uart_DATA08.bf.DATA0=0;//室外环境温度小数标志   00: 0℃标志  01: 0.25℃标志  10: 0.5℃标志  11: 0.75℃标志
-		Uart_DATA08.bf.DATA1=0;
-		Uart_DATA08.bf.DATA2=0;//室外冷凝器温度小数标志
-		Uart_DATA08.bf.DATA3=0;
-		Uart_DATA08.bf.DATA4=0;//室外排气温度小数标志
-		Uart_DATA08.bf.DATA5=0;
-//		Uart_DATA08.bf.DATA6=0;//预留
-//		Uart_DATA08.bf.DATA7=0;
-//		//第9个数据8位
-		Uart_DATA09.DATA00=Huan_temp/10+40;  //室外环境温度  0h:-40℃,数据每增加1则温度增加1℃
-//	Uart_DATA09.bf.DATA0=0;
-//	Uart_DATA09.bf.DATA1=0;
-//	Uart_DATA09.bf.DATA2=0;
-//	Uart_DATA09.bf.DATA3=0;
-//	Uart_DATA09.bf.DATA4=0;
-//	Uart_DATA09.bf.DATA5=0;
-//	Uart_DATA09.bf.DATA6=0;
-//	Uart_DATA09.bf.DATA7=0;
-//		//第10个数据8位
-    Uart_DATA10.DATA00=Guan_temp/10+40;//室外冷凝器中间温度  0h:-40℃,数据每增加1则温度增加1℃
-//	Uart_DATA10.bf.DATA0=0;
-//	Uart_DATA10.bf.DATA1=0;
-//	Uart_DATA10.bf.DATA2=0;
-//	Uart_DATA10.bf.DATA3=0;
-//	Uart_DATA10.bf.DATA4=0;
-//	Uart_DATA10.bf.DATA5=0;
-//	Uart_DATA10.bf.DATA6=0;
-//	Uart_DATA10.bf.DATA7=0;
-//		//第11个数据8位
-		Uart_DATA11.DATA00=Paiqi_temp/10+40;//室外排气温度  0h:-40℃,数据每增加1则温度增加1℃
-//	Uart_DATA11.bf.DATA0=0;
-//	Uart_DATA11.bf.DATA1=0;
-//	Uart_DATA11.bf.DATA2=0;
-//	Uart_DATA11.bf.DATA3=0;
-//	Uart_DATA11.bf.DATA4=0;
-//	Uart_DATA11.bf.DATA5=0;
-//	Uart_DATA11.bf.DATA6=0;
-//	Uart_DATA11.bf.DATA7=0;
-//		//第12个数据8位
-//    Uart_DATA12.DATA12=0;
-	Uart_DATA12.bf.DATA0=0;  //除霜要求  0:无要求  1:除霜要求
-	Uart_DATA12.bf.DATA1=0;  //普通除霜状态 0:通常状态(default) 或特殊除霜状态  1:普通除霜中
-	Uart_DATA12.bf.DATA2=0;  //回油状态  0:无需停内风机的制热回油或非回油状态  1:制冷回油 或 需要停内风机的制热回油
-	Uart_DATA12.bf.DATA3=0;  //3分钟待机状态  0:通常状态   1:3分钟待机中
-	Uart_DATA12.bf.DATA4=0;  //电子膨胀阀状态 0:通常状态  1:复位中
-	Uart_DATA12.bf.DATA5=0;  //外机静音状态  0:通常状态  1:外机静音中
-	Uart_DATA12.bf.DATA6=0;  //外机防凝露状态  0:通常状态 1:外机防凝露中
-	Uart_DATA12.bf.DATA7=0;  //SAVE状态  0:通常状态   1:SAVE状态运行中
-//		//第13个数据8位
-//		Uart_DATA13.DATA13=0;
-	Uart_DATA13.bf.DATA0=0;//回送自测状态
-	Uart_DATA13.bf.DATA1=0;
-	Uart_DATA13.bf.DATA2=mcFaultSource;//外机任意停机故障  0:正常  1:故障
-	Uart_DATA13.bf.DATA3=0;//特殊除霜状态  0:通常状态(default) 或普通除霜状态  1:特殊除霜中
-//	Uart_DATA13.bf.DATA4=0;//预留
-//	Uart_DATA13.bf.DATA5=0;
-//	Uart_DATA13.bf.DATA6=0;
-//	Uart_DATA13.bf.DATA7=0;
-//		//第14个数据8位
-    Uart_DATA14.DATA00=0;//外机AC电流值  实际电流,单位0.5A
-//	Uart_DATA14.bf.DATA0=0;
-//	Uart_DATA14.bf.DATA1=0;
-//	Uart_DATA14.bf.DATA2=0;
-//	Uart_DATA14.bf.DATA3=0;
-//	Uart_DATA14.bf.DATA4=0;
-//	Uart_DATA14.bf.DATA5=0;
-//	Uart_DATA14.bf.DATA6=0;
-//	Uart_DATA14.bf.DATA7=0;
-//		//第15个数据8位
-//    Uart_DATA15.DATA15=0;
-	Uart_DATA15.bf.DATA0=0;//DRED模式运行状态
-	Uart_DATA15.bf.DATA1=0;
-	Uart_DATA15.bf.DATA2=0;//强制制冷  0:未执行;1:执行
-	Uart_DATA15.bf.DATA3=0;//强制制热
-	Uart_DATA15.bf.DATA4=0;//强制除霜
-	Uart_DATA15.bf.DATA5=0;//收氟模式
-	Uart_DATA15.bf.DATA6=0;//试运行
-//	Uart_DATA15.bf.DATA7=0;	//预留
-}
-void Uart_Run02(void)
-{
-		//参数清零因为复用问题
-	Uart_DATA00.DATA00=0;Uart_DATA01.DATA00=0;Uart_DATA02.DATA00=0;Uart_DATA03.DATA00=0;
-	Uart_DATA04.DATA00=0;Uart_DATA05.DATA00=0;Uart_DATA06.DATA00=0;Uart_DATA07.DATA00=0;
-	Uart_DATA08.DATA00=0;Uart_DATA09.DATA00=0;Uart_DATA10.DATA00=0;Uart_DATA11.DATA00=0;
-	Uart_DATA12.DATA00=0;Uart_DATA13.DATA00=0;Uart_DATA14.DATA00=0;Uart_DATA15.DATA00=0;
-		//第0个数据8位
-//	Uart_DATA00.DATA00=0;
-	Uart_DATA00.bf.DATA0=0;//外机AC电流保护限/降频  0:正常            1:限/降频
-	Uart_DATA00.bf.DATA1=0;//排气保护限/降频
-	Uart_DATA00.bf.DATA2=0;//防冻结保护限/降频
-	Uart_DATA00.bf.DATA3=0;//过负荷保护限/降频
-	Uart_DATA00.bf.DATA4=0;//直流母线电压保护限/降频
-	Uart_DATA00.bf.DATA5=0;//模块温度保护限/降频
-	Uart_DATA00.bf.DATA6=0;//模块电流(压缩机相电流)保护限/降频
-	Uart_DATA00.bf.DATA7=0;//功率过高保护限/降频
-	//第1个数据8位
-	Uart_DATA01.DATA00=0;
-//	Uart_DATA01.bf.DATA0=0;
-//	Uart_DATA01.bf.DATA1=0;
-//	Uart_DATA01.bf.DATA2=0;
-//	Uart_DATA01.bf.DATA3=0;
-//	Uart_DATA01.bf.DATA4=0;
-//	Uart_DATA01.bf.DATA5=0;
-//	Uart_DATA01.bf.DATA6=0;
-//	Uart_DATA01.bf.DATA7=0;
-	//第2个数据8位
-//	Uart_DATA02.DATA02=0;
-	Uart_DATA02.bf.DATA0=0;//功率过高保护 0:正常            1:故障
-	Uart_DATA02.bf.DATA1=0;//防冻结保护
-	Uart_DATA02.bf.DATA2=0;//模块温度保护
-	Uart_DATA02.bf.DATA3=0;//模块电流(Fo)保护
-	Uart_DATA02.bf.DATA4=0;//外机AC电流保护
-	Uart_DATA02.bf.DATA5=0;//过负荷保护
-	Uart_DATA02.bf.DATA6=0;//排气保护
-	Uart_DATA02.bf.DATA7=0;//压缩机热过载保护
-		//第3个数据8位
-//		Uart_DATA03.DATA03=0;
-	Uart_DATA03.bf.DATA0=0;//一拖多内外机管路连接与通讯连接不匹配  0:正常        1:故障
-	Uart_DATA03.bf.DATA1=0;//室内外机型不匹配
-	Uart_DATA03.bf.DATA2=0;//模式冲突
-	Uart_DATA03.bf.DATA3=0;//缺氟保护
-	Uart_DATA03.bf.DATA4=0;//直流母线电压过低保护
-	Uart_DATA03.bf.DATA5=0;//直流母线电压过高保护
-	Uart_DATA03.bf.DATA6=0;//PFC过流故障
-	Uart_DATA03.bf.DATA7=0;//压缩机缺/逆相保护欠相,脱调(缺相)
-
-		//第4个数据8位
-		Uart_DATA04.DATA00=0;
-//	Uart_DATA04.bf.DATA0=0;
-//	Uart_DATA04.bf.DATA1=0;
-//	Uart_DATA04.bf.DATA2=0;
-//	Uart_DATA04.bf.DATA3=0;
-//	Uart_DATA04.bf.DATA4=0;
-//	Uart_DATA04.bf.DATA5=0;//四通阀换向异常  0:正常        1:故障
-//	Uart_DATA04.bf.DATA6=0;
-//	Uart_DATA04.bf.DATA7=0;
-//		//第5个数据8位
-//    Uart_DATA05.DATA05=0;
-	Uart_DATA05.bf.DATA0=0;//压缩机退磁保护  0:正常        1:故障
-	Uart_DATA05.bf.DATA1=0;//压缩机失步
-	Uart_DATA05.bf.DATA2=0;//压缩机相电流电路检测故障
-	Uart_DATA05.bf.DATA3=0;//电容充电故障
-	Uart_DATA05.bf.DATA4=0;//整机电流检测故障
-	Uart_DATA05.bf.DATA5=0;//直流母线电压跌落故障
-	Uart_DATA05.bf.DATA6=0;//系统高压保护
-	Uart_DATA05.bf.DATA7=0;//系统低压保护
-//		//第6个数据8位
-//		Uart_DATA06.DATA06=0;
-	Uart_DATA06.bf.DATA0=0;//温漂保护
-	Uart_DATA06.bf.DATA1=0;//交流接触器保护
-	Uart_DATA06.bf.DATA2=0;//驱动板环境感温包故障
-	Uart_DATA06.bf.DATA3=0;//压缩机拨码异常
-	Uart_DATA06.bf.DATA4=0;//超速
-	Uart_DATA06.bf.DATA5=0;//驱动模块复位
-	Uart_DATA06.bf.DATA6=0;//启动失败
-	Uart_DATA06.bf.DATA7=0;//压缩机堵转
-//		//第7个数据8位
-//    Uart_DATA07.DATA07=0;
-//	Uart_DATA07.bf.DATA0=0;//预留
-//	Uart_DATA07.bf.DATA1=0;
-//	Uart_DATA07.bf.DATA2=0;
-	Uart_DATA07.bf.DATA3=0;//风机调速板通讯故障
-	Uart_DATA07.bf.DATA4=0;//交流输入电压异常
-	Uart_DATA07.bf.DATA5=0;//压缩机相电流过流
-	Uart_DATA07.bf.DATA6=0;//驱动板通讯故障
-	Uart_DATA07.bf.DATA7=0;//传感器连接保护(电流传感器没有接到对应的U相或V相)
-//		//第8个数据8位
-		Uart_DATA08.DATA00=0;
-//	Uart_DATA08.bf.DATA0=0;
-//	Uart_DATA08.bf.DATA1=0;
-//	Uart_DATA08.bf.DATA2=0;
-//	Uart_DATA08.bf.DATA3=0;
-//	Uart_DATA08.bf.DATA4=0;
-//	Uart_DATA08.bf.DATA5=0;
-//	Uart_DATA08.bf.DATA6=0;
-//	Uart_DATA08.bf.DATA7=0;
-//		//第9个数据8位
-		Uart_DATA09.DATA00=mcFocCtrl.IPMtemp/10-40;//IPM模块温度  0h:-40℃,数据每增加1则温度增加1℃
-//	Uart_DATA09.bf.DATA0=0;
-//	Uart_DATA09.bf.DATA1=0;
-//	Uart_DATA09.bf.DATA2=0;
-//	Uart_DATA09.bf.DATA3=0;
-//	Uart_DATA09.bf.DATA4=0;
-//	Uart_DATA09.bf.DATA5=0;
-//	Uart_DATA09.bf.DATA6=0;
-//	Uart_DATA09.bf.DATA7=0;
-//		//第10个数据8位
-    Uart_DATA10.DATA00=0;
-//	Uart_DATA10.bf.DATA0=0;
-//	Uart_DATA10.bf.DATA1=0;
-//	Uart_DATA10.bf.DATA2=0;
-//	Uart_DATA10.bf.DATA3=0;
-//	Uart_DATA10.bf.DATA4=0;
-//	Uart_DATA10.bf.DATA5=0;
-//	Uart_DATA10.bf.DATA6=0;
-//	Uart_DATA10.bf.DATA7=0;
-//		//第11个数据8位
-		Uart_DATA11.DATA00=0;
-//	Uart_DATA11.bf.DATA0=0;
-//	Uart_DATA11.bf.DATA1=0;
-//	Uart_DATA11.bf.DATA2=0;
-//	Uart_DATA11.bf.DATA3=0;
-//	Uart_DATA11.bf.DATA4=0;
-//	Uart_DATA11.bf.DATA5=0;
-//	Uart_DATA11.bf.DATA6=0;
-//	Uart_DATA11.bf.DATA7=0;
-//		//第12个数据8位
-    Uart_DATA12.DATA00=0;
-//	Uart_DATA12.bf.DATA0=0;
-//	Uart_DATA12.bf.DATA1=0;
-//	Uart_DATA12.bf.DATA2=0;
-//	Uart_DATA12.bf.DATA3=0;
-//	Uart_DATA12.bf.DATA4=0;
-//	Uart_DATA12.bf.DATA5=0;
-//	Uart_DATA12.bf.DATA6=0;
-//	Uart_DATA12.bf.DATA7=0;
-//		//第13个数据8位
-		Uart_DATA13.DATA00=0;
-//	Uart_DATA13.bf.DATA0=0;
-//	Uart_DATA13.bf.DATA1=0;
-//	Uart_DATA13.bf.DATA2=0;
-//	Uart_DATA13.bf.DATA3=0;
-//	Uart_DATA13.bf.DATA4=0;
-//	Uart_DATA13.bf.DATA5=0;
-//	Uart_DATA13.bf.DATA6=0;
-//	Uart_DATA13.bf.DATA7=0;
-//		//第14个数据8位
-    Uart_DATA14.DATA00=0;
-//	Uart_DATA14.bf.DATA0=0;
-//	Uart_DATA14.bf.DATA1=0;
-//	Uart_DATA14.bf.DATA2=0;
-//	Uart_DATA14.bf.DATA3=0;
-//	Uart_DATA14.bf.DATA4=0;
-//	Uart_DATA14.bf.DATA5=0;
-//	Uart_DATA14.bf.DATA6=0;
-//	Uart_DATA14.bf.DATA7=0;
-//		//第15个数据8位
-    Uart_DATA15.DATA00=0;
-//	Uart_DATA15.bf.DATA0=0;
-//	Uart_DATA15.bf.DATA1=0;
-//	Uart_DATA15.bf.DATA2=0;
-//	Uart_DATA15.bf.DATA3=0;
-//	Uart_DATA15.bf.DATA4=0;
-//	Uart_DATA15.bf.DATA5=0;
-//	Uart_DATA15.bf.DATA6=0;
-//	Uart_DATA15.bf.DATA7=0;
-}
-
-
-
-
-void Modbus_respond(void)
-{
-	    uint8 u16CRC = 0;
-	
-	    Uart.T_DATA[0]  = Uart.Oder;       					 //指令
-			Uart.T_DATA[1]  = 0x00;             				 //地址   00一拖一
-			Uart.T_DATA[2]  = 0x00;             				 //标志  
-			Uart.T_DATA[3]  = Uart_DATA00.DATA00;        //数据第0位
-			Uart.T_DATA[4]  = Uart_DATA01.DATA00;    		 //数据第1位
-			Uart.T_DATA[5]  = Uart_DATA02.DATA00; 	     //数据第2位
-			Uart.T_DATA[6]  = Uart_DATA03.DATA00;        //数据第3位
-			Uart.T_DATA[7]  = Uart_DATA04.DATA00;        //数据第4位
-			Uart.T_DATA[8]  = Uart_DATA05.DATA00;        //数据第5位
-			Uart.T_DATA[9]  = Uart_DATA06.DATA00;        //数据第6位
-			Uart.T_DATA[10] = Uart_DATA07.DATA00; 			 //数据第7位
-			Uart.T_DATA[11] = Uart_DATA08.DATA00; 		   //数据第8位
-			Uart.T_DATA[12] = Uart_DATA09.DATA00;        //数据第9位
-			Uart.T_DATA[13] = Uart_DATA10.DATA00;        //数据第10位
-			Uart.T_DATA[14] = Uart_DATA11.DATA00;        //数据第11位
-			Uart.T_DATA[15] = Uart_DATA12.DATA00;        //数据第12位
-			Uart.T_DATA[16] = Uart_DATA13.DATA00;    		 //数据第13位
-			Uart.T_DATA[17] = Uart_DATA14.DATA00; 		   //数据第14位
-			Uart.T_DATA[18] = Uart_DATA15.DATA00;        //数据第15位
-	
-//			Uart.T_DATA[0]  = 0x31;//Uart.Oder;       					 //指令
-//			Uart.T_DATA[1]  = 0x00;             				 //地址   00一拖一
-//			Uart.T_DATA[2]  = 0x00;             				 //标志  
-//			Uart.T_DATA[3]  =1; //Uart_DATA00.DATA00;        //数据第0位
-//			Uart.T_DATA[4]  =0; //Uart_DATA01.DATA01;    		 //数据第1位
-//			Uart.T_DATA[5]  =0; //Uart_DATA02.DATA02; 	     //数据第2位
-//			Uart.T_DATA[6]  =0; //Uart_DATA03.DATA03;        //数据第3位
-//			Uart.T_DATA[7]  =0; //Uart_DATA04.DATA04;        //数据第4位
-//			Uart.T_DATA[8]  =0; //Uart_DATA05.DATA05;        //数据第5位
-//			Uart.T_DATA[9]  =0; //Uart_DATA06.DATA06;        //数据第6位
-//			Uart.T_DATA[10] =0; //Uart_DATA07.DATA07; 			 //数据第7位
-//			Uart.T_DATA[11] =0; //Uart_DATA08.DATA08; 		   //数据第8位
-//			Uart.T_DATA[12] =0; //Uart_DATA09.DATA09;        //数据第9位
-//			Uart.T_DATA[13] =0; //Uart_DATA10.DATA10;        //数据第10位
-//			Uart.T_DATA[14] =0; //Uart_DATA11.DATA11;        //数据第11位
-//			Uart.T_DATA[15] =0; //Uart_DATA12.DATA12;        //数据第12位
-//			Uart.T_DATA[16] =0; //Uart_DATA13.DATA13;    		 //数据第13位
-//			Uart.T_DATA[17] =0; //Uart_DATA14.DATA14; 		   //数据第14位
-//			Uart.T_DATA[18] =0; //Uart_DATA15.DATA15;        //数据第15位
-			
-			u16CRC = BBC(&Uart.T_DATA[0], TX_LEN-2);
-
-			Uart.T_DATA[19] = u16CRC;                    //CRC
-			
-			Uart.send_start_falg=1;
-			if (Uart.send_start_falg == 1)
-			{   
-				  Uart.Recive_Flag=1;
-					UT2_DR = Uart.T_DATA[0];
-				  UT2TB8 = even_or_odd(Uart.T_DATA[0],evnodd);
-					Uart.send_start_falg = 0;
-					Uart.TxCnt = 0;
-			}
-}
-
-void Modbus_task00(void)
-{ 	
-	  if(Uart.Uart_Tmreset>=(T_mreset+T_mwtchg))//T_mreset
-		{
-			  Uart_Int01();
-				Modbus_respond();
-				Uart.Uart_Tmreset=0;
-		}
-}
-void Modbus_task01(void)
-{
-	if(Uart.Uart_Tmcomcyc>=(T_mcomcyc+T_mwtchg))//(T_mcomcyc+T_mwtchg)
-	{
-		  Uart_Int02();
-      Modbus_respond();
-		  Uart.Uart_Tmcomcyc=0;
-  }
-}
-void Modbus_task02(void)
-{
-	if(Uart.Uart_Tmcomcyc>=(T_mcomcyc+T_mwtchg))
-	{
-		  Uart_Int_Finsh();
-			Modbus_respond();
-		  Uart.Uart_Tmcomcyc=0;
-  }
-}
-void Modbus_task03(void)
-{
-	if(Uart.Uart_Tmcomcyc>=(T_mcomcyc+T_mwtchg))
-	{
-			Uart_Run01();
-			Modbus_respond();
-		  Uart.Uart_Tmcomcyc=0;
-	}
-}
-void Modbus_task04(void)
-{
-	if(Uart.Uart_Tmcomcyc>=(T_mcomcyc+T_mwtchg))
-	{
-			Uart_Run02();
-			Modbus_respond();
-		  Uart.Uart_Tmcomcyc=0;
-	}
-}
-void Modbus_task06(void)
-{
-
-		Uart.YaJI_Speed   = (Uart.R_DATA[4] <<8) |Uart.R_DATA[5];
-	  ConTrolCmd.yajispeed=Uart.YaJI_Speed;
-	  mcFaultDect.commu_time=0;
-  	Modbus_respond();
-}
-
-/**任务机发送**/
-void Modbus_task(void)
-{
-		switch (Uart.Oder)//判断功能码
-		{
-				case 0x11:            //初始状态1
-					Modbus_task00();
-				break;
-				case 0x12:            //初始状态2
-					Modbus_task01();
-				break;
-				case 0x2F:            //复位结束
-					Modbus_task02();
-				break;
-				case 0x31:            //运转信息1
-					Modbus_task03();
-				break;
-				case 0x32:            //运转信息2
-					Modbus_task04();
-				break;
-				default:
-				break;
-		}
-}
-
-
-
-void Modbus_Recive_task0(void)
-{
-	
-}
-void Modbus_Recive_task1(void)
-{
-	
-}
-void Modbus_Recive_task2(void)
-{
-	
-}
-void Modbus_Recive_task3(void)
-{
-    Uart_Rec_DATA00.DATAT00 = Uart.R_DATA[3];
-		Uart_Rec_DATA01.DATAT00 = Uart.R_DATA[4];
-		Uart_Rec_DATA02.DATAT00 = Uart.R_DATA[5];
-	  Uart_Rec_DATA03.DATAT00 = Uart.R_DATA[6];//室内设定温度
-	  Uart_Rec_DATA04.DATAT00 = Uart.R_DATA[7];//室内环境温度
-		Uart_Rec_DATA05.DATAT00 = Uart.R_DATA[8];
-		Uart_Rec_DATA06.DATAT00 = Uart.R_DATA[9];//蒸发器温度
-		Uart_Rec_DATA09.DATAT00 = Uart.R_DATA[12];
-	  Uart_Rec_DATA10.DATAT00 = Uart.R_DATA[13];
-	  Uart_Rec_DATA11.DATAT00 = Uart.R_DATA[14];
-		Uart_Rec_DATA12.DATAT00 = Uart.R_DATA[15];
-		Uart_Rec_DATA13.DATAT00 = Uart.R_DATA[16];
-		Uart_Rec_DATA14.DATAT00 = Uart.R_DATA[17];
-	  Uart_Rec_DATA15.DATAT00 = Uart.R_DATA[18];
-	
-	
-	
-	 //运行模式提取
-	 SYS_RunMode								= Uart_Rec_DATA00.DATAT00 & 0x0f;
-	 
-	 if(0 == SYS_RunMode)					// 上电默认
-	 {
-//		 u8_RunMode							= MODE_FAN;
-	 }
-	 else if(1 == SYS_RunMode)		// 制冷
-	 {
-		 u8_RunMode							= MODE_COOL;
-	 }
-	 else if(2 == SYS_RunMode)		// 除湿
-	 {
-		 u8_RunMode							= MODE_DEHUMIDIFY;
-	 }
-	 else if(3 == SYS_RunMode)			// 送风
-	 {
-		 u8_RunMode							= MODE_FAN;
-	 }
-	 else if(4 == SYS_RunMode)			// 制热
-	 {
-		 u8_RunMode							= MODE_HEAT;
-	 }
-	 else if(5 == SYS_RunMode)		// 强制制冷
-	 {
-		 u8_RunMode							= MODE_COOL;
-	 }
-	 else if(6 == SYS_RunMode)		// 强制制热
-	 {
-		 u8_RunMode							= MODE_HEAT;
-	 }
-	 else if(7 == SYS_RunMode)		// 强制除霜
-	 {
-		 u8_RunMode							= MODE_HEAT;
-	 }
-	 else if(8 == SYS_RunMode)		// 制冷能力测试
-	 {
-		 u8_RunMode							= MODE_COOL;
-	 }
-	 else if(9 == SYS_RunMode)		// 制热能力测试
-	 {
-		 u8_RunMode							= MODE_HEAT;
-	 }
-	 else if(10 == SYS_RunMode)		// 收氟
-	 {
-		 u8_RunMode							= MODE_COOL;
-	 }
-	 else if(11 == SYS_RunMode)		// 试运行
-	 {
-		 u8_RunMode							= MODE_COOL;
-	 }
-	 
-	 // 室内风速
-	 FAN_RunSpeed								= Uart_Rec_DATA01.DATAT00 & 0x0f;
-	 if(4 == FAN_RunSpeed)
-	 {
-		u1_IndoorFanSpeed				= 4 ; // HH
-	 }
-	 else if(3 == FAN_RunSpeed)
-	 {
-		u1_IndoorFanSpeed				= 3 ; // H
-	 }
-	 else if(2 == FAN_RunSpeed)
-	 {
-		u1_IndoorFanSpeed				= 2 ; // M
-	 }
-	 else if(0 == FAN_RunSpeed)
-	 {
-		u1_IndoorFanSpeed				= 0 ; // STOP
-	 }
-	 else
-	 {
-		u1_IndoorFanSpeed				= 1 ; // L or LL
-	 }
-	 
-	 // 室内设定温度 温度四舍误入  Uart_Rec_DATA02.bf.DATA1
-	 //u8_TempSet  u8_TempIndoor  u8_TempIncoil  0代表-20度    0.5度的精度
-	 if(Uart_Rec_DATA03.DATAT00 < 20)
-	 {
-		 u8_TempSet						= 0;
-	 }
-	 else
-	 {
-		 u8_TempSet						= (Uart_Rec_DATA03.DATAT00<<1)- 40 + Uart_Rec_DATA02.bf.DATA1;
-	 }
-	 
-	 //室内温度提取
-	 if(Uart_Rec_DATA04.DATAT00 < 20)
-	 {
-		 u8_TempIndoor					= 0;
-	 }
-	 else
-	 {
-		 u8_TempIndoor					= (Uart_Rec_DATA04.DATAT00<<1)- 40 + Uart_Rec_DATA02.bf.DATA3;
-	 }
-
-	 // 室内盘管温度
-	 if(Uart_Rec_DATA06.DATAT00 < 20)
-	 {
-		 u8_TempIncoil						= 0;
-	 }
-	 else
-	 {
-		 u8_TempIncoil						= (Uart_Rec_DATA06.DATAT00<<1)- 40 + Uart_Rec_DATA02.bf.DATA5;
-	 }
-	 
-	 
-	 	 //系统开关状态 其他信息 模式 设定温度 室内温度等更新后再设置开机状态
-	 if(Uart_Rec_DATA00.bf.DATA4==1)
-	 {	
-			u1_SystemOnF					= 1;
-	 }
-	 else
-	 {
-			u1_SystemOnF					= 0;
-	 }
-
-	 if(u1_cnt_idu_comm_task<255)
-	 {
-		u1_cnt_idu_comm_task++;
-	 }
-	 
-	  mcFaultDect.commu_time=0;
-}
-void Modbus_Recive_task4(void)
-{
-	
-}
-/**任务机接收**/
-void Modbus_Recive_task(void)
-{
-		switch (Uart.R_DATA[0])//判断功能码
-		{
-				case 0x11:            //初始状态1
-					Modbus_Recive_task0();
-				break;
-				case 0x12:            //初始状态2
-					Modbus_Recive_task1();
-				break;
-				case 0x2F:            //复位结束
-					Modbus_Recive_task2();
-				break;
-				case 0x31:            //运转信息1
-					Modbus_Recive_task3();
-				break;
-				case 0x32:            //运转信息2
-					Modbus_Recive_task4();
-				break;
-				default:
-				break;
-		}
-}
-
-/*串口数据处理,处理接收到的串口数据,运行于大循环中*/
-void UartDealResponse1(void)
-{
-	if(FaultNoSource != mcFaultSource)
-	{
-		u8_OutdoorErrorCode					= mcFaultSource;
-	}
-	u8_IndoorErrorCode						= 0;
-	
-	if (Modbus_Slave_Receive() == 1)//接收数据
-	{
-			Modbus_Recive_task();
-		  mcFaultDect.commu_time=0;
-		
-			if(Uart.R_DATA[0]==0x11)
-			{Uart.Oder=0x12;}
-			else if(Uart.R_DATA[0]==0x12)
-			{Uart.Oder=0x2F;}
-			else if(Uart.R_DATA[0]==0x2F)
-			{Uart.Oder=0x31;}
-			else if(Uart.R_DATA[0]==0x31)
-			{Uart.Oder=0x32;}
-			else if(Uart.R_DATA[0]==0x32)
-			{Uart.Oder=0x31;}
-			
-			Uart.recive_sussf_falg = 0;
-	}	
-	Modbus_task();//发送数据		
-}
-
-
-
-
-
-
-
-/////*****以上为格力通信协议,以下为月兔通信协议******///
-
-
-
-
-
-
-
-#elif (Uart_COMMUNICATION==1)
-
-uint8 BBC2(uint8* puchMsg, uint8 usDataLen)
-{
-		uint8 i;
-		uint8 bcc = 0;        // Initial value
-
-//		for ( i = 0; i < usDataLen; i++ )//  sum
-//		{
-//			bcc += puchMsg[i];        // crc ^= *data;
-//		}
-		for ( i = 0; i < usDataLen; i++ )//  不进位累加、异或检验
-		{
-			bcc = bcc^puchMsg[i];        // crc ^= *data;
-		}
-	
-		bcc=(~bcc)+1;
-
-		return bcc; 
-}	
-
-
-/*判断接收数据是否正确*/
-uint8 Modbus_Slave_Receive2(void)
-{
-		uint8 u16CRC=0;
-		if ((Uart.uarttimejishu >= 30 )&& (Uart.UartReadCnt >= 8))//Uart.uarttime每包数据的间隔
-		{
-				Uart.recive_lenth = Uart.UartReadCnt;
-        Uart.UartReadCnt = 0;
-//				u16CRC = Uart.R_DATA[Uart.recive_lenth - 1];//接收到的的校验码	  
-//				if (u16CRC == BBC2(&Uart.R_DATA[0], Uart.recive_lenth - 3))
-//				{
-//						Uart.recive_sussf_falg = 1;
-//						Uart.send_start_falg = 1;
-//				}
-//				else
-//				{
-//						Uart.recive_sussf_falg = 0;
-//				}
-//				
-			    if (0 == CRCCheck(Uart.R_DATA, Uart.recive_lenth))
-					{
-							Uart.recive_sussf_falg = 1;
-						  Uart.send_start_falg = 1;
-					}
-					else
-					{
-						Uart.recive_sussf_falg = 0;
-				  }
-		}
-		return Uart.recive_sussf_falg;	
-}
-
-
-void Modbus_Recive_task23(void)
-{
-    Uart_Rec_DATA00.DATAT00 = Uart.R_DATA[4];//运行模式
-		Uart_Rec_DATA01.DATAT00 = Uart.R_DATA[5];//强制压缩机运转频率
-		Uart_Rec_DATA02.DATAT00 = Uart.R_DATA[6];//设定温度
-	  Uart_Rec_DATA03.DATAT00 = Uart.R_DATA[7];//室内机环境温度(高位-整数位)
-	  Uart_Rec_DATA04.DATAT00 = Uart.R_DATA[8];//室内机环境温度(低位-小数位)
-		Uart_Rec_DATA05.DATAT00 = Uart.R_DATA[9];//室内盘管温度
-		Uart_Rec_DATA06.DATAT00 = Uart.R_DATA[10];//内机风速档
-		Uart_Rec_DATA09.DATAT00 = Uart.R_DATA[11];//室内风机当前转速
-	  Uart_Rec_DATA10.DATAT00 = Uart.R_DATA[12];//测试模式
-	  Uart_Rec_DATA11.DATAT00 = Uart.R_DATA[13];//辅助功能标志位
-		Uart_Rec_DATA12.DATAT00 = Uart.R_DATA[14];//室内机故障
-		Uart_Rec_DATA13.DATAT00 = Uart.R_DATA[15];//特殊遥控代码号
-		Uart_Rec_DATA14.DATAT00 = Uart.R_DATA[16];//特殊遥控器代码值
-	  Uart_Rec_DATA15.DATAT00 = Uart.R_DATA[17];//室内出风温度
-	
-	
-	
-//	 //运行模式提取
-//	 SYS_RunMode								= Uart_Rec_DATA00.DATAT00 & 0x0f;
-//	 
-//	 if(0 == SYS_RunMode)					// 关机
-//	 {
-////		 u8_RunMode							= MODE_FAN;
-//	 }
-//	 else if(1 == SYS_RunMode)		// 制冷
-//	 {
-//		 u8_RunMode							= MODE_COOL;
-//	 }
-//	 else if(2 == SYS_RunMode)		// 除湿
-//	 {
-//		 u8_RunMode							= MODE_DEHUMIDIFY;
-//	 }
-//	 else if(3 == SYS_RunMode)			// 制热
-//	 {
-//		 u8_RunMode							= MODE_HEAT;
-//	 }
-//	 else if(4 == SYS_RunMode)			// 制热  MODE_FAN
-//	 {
-//		 u8_RunMode							= MODE_FAN;
-//	 }
-//	 
-//	 
-//	 
-//	 // 室内风速
-//	 FAN_RunSpeed								= Uart_Rec_DATA06.DATAT00 & 0x0f;
-//	 if(0 == FAN_RunSpeed)
-//	 {
-//		u1_IndoorFanSpeed				= 0 ; // STOP
-//	 }
-//	 else if(0 == FAN_RunSpeed)
-//	 {
-//		u1_IndoorFanSpeed				= 1 ; // H  L or LL
-//	 }
-//	 else if(2 == FAN_RunSpeed)
-//	 {
-//		u1_IndoorFanSpeed				= 2 ; // M
-//	 }
-//	 else if(3 == FAN_RunSpeed)
-//	 {
-//		u1_IndoorFanSpeed				= 3 ; // H
-//	 }
-//	 else if(4 == FAN_RunSpeed)
-//	 {
-//		u1_IndoorFanSpeed				= 4 ; // HH
-//	 }
-//	 else if(5 == FAN_RunSpeed)
-//	 {
-//		u1_IndoorFanSpeed				= 5 ; //  HH
-//	 }
-//	 else if(6 == FAN_RunSpeed)
-//	 {
-//		u1_IndoorFanSpeed				= 6 ; //  HH
-//	 }
-
-//	 
-//	 // 室内设定温度 温度四舍误入  Uart_Rec_DATA02.bf.DATA1
-//	 //u8_TempSet  u8_TempIndoor  u8_TempIncoil  0代表-20度    0.5度的精度  Uart_Rec_DATA02.DATAT00
-//	 if(Uart_Rec_DATA02.DATAT00 < 20)
-//	 {
-//		 u8_TempSet						= 0;
-//	 }
-//	 else
-//	 {
-//		 u8_TempSet						= (Uart_Rec_DATA02.DATAT00<<1)- 64;
-//	 }
-//	 
-//	 //室内温度提取
-//	 if(Uart_Rec_DATA03.DATAT00 < 20)
-//	 {
-//		 u8_TempIndoor					= 0;
-//	 }
-//	 else
-//	 {
-//		 u8_TempIndoor					= (Uart_Rec_DATA03.DATAT00<<1)-64 + Uart_Rec_DATA04.bf.DATA3/100;
-//	 }
-
-//	 // 室内盘管温度
-//	 if(Uart_Rec_DATA05.DATAT00 < 20)
-//	 {
-//		 u8_TempIncoil						= 0;
-//	 }
-//	 else
-//	 {
-//		 u8_TempIncoil						= (Uart_Rec_DATA05.DATAT00<<1)- 64 ;
-//	 }
-//	 
-//	 
-//	 	 //系统开关状态 其他信息 模式 设定温度 室内温度等更新后再设置开机状态
-//	 if(SYS_RunMode==0)
-//	 {	
-//			u1_SystemOnF					= 0;
-//	 }
-//	 else
-//	 {
-//			u1_SystemOnF					= 1;
-//	 }
-
-	 if(u1_cnt_idu_comm_task<255)
-	 {
-		u1_cnt_idu_comm_task++;
-	 }
-	 
-	  mcFaultDect.commu_time=0;
-}
-
-void Uart_Run21(void)
-{
-	
-	uint16  Power=0;
-	Power=P_PowerReal;
-	
-		//参数清零因为复用问题
-	Uart_DATA00.DATA00=0;Uart_DATA01.DATA00=0;Uart_DATA02.DATA00=0;Uart_DATA03.DATA00=0;
-	Uart_DATA04.DATA00=0;Uart_DATA05.DATA00=0;Uart_DATA06.DATA00=0;Uart_DATA07.DATA00=0;
-	Uart_DATA08.DATA00=0;Uart_DATA09.DATA00=0;Uart_DATA10.DATA00=0;Uart_DATA11.DATA00=0;
-	Uart_DATA12.DATA00=0;Uart_DATA13.DATA00=0;Uart_DATA14.DATA00=0;Uart_DATA15.DATA00=0;
-	//第0个数据8位
-//	SYS_RunMode;
-	Uart_DATA00.DATA00=SYS_RunMode;
-//	Uart_DATA00.bf.DATA0=0; //回送模式  收啥发啥
-//	Uart_DATA00.bf.DATA1=0;
-//	Uart_DATA00.bf.DATA2=0;
-//	Uart_DATA00.bf.DATA3=0;
-//	Uart_DATA00.bf.DATA4=mcSpeedRamp.FlagONOFF;//压机目标频率
-//	Uart_DATA00.bf.DATA5=0;//预留
-//	Uart_DATA00.bf.DATA6=0;
-//	Uart_DATA00.bf.DATA7=0;
-	//第1个数据8位
-	Uart_DATA01.DATA00=0;//u8_AimFrequencyToDriver;//压缩机目标频率  实际运行转速 单位:rps  
-//	Uart_DATA01.bf.DATA0=0;
-//	Uart_DATA01.bf.DATA1=0;
-//	Uart_DATA01.bf.DATA2=0;
-//	Uart_DATA01.bf.DATA3=0;
-//	Uart_DATA01.bf.DATA4=0;
-//	Uart_DATA01.bf.DATA5=0;
-//	Uart_DATA01.bf.DATA6=0;
-//	Uart_DATA01.bf.DATA7=0;
-	//第2个数据8位
-	Uart_DATA02.DATA00=S_Value2;//压缩机运行转速  实际运行转速 单位:rps  
-//	Uart_DATA02.bf.DATA0=0;
-//	Uart_DATA02.bf.DATA1=0;
-//	Uart_DATA02.bf.DATA2=0;
-//	Uart_DATA02.bf.DATA3=0;
-//	Uart_DATA02.bf.DATA4=0;
-//	Uart_DATA02.bf.DATA5=0;
-//	Uart_DATA02.bf.DATA6=0;
-//	Uart_DATA02.bf.DATA7=0;
-		//第3个数据8位
-		Uart_DATA03.DATA00=0;//室外机故障、保护停
-//	Uart_DATA03.bf.DATA0=0;
-//	Uart_DATA03.bf.DATA1=0;
-//	Uart_DATA03.bf.DATA2=0;
-//	Uart_DATA03.bf.DATA3=0;
-//	Uart_DATA03.bf.DATA4=0;
-//	Uart_DATA03.bf.DATA5=0;
-//	Uart_DATA03.bf.DATA6=0;
-//	Uart_DATA03.bf.DATA7=0;
-//		//第4个数据8位
-		Uart_DATA04.DATA00=0;//室外盘管温度
-//	Uart_DATA04.bf.DATA0=0;
-//	Uart_DATA04.bf.DATA1=0;
-//	Uart_DATA04.bf.DATA2=0;
-//	Uart_DATA04.bf.DATA3=0;
-//	Uart_DATA04.bf.DATA4=0;
-//	Uart_DATA04.bf.DATA5=0;
-//	Uart_DATA04.bf.DATA6=0;
-//	Uart_DATA04.bf.DATA7=0;
-//		//第5个数据8位
-    Uart_DATA05.DATA00=0;//室外环境温度
-//	Uart_DATA05.bf.DATA0=0;
-//	Uart_DATA05.bf.DATA1=0;
-//	Uart_DATA05.bf.DATA2=0;
-//	Uart_DATA05.bf.DATA3=0;
-//	Uart_DATA05.bf.DATA4=0;
-//	Uart_DATA05.bf.DATA5=0;
-//	Uart_DATA05.bf.DATA6=0;
-//	Uart_DATA05.bf.DATA7=0;
-//		//第6个数据8位
-		Uart_DATA06.DATA00=0;//压缩机排气温度
-//	Uart_DATA06.bf.DATA0=0;
-//	Uart_DATA06.bf.DATA1=0;
-//	Uart_DATA06.bf.DATA2=0;
-//	Uart_DATA06.bf.DATA3=0;
-//	Uart_DATA06.bf.DATA4=0;
-//	Uart_DATA06.bf.DATA5=0;
-//	Uart_DATA06.bf.DATA6=0;
-//	Uart_DATA06.bf.DATA7=0;
-//		//第7个数据8位
-    Uart_DATA07.DATA00=(((uint32)(mcFocCtrl.mcDcbusFlt * HW_BOARD_VOLT_MAX)) >> 15)>>2;//压缩机回气温度
-//	Uart_DATA07.bf.DATA0=0;
-//	Uart_DATA07.bf.DATA1=0;
-//	Uart_DATA07.bf.DATA2=0;
-//	Uart_DATA07.bf.DATA3=0;
-//	Uart_DATA07.bf.DATA4=0;
-//	Uart_DATA07.bf.DATA5=0;
-//	Uart_DATA07.bf.DATA6=0;
-//	Uart_DATA07.bf.DATA7=0;
-//		//第8个数据8位
-		Uart_DATA08.DATA00=0;//压缩机相电流值
-//		Uart_DATA08.bf.DATA0=0;//室外环境温度小数标志   00: 0℃标志  01: 0.25℃标志  10: 0.5℃标志  11: 0.75℃标志
-//		Uart_DATA08.bf.DATA1=0;
-//		Uart_DATA08.bf.DATA2=0;//室外冷凝器温度小数标志
-//		Uart_DATA08.bf.DATA3=0;
-//		Uart_DATA08.bf.DATA4=0;//室外排气温度小数标志
-//		Uart_DATA08.bf.DATA5=0;
-//		Uart_DATA08.bf.DATA6=0;//预留
-//		Uart_DATA08.bf.DATA7=0;
-//		//第9个数据8位
-		Uart_DATA09.DATA00=Huan_temp/10+40;  //室外AC电流值
-//	Uart_DATA09.bf.DATA0=0;
-//	Uart_DATA09.bf.DATA1=0;
-//	Uart_DATA09.bf.DATA2=0;
-//	Uart_DATA09.bf.DATA3=0;
-//	Uart_DATA09.bf.DATA4=0;
-//	Uart_DATA09.bf.DATA5=0;
-//	Uart_DATA09.bf.DATA6=0;
-//	Uart_DATA09.bf.DATA7=0;
-//		//第10个数据8位
-    Uart_DATA10.DATA00=Guan_temp/10+40;//室外DC电压值
-//	Uart_DATA10.bf.DATA0=0;
-//	Uart_DATA10.bf.DATA1=0;
-//	Uart_DATA10.bf.DATA2=0;
-//	Uart_DATA10.bf.DATA3=0;
-//	Uart_DATA10.bf.DATA4=0;
-//	Uart_DATA10.bf.DATA5=0;
-//	Uart_DATA10.bf.DATA6=0;
-//	Uart_DATA10.bf.DATA7=0;
-//		//第11个数据8位
-		Uart_DATA11.DATA00=Paiqi_temp/10+40;//电子膨胀阀开度
-//	Uart_DATA11.bf.DATA0=0;
-//	Uart_DATA11.bf.DATA1=0;
-//	Uart_DATA11.bf.DATA2=0;
-//	Uart_DATA11.bf.DATA3=0;
-//	Uart_DATA11.bf.DATA4=0;
-//	Uart_DATA11.bf.DATA5=0;
-//	Uart_DATA11.bf.DATA6=0;
-//	Uart_DATA11.bf.DATA7=0;
-//		//第12个数据8位
-    Uart_DATA12.DATA00=0;//外风机档位或转速
-	Uart_DATA12.bf.DATA0=0;  //除霜要求  0:无要求  1:除霜要求
-	Uart_DATA12.bf.DATA1=0;  //普通除霜状态 0:通常状态(default) 或特殊除霜状态  1:普通除霜中
-	Uart_DATA12.bf.DATA2=0;  //回油状态  0:无需停内风机的制热回油或非回油状态  1:制冷回油 或 需要停内风机的制热回油
-	Uart_DATA12.bf.DATA3=0;  //3分钟待机状态  0:通常状态   1:3分钟待机中
-	Uart_DATA12.bf.DATA4=0;  //电子膨胀阀状态 0:通常状态  1:复位中
-	Uart_DATA12.bf.DATA5=0;  //外机静音状态  0:通常状态  1:外机静音中
-	Uart_DATA12.bf.DATA6=0;  //外机防凝露状态  0:通常状态 1:外机防凝露中
-	Uart_DATA12.bf.DATA7=0;  //SAVE状态  0:通常状态   1:SAVE状态运行中
-//		//第13个数据8位
-//		Uart_DATA13.DATA13=0;//室外机标志位
-	Uart_DATA13.bf.DATA0=0;//回送自测状态
-	Uart_DATA13.bf.DATA1=0;
-	Uart_DATA13.bf.DATA2=mcFaultSource;//外机任意停机故障  0:正常  1:故障
-	Uart_DATA13.bf.DATA3=0;//特殊除霜状态  0:通常状态(default) 或普通除霜状态  1:特殊除霜中
-//	Uart_DATA13.bf.DATA4=0;//预留
-//	Uart_DATA13.bf.DATA5=0;
-//	Uart_DATA13.bf.DATA6=0;
-//	Uart_DATA13.bf.DATA7=0;
-//		//第14个数据8位
-    Uart_DATA14.DATA00=0;//IPM温度
-//	Uart_DATA14.bf.DATA0=0;
-//	Uart_DATA14.bf.DATA1=0;
-//	Uart_DATA14.bf.DATA2=0;
-//	Uart_DATA14.bf.DATA3=0;
-//	Uart_DATA14.bf.DATA4=0;
-//	Uart_DATA14.bf.DATA5=0;
-//	Uart_DATA14.bf.DATA6=0;
-//	Uart_DATA14.bf.DATA7=0;
-//		//第15个数据8位
-//    Uart_DATA15.DATA00=0;//室外AC电压值
-	Uart_DATA15.bf.DATA0=0;//DRED模式运行状态
-	Uart_DATA15.bf.DATA1=0;
-	Uart_DATA15.bf.DATA2=0;//强制制冷  0:未执行;1:执行
-	Uart_DATA15.bf.DATA3=0;//强制制热
-	Uart_DATA15.bf.DATA4=0;//强制除霜
-	Uart_DATA15.bf.DATA5=0;//收氟模式
-	Uart_DATA15.bf.DATA6=0;//试运行
-//	Uart_DATA15.bf.DATA7=0;	//预留
-//第16个数据8位
- Uart_DATA16.DATA00=0;//限频、降频标志位
- //第17个数据8位
- Uart_DATA17.DATA00=0;//预留
-}
-void Modbus_respond2(void)
-{
-	    uint8 u16CRC = 0;
-	
-	    Uart.T_DATA[0]  = 0xCF;       					 //识别码
-			Uart.T_DATA[1]  = 0x01;             				 //正常工作
-			Uart.T_DATA[2]  = 19;             				 //数据长度  
-			Uart.T_DATA[3]  = 0;                         //
-			Uart.T_DATA[4]  = Uart_DATA00.DATA00;    		 //数据第0位
-			Uart.T_DATA[5]  = Uart_DATA01.DATA00; 	     //数据第1位
-			Uart.T_DATA[6]  = Uart_DATA02.DATA00;        //数据第2位
-			Uart.T_DATA[7]  = Uart_DATA03.DATA00;        //数据第3位
-			Uart.T_DATA[8]  = Uart_DATA04.DATA00;        //数据第4位
-			Uart.T_DATA[9]  = Uart_DATA05.DATA00;        //数据第5位
-			Uart.T_DATA[10] = Uart_DATA06.DATA00; 			 //数据第6位
-			Uart.T_DATA[11] = Uart_DATA07.DATA00; 		   //数据第7位
-			Uart.T_DATA[12] = Uart_DATA08.DATA00;        //数据第8位
-			Uart.T_DATA[13] = Uart_DATA09.DATA00;        //数据第9位
-			Uart.T_DATA[14] = Uart_DATA10.DATA00;        //数据第10位
-			Uart.T_DATA[15] = Uart_DATA11.DATA00;        //数据第11位
-			Uart.T_DATA[16] = Uart_DATA12.DATA00;    		 //数据第12位
-			Uart.T_DATA[17] = Uart_DATA13.DATA00; 		   //数据第13位
-			Uart.T_DATA[18] = Uart_DATA14.DATA00;        //数据第14位
-			Uart.T_DATA[19] = Uart_DATA15.DATA00;        //数据第14位
-			Uart.T_DATA[20] = Uart_DATA16.DATA00;        //数据第14位
-			Uart.T_DATA[21] = Uart_DATA17.DATA00;        //数据第14位
-			
-			u16CRC = BBC2(&Uart.T_DATA[0], TX_LEN-2);
-
-			Uart.T_DATA[22] = u16CRC;                    //CRC
-			Uart.T_DATA[23] = 0x55;                    //结束码
-			
-			Uart.send_start_falg=1;
-			if (Uart.send_start_falg == 1)
-			{   
-				  Uart.Recive_Flag=1;
-					UT2_DR = Uart.T_DATA[0];
-				  UT2TB8 = even_or_odd(Uart.T_DATA[0],evnodd);
-					Uart.send_start_falg = 0;
-					Uart.TxCnt = 0;
-			}
-}
-void Modbus_task23(void)
-{
-	if(Uart.Uart_Tmcomcyc>=(T_mcomcyc+T_mwtchg))
-	{
-			Uart_Run21();
-			Modbus_respond2();
-		  Uart.Uart_Tmcomcyc=0;
-	}
-}
-/**任务机接收**/
-void Modbus_Recive_task66(void)
-{
-		switch (Uart.R_DATA[0])//判断功能码
-		{
-				case 0x02:            //正常工作
-					Modbus_Recive_task23();
-				break;
-				case 0x38:            //工厂初测
-					Modbus_Recive_task23();
-				break;
-				case 0x58:            //工厂终测
-					Modbus_Recive_task23();
-				break;
-				case 0x78:            //工装手动调试
-					Modbus_Recive_task23();
-				break;
-				default:
-				break;
-		}
-}
-
-/*串口数据处理,处理接收到的串口数据,运行于大循环中*/
-void UartDealResponse2(void)
-{
-//	if (Modbus_Slave_Receive2() == 1)//接收数据
-//	{
-//			Modbus_Recive_task66();
-//		  mcFaultDect.commu_time=0;		
-//			Uart.recive_sussf_falg = 0;
-//	}	
-//	Modbus_task23();//发送数据		
-//}
-
-
-	if (Modbus_Slave_Receive2() == 1)//接收数据
-	{
-			Modbus_Recive_task01();
-		  mcFaultDect.commu_time=0;		
-			Uart.recive_sussf_falg = 0;
-	}	
-}
-
-#endif

+ 0 - 155
User/User_Drive/commution/commution.h

@@ -1,155 +0,0 @@
-/**
- * @file     commution.h
- * @version  V1.0.0
- * @author   jaise
- * @date     2023-8-16 09:35:55
- * @brief    This file contains ...
- * 
- * @copyright Copyright(C) 2022 Fortior Technology Co., Ltd. All rights reserved.
- */
-
-#ifndef __COMMUTION_H__
-#define __COMMUTION_H__
-
-// Include external header file.
-
-#if (Uart_COMMUNICATION==0)
-  #define RX_LEN                        20
-  #define TX_LEN                        20
-#elif (Uart_COMMUNICATION==1)
-  #define RX_LEN                        23
-  #define TX_LEN                        23
-#endif
-
-#define RX_ZHENTOU                    0x00
-#define TX_ZHENTOU                    0x95
-
-#define RX_LEN1                        8
-#define TX_LEN1                        11
-
-#define RX_ZHENTOU1                   0x81
-#define TX_ZHENTOU1                   0x28
-
-#define T_mreset                    5000      //5000ms
-#define T_mrxerr                    180       //180s
-#define T_mchgerr                   120       //120s
-#define T_mtxcyc                    230       //230ms
-#define T_mcomcyc                   500       //500ms
-#define T_mfrmwt                    25        //25ms
-#define T_mwtchg                    50        //50ms
-
-#define evnodd                      0    //0:  ????1:???
-
-
-
-typedef union  
-{
-	 uint8 DATA00;
-	 struct 
-	 {
-    uint8  DATA0 :	1;  //DATA1.0 
-		uint8  DATA1 :	1;  //DATA1.1 
-		uint8  DATA2 :	1;	//DATA1.2 
-		uint8  DATA3 :	1;	//DATA1.3 
-		uint8  DATA4 : 	1;	//DATA1.4 
-		uint8  DATA5 :	1;	//DATA1.5 
-		uint8  DATA6 :	1;	//DATA1.6 
-		uint8  DATA7 :	1;	//DATA1.7 		
-	 } bf;
-}ddatet00;
-
-
-
-//????typedef struct
-
-typedef union  
-{
-		uint8 DATAT00;
-		struct 
-		{
-				uint8  DATA0 :	1;  //DATA1.0 
-				uint8  DATA1 :	1;  //DATA1.1 
-				uint8  DATA2 :	1;	//DATA1.2 
-				uint8  DATA3 :	1;	//DATA1.3 
-				uint8  DATA4 : 	1;	//DATA1.4 	
-				uint8  DATA5 :	1;	//DATA1.5 
-				uint8  DATA6 :	1;	//DATA1.6 
-				uint8  DATA7 :	1;	//DATA1.7 		
-		} bf;
-}MCUART_Rec00;
-	 	 
-
-
-
-typedef struct
-{
-	uint8 R_DATA[42];
-	uint8 T_DATA[42];
-	int16 uarttimejishu;
-	uint8 recive_lenth;
-	uint16 Uart_Tmreset;
-	uint16 Uart_Tmcomcyc;
-	uint8  Uart_Recivetime;
-	uint8 Oder;
-	uint8 Recive_Flag;
-	
-	
-	uint8 recive_sussf_falg;
-	uint8 send_start_falg;
-  uint8     sussf_falg; 
-
-	uint8     sendflag;
-  uint8     ResponseFlag;       	 
-
-  uint16	  time_cnt;
-	uint16	  time_shuju;
-	
-	uint8     UartReadTemp;    
-	uint8  	  UartReadCnt; 	
-	uint8     TxCnt;
-	uint8     send_delay_time;
-	
-	uint16    YaJI_Speed;
-	uint16    FengSpeed;
-	int16     PengZhangFa;
-  int16     PengZhangFa_ACT;	
-	uint8     u1IduRevDataCnt;
-}MCUART;
-
-
-
-
-extern MCUART xdata Uart;
-extern uint8 BBC(uint8* puchMsg, uint8 usDataLen);
-
-extern unsigned char		u1_cnt_idu_comm_task;
-
-extern MCUART_Rec00 xdata Uart_Rec_DATA00;
-extern MCUART_Rec00 xdata Uart_Rec_DATA01;
-extern MCUART_Rec00 xdata Uart_Rec_DATA02;
-extern MCUART_Rec00 xdata Uart_Rec_DATA03;
-extern MCUART_Rec00 xdata Uart_Rec_DATA04;
-extern MCUART_Rec00 xdata Uart_Rec_DATA05;
-extern MCUART_Rec00 xdata Uart_Rec_DATA06;
-extern MCUART_Rec00 xdata Uart_Rec_DATA09;
-extern MCUART_Rec00 xdata Uart_Rec_DATA10;
-extern MCUART_Rec00 xdata Uart_Rec_DATA12;
-extern MCUART_Rec00 xdata Uart_Rec_DATA13;
-extern MCUART_Rec00 xdata Uart_Rec_DATA14;
-extern MCUART_Rec00 xdata Uart_Rec_DATA15;
-
-extern void UartRecive1(void);
-extern void UartSend1(void);
-extern void UartDealResponse1(void);
-extern void UartDealResponse2(void);
-extern void Uart_Int01(void);
-extern void Uart_Int02(void);
-extern void Uart_Int_Finsh(void);
-extern void Uart_Run01(void);
-extern void Uart_Run02(void);
-extern void Uart_Run03(void);
-
-
-
-#endif  
-

+ 0 - 1168
User/User_Drive/commution/commution1.c

@@ -1,1168 +0,0 @@
-///**
-// * @file     commution.c
-// * @version  V1.0.0
-// * @author   jaise
-// * @date     2023-8-16 09:33:55
-// * @brief    This file contains ...
-// * 
-// * @copyright Copyright(C) 2022 Fortior Technology Co., Ltd. All rights reserved.
-// */
-// 
-////#include “FU6815.h"
-
-//#include "User_Dri_main.h"
-//#include "SYS_Ctr_main.h"
-
-
-//MCUART    xdata  Uart;
-////发送数据
-//ddatet00  xdata  Uart_DATA00;
-//ddatet00  xdata  Uart_DATA01;
-//ddatet00  xdata  Uart_DATA02;
-//ddatet00  xdata  Uart_DATA03;
-//ddatet00  xdata  Uart_DATA04;
-//ddatet00  xdata  Uart_DATA05;
-//ddatet00  xdata  Uart_DATA06;
-//ddatet00  xdata  Uart_DATA07;
-//ddatet00  xdata  Uart_DATA08;
-//ddatet00  xdata  Uart_DATA09;
-//ddatet00  xdata  Uart_DATA10;
-//ddatet00  xdata  Uart_DATA11;
-//ddatet00  xdata  Uart_DATA12;
-//ddatet00  xdata  Uart_DATA13;
-//ddatet00  xdata  Uart_DATA14;
-//ddatet00  xdata  Uart_DATA15;
-
-////接收数据
-//MCUART_Rec00 xdata Uart_Rec_DATA00;
-//MCUART_Rec00 xdata Uart_Rec_DATA01;
-//MCUART_Rec00 xdata Uart_Rec_DATA02;
-//MCUART_Rec00 xdata Uart_Rec_DATA03;
-//MCUART_Rec00 xdata Uart_Rec_DATA04;
-//MCUART_Rec00 xdata Uart_Rec_DATA05;
-//MCUART_Rec00 xdata Uart_Rec_DATA06;
-//MCUART_Rec00 xdata Uart_Rec_DATA09;
-//MCUART_Rec00 xdata Uart_Rec_DATA10;
-//MCUART_Rec00 xdata Uart_Rec_DATA11;
-//MCUART_Rec00 xdata Uart_Rec_DATA12;
-//MCUART_Rec00 xdata Uart_Rec_DATA13;
-//MCUART_Rec00 xdata Uart_Rec_DATA14;
-//MCUART_Rec00 xdata Uart_Rec_DATA15;
-////MCUART_Recother  xdata Uart_Rec_DATAo;
-
-//unsigned char		u1_cnt_idu_comm_task	= 0;
-
-//uint8 SYS_RunMode=0,FAN_RunSpeed=0;
-
-
-///*数据接收函数*/
-//void UartRecive1(void)
-//{
-//	Uart.UartReadTemp = UT2_DR;       // 读接收数据
-//	Uart.R_DATA[Uart.UartReadCnt++] = Uart.UartReadTemp;
-//}
-
-///*数据发送函数*/
-//void UartSend1(void)
-//{
-//	if (Uart.TxCnt < (TX_LEN - 1))
-//	{
-//			Uart.TxCnt++;
-//			UT2_DR = Uart.T_DATA[Uart.TxCnt];
-//		  UT2TB8 = even_or_odd(Uart.T_DATA[Uart.TxCnt],evnodd);
-//		  Uart.Uart_Recivetime=0;
-//	}
-//}
-//#if 0
-//////CRC16校验      u16CRC=Common_Func_CRC16_ModBus(&u8SendBuf[0], 3+RegisterNum*2);
-//uint16 Common_Func_CRC16_ModBus(uint8* puchMsg, uint8 usDataLen)
-//{
-//	uint16 uCRC = 0xffff;//CRC寄存器
-//	uint8 num;
-//	uint8 x;
-//	for (num = 0; num < usDataLen; num++)
-//	{
-//		uCRC = (*puchMsg++) ^ uCRC;//把数据与16位的CRC寄存器的低8位相异或,结果存放于CRC寄存器。
-//		for (x = 0; x < 8; x++)
-//		{
-//		  //循环8次
-//			if (uCRC & 0x0001)
-//			{
-//		   	  //判断最低位为:“1”
-//				uCRC = uCRC >> 1;	//先右移
-//				uCRC = uCRC ^ 0xA001;	//再与0xA001异或
-//			}
-//			else
-//			{
-//			    //判断最低位为:“0”
-//				uCRC = uCRC >> 1;	//右移
-//			}
-//		}
-//	}
-//	return uCRC;//返回CRC校验值 高位在前低位在后
-//}
-//#endif
-//////BBC校验
-//uint8 BBC(uint8* puchMsg, uint8 usDataLen)
-//{
-//		uint8 i;
-//		uint8 bcc = 0;        // Initial value
-//		#if 0
-//			while(usDataLen--)
-//			{
-//				bcc ^= *puchMsg++;
-//			}		
-//		#else
-//			for ( i = 0; i < usDataLen; i++ )//  sum
-//			{
-//				bcc += puchMsg[i];        // crc ^= *data;
-//			}
-//		#endif	
-//		return bcc; 
-//}		
-///*判断接收数据是否正确*/
-//uint8 Modbus_Slave_Receive(void)
-//{
-//		uint8 u16CRC=0;
-//		if ((Uart.uarttimejishu >= 15 )&& (Uart.UartReadCnt >= 10))//Uart.uarttime每包数据的间隔
-//		{
-//				Uart.recive_lenth = Uart.UartReadCnt;
-//        Uart.UartReadCnt = 0;
-//				u16CRC = Uart.R_DATA[Uart.recive_lenth - 1];//接收到的的校验码	  
-//				if (u16CRC == BBC(&Uart.R_DATA[0], Uart.recive_lenth - 2))
-//				{
-//						Uart.recive_sussf_falg = 1;
-//						Uart.send_start_falg = 1;
-//				}
-//				else
-//				{
-//						Uart.recive_sussf_falg = 0;
-//				}
-//		}
-//		return Uart.recive_sussf_falg;	
-//}
-
-
-
-
-//void Uart_Int01(void)
-//{
-//	//参数清零因为复用问题
-//	Uart_DATA00.DATA00=0;Uart_DATA01.DATA00=0;Uart_DATA02.DATA00=0;Uart_DATA03.DATA00=0;
-//	Uart_DATA04.DATA00=0;Uart_DATA05.DATA00=0;Uart_DATA06.DATA00=0;Uart_DATA07.DATA00=0;
-//	Uart_DATA08.DATA00=0;Uart_DATA09.DATA00=0;Uart_DATA10.DATA00=0;Uart_DATA11.DATA00=0;
-//	Uart_DATA12.DATA00=0;Uart_DATA13.DATA00=0;Uart_DATA14.DATA00=0;Uart_DATA15.DATA00=0;
-//	
-//	//第0个数据8位
-//	Uart_DATA00.DATA00=0;
-
-//	//第1个数据8位
-//	Uart_DATA01.bf.DATA0=0;//0:变频,1:定频
-//	Uart_DATA01.bf.DATA1=0;//0:冷暖,1:单冷
-////	Uart_DATA01.bf.DATA2=0;//预留
-////	Uart_DATA01.bf.DATA3=0;
-//	Uart_DATA01.bf.DATA4=0; //通信速度    0001:600 bps  0010:1200bps
-//	Uart_DATA01.bf.DATA5=1;
-//	Uart_DATA01.bf.DATA6=0;
-//	Uart_DATA01.bf.DATA7=0;
-//	//第2个数据8位
-////  Uart_DATA02.DATA00=35;  //外机能力代码 0.1kw/bit
-//		//第3个数据8位
-//	Uart_DATA03.bf.DATA0=0;//电源种类  001 :100~115V  010 :200~240V
-//	Uart_DATA03.bf.DATA1=0;
-//	Uart_DATA03.bf.DATA2=0;
-//	Uart_DATA03.bf.DATA3=1;//供电方式选择   0:内机供电 1:外机供电
-////	Uart_DATA03.bf.DATA4=0;//预留
-////	Uart_DATA03.bf.DATA5=0;
-////	Uart_DATA03.bf.DATA6=0;
-////	Uart_DATA03.bf.DATA7=0;
-//		//第4个数据8位
-//		Uart_DATA04.DATA00=0;
-////	Uart_DATA04.bf.DATA0=0;
-////	Uart_DATA04.bf.DATA1=0;
-////	Uart_DATA04.bf.DATA2=0;
-////	Uart_DATA04.bf.DATA3=0;
-////	Uart_DATA04.bf.DATA4=0;
-////	Uart_DATA04.bf.DATA5=0;
-////	Uart_DATA04.bf.DATA6=0;
-////	Uart_DATA04.bf.DATA7=0;
-//		//第5个数据8位
-//		Uart_DATA05.DATA00=0;
-////	Uart_DATA05.bf.DATA0=0;
-////	Uart_DATA05.bf.DATA1=0;
-////	Uart_DATA05.bf.DATA2=0;
-////	Uart_DATA05.bf.DATA3=0;
-////	Uart_DATA05.bf.DATA4=0;
-////	Uart_DATA05.bf.DATA5=0;
-////	Uart_DATA05.bf.DATA6=0;
-////	Uart_DATA05.bf.DATA7=0;
-//		//第6个数据8位
-//	Uart_DATA06.bf.DATA0=0; //风机档数
-//	Uart_DATA06.bf.DATA1=0;
-//	Uart_DATA06.bf.DATA2=0;
-//	Uart_DATA06.bf.DATA3=0;//风机个数  0:单风机  1:双风机
-//	Uart_DATA06.bf.DATA4=0;//风机种类001 :交流电机  010 :直流电机
-//	Uart_DATA06.bf.DATA5=0;
-//	Uart_DATA06.bf.DATA6=0;
-//	Uart_DATA06.bf.DATA7=0;//出风类型 0:侧出风 1:上出风
-//		//第7个数据8位
-//		Uart_DATA07.DATA00=0;
-////	Uart_DATA07.bf.DATA0=0;
-////	Uart_DATA07.bf.DATA1=0;
-////	Uart_DATA07.bf.DATA2=0;
-////	Uart_DATA07.bf.DATA3=0;
-////	Uart_DATA07.bf.DATA4=0;
-////	Uart_DATA07.bf.DATA5=0;
-////	Uart_DATA07.bf.DATA6=0;
-////	Uart_DATA07.bf.DATA7=0;
-////		//第8个数据8位
-////	Uart_DATA08.bf.DATA0=0;
-////	Uart_DATA08.bf.DATA1=0;
-////	Uart_DATA08.bf.DATA2=0;
-////	Uart_DATA08.bf.DATA3=0;
-////	Uart_DATA08.bf.DATA4=0;
-////	Uart_DATA08.bf.DATA5=0;
-////	Uart_DATA08.bf.DATA6=0;
-////	Uart_DATA08.bf.DATA7=0;
-////		//第9个数据8位
-////	Uart_DATA09.bf.DATA0=0;
-////	Uart_DATA09.bf.DATA1=0;
-////	Uart_DATA09.bf.DATA2=0;
-////	Uart_DATA09.bf.DATA3=0;
-////	Uart_DATA09.bf.DATA4=0;
-////	Uart_DATA09.bf.DATA5=0;
-////	Uart_DATA09.bf.DATA6=0;
-////	Uart_DATA09.bf.DATA7=0;
-////		//第10个数据8位
-////	Uart_DATA10.bf.DATA0=0;
-////	Uart_DATA10.bf.DATA1=0;
-////	Uart_DATA10.bf.DATA2=0;
-////	Uart_DATA10.bf.DATA3=0;
-////	Uart_DATA10.bf.DATA4=0;
-////	Uart_DATA10.bf.DATA5=0;
-////	Uart_DATA10.bf.DATA6=0;
-////	Uart_DATA10.bf.DATA7=0;
-////		//第11个数据8位
-////	Uart_DATA11.bf.DATA0=0;
-////	Uart_DATA11.bf.DATA1=0;
-////	Uart_DATA11.bf.DATA2=0;
-////	Uart_DATA11.bf.DATA3=0;
-////	Uart_DATA11.bf.DATA4=0;
-////	Uart_DATA11.bf.DATA5=0;
-////	Uart_DATA11.bf.DATA6=0;
-////	Uart_DATA11.bf.DATA7=0;
-////		//第12个数据8位
-////	Uart_DATA12.bf.DATA0=0;
-////	Uart_DATA12.bf.DATA1=0;
-////	Uart_DATA12.bf.DATA2=0;
-////	Uart_DATA12.bf.DATA3=0;
-////	Uart_DATA12.bf.DATA4=0;
-////	Uart_DATA12.bf.DATA5=0;
-////	Uart_DATA12.bf.DATA6=0;
-////	Uart_DATA12.bf.DATA7=0;
-////		//第13个数据8位
-////	Uart_DATA13.bf.DATA0=0;
-////	Uart_DATA13.bf.DATA1=0;
-////	Uart_DATA13.bf.DATA2=0;
-////	Uart_DATA13.bf.DATA3=0;
-////	Uart_DATA13.bf.DATA4=0;
-////	Uart_DATA13.bf.DATA5=0;
-////	Uart_DATA13.bf.DATA6=0;
-////	Uart_DATA13.bf.DATA7=0;
-////		//第14个数据8位
-////	Uart_DATA14.bf.DATA0=0;
-////	Uart_DATA14.bf.DATA1=0;
-////	Uart_DATA14.bf.DATA2=0;
-////	Uart_DATA14.bf.DATA3=0;
-////	Uart_DATA14.bf.DATA4=0;
-////	Uart_DATA14.bf.DATA5=0;
-////	Uart_DATA14.bf.DATA6=0;
-////	Uart_DATA14.bf.DATA7=0;
-////		//第15个数据8位
-////	Uart_DATA15.bf.DATA0=0;
-////	Uart_DATA15.bf.DATA1=0;
-////	Uart_DATA15.bf.DATA2=0;
-////	Uart_DATA15.bf.DATA3=0;
-////	Uart_DATA15.bf.DATA4=0;
-////	Uart_DATA15.bf.DATA5=0;
-////	Uart_DATA15.bf.DATA6=0;
-////	Uart_DATA15.bf.DATA7=0;
-
-//}
-//void Uart_Int02(void)
-//{
-//		//参数清零因为复用问题
-//	Uart_DATA00.DATA00=0;Uart_DATA01.DATA00=0;Uart_DATA02.DATA00=0;Uart_DATA03.DATA00=0;
-//	Uart_DATA04.DATA00=0;Uart_DATA05.DATA00=0;Uart_DATA06.DATA00=0;Uart_DATA07.DATA00=0;
-//	Uart_DATA08.DATA00=0;Uart_DATA09.DATA00=0;Uart_DATA10.DATA00=0;Uart_DATA11.DATA00=0;
-//	Uart_DATA12.DATA00=0;Uart_DATA13.DATA00=0;Uart_DATA14.DATA00=0;Uart_DATA15.DATA00=0;
-//			//第0个数据8位
-//	Uart_DATA00.DATA00=0;
-////	Uart_DATA00.bf.DATA0=0;
-////	Uart_DATA00.bf.DATA1=0;
-////	Uart_DATA00.bf.DATA2=0;
-////	Uart_DATA00.bf.DATA3=0;
-////	Uart_DATA00.bf.DATA4=0;
-////	Uart_DATA00.bf.DATA5=0;
-////	Uart_DATA00.bf.DATA6=0;
-////	Uart_DATA00.bf.DATA7=0;
-//	//第1个数据8位
-//	Uart_DATA01.DATA00=0;
-////	Uart_DATA01.bf.DATA0=0;
-////	Uart_DATA01.bf.DATA1=0;
-////	Uart_DATA01.bf.DATA2=0;
-////	Uart_DATA01.bf.DATA3=0;
-////	Uart_DATA01.bf.DATA4=0;
-////	Uart_DATA01.bf.DATA5=0;
-////	Uart_DATA01.bf.DATA6=0;
-////	Uart_DATA01.bf.DATA7=0;
-//	//第2个数据8位
-//	Uart_DATA02.DATA00=0;
-////	Uart_DATA02.bf.DATA0=0;
-////	Uart_DATA02.bf.DATA1=0;
-////	Uart_DATA02.bf.DATA2=0;
-////	Uart_DATA02.bf.DATA3=0;
-////	Uart_DATA02.bf.DATA4=0;
-////	Uart_DATA02.bf.DATA5=0;
-////	Uart_DATA02.bf.DATA6=0;
-////	Uart_DATA02.bf.DATA7=0;
-//		//第3个数据8位
-//		Uart_DATA03.DATA00=0;
-////	Uart_DATA03.bf.DATA0=0;
-////	Uart_DATA03.bf.DATA1=0;
-////	Uart_DATA03.bf.DATA2=0;
-////	Uart_DATA03.bf.DATA3=0;
-////	Uart_DATA03.bf.DATA4=0;
-////	Uart_DATA03.bf.DATA5=0;
-////	Uart_DATA03.bf.DATA6=0;
-////	Uart_DATA03.bf.DATA7=0;
-//		//第4个数据8位
-//		Uart_DATA04.DATA00=0;
-////	Uart_DATA04.bf.DATA0=0;
-////	Uart_DATA04.bf.DATA1=0;
-////	Uart_DATA04.bf.DATA2=0;
-////	Uart_DATA04.bf.DATA3=0;
-////	Uart_DATA04.bf.DATA4=0;
-////	Uart_DATA04.bf.DATA5=0;
-////	Uart_DATA04.bf.DATA6=0;
-////	Uart_DATA04.bf.DATA7=0;
-////		//第5个数据8位
-//    Uart_DATA05.DATA00=0;
-////	Uart_DATA05.bf.DATA0=0;
-////	Uart_DATA05.bf.DATA1=0;
-////	Uart_DATA05.bf.DATA2=0;
-////	Uart_DATA05.bf.DATA3=0;
-////	Uart_DATA05.bf.DATA4=0;
-////	Uart_DATA05.bf.DATA5=0;
-////	Uart_DATA05.bf.DATA6=0;
-////	Uart_DATA05.bf.DATA7=0;
-////		//第6个数据8位
-//		Uart_DATA06.DATA00=0;
-////	Uart_DATA06.bf.DATA0=0;
-////	Uart_DATA06.bf.DATA1=0;
-////	Uart_DATA06.bf.DATA2=0;
-////	Uart_DATA06.bf.DATA3=0;
-////	Uart_DATA06.bf.DATA4=0;
-////	Uart_DATA06.bf.DATA5=0;
-////	Uart_DATA06.bf.DATA6=0;
-////	Uart_DATA06.bf.DATA7=0;
-////		//第7个数据8位
-//    Uart_DATA07.DATA00=0;
-////	Uart_DATA07.bf.DATA0=0;
-////	Uart_DATA07.bf.DATA1=0;
-////	Uart_DATA07.bf.DATA2=0;
-////	Uart_DATA07.bf.DATA3=0;
-////	Uart_DATA07.bf.DATA4=0;
-////	Uart_DATA07.bf.DATA5=0;
-////	Uart_DATA07.bf.DATA6=0;
-////	Uart_DATA07.bf.DATA7=0;
-////		//第8个数据8位
-//		Uart_DATA08.DATA00=0;
-////	Uart_DATA08.bf.DATA0=0;
-////	Uart_DATA08.bf.DATA1=0;
-////	Uart_DATA08.bf.DATA2=0;
-////	Uart_DATA08.bf.DATA3=0;
-////	Uart_DATA08.bf.DATA4=0;
-////	Uart_DATA08.bf.DATA5=0;
-////	Uart_DATA08.bf.DATA6=0;
-////	Uart_DATA08.bf.DATA7=0;
-////		//第9个数据8位
-//		Uart_DATA09.DATA00=0;
-////	Uart_DATA09.bf.DATA0=0;
-////	Uart_DATA09.bf.DATA1=0;
-////	Uart_DATA09.bf.DATA2=0;
-////	Uart_DATA09.bf.DATA3=0;
-////	Uart_DATA09.bf.DATA4=0;
-////	Uart_DATA09.bf.DATA5=0;
-////	Uart_DATA09.bf.DATA6=0;
-////	Uart_DATA09.bf.DATA7=0;
-////		//第10个数据8位
-//    Uart_DATA10.DATA00=0;
-////	Uart_DATA10.bf.DATA0=0;
-////	Uart_DATA10.bf.DATA1=0;
-////	Uart_DATA10.bf.DATA2=0;
-////	Uart_DATA10.bf.DATA3=0;
-////	Uart_DATA10.bf.DATA4=0;
-////	Uart_DATA10.bf.DATA5=0;
-////	Uart_DATA10.bf.DATA6=0;
-////	Uart_DATA10.bf.DATA7=0;
-////		//第11个数据8位
-//		Uart_DATA11.DATA00=0;
-////	Uart_DATA11.bf.DATA0=0;
-////	Uart_DATA11.bf.DATA1=0;
-////	Uart_DATA11.bf.DATA2=0;
-////	Uart_DATA11.bf.DATA3=0;
-////	Uart_DATA11.bf.DATA4=0;
-////	Uart_DATA11.bf.DATA5=0;
-////	Uart_DATA11.bf.DATA6=0;
-////	Uart_DATA11.bf.DATA7=0;
-////		//第12个数据8位
-//    Uart_DATA12.DATA00=0;
-////	Uart_DATA12.bf.DATA0=0;
-////	Uart_DATA12.bf.DATA1=0;
-////	Uart_DATA12.bf.DATA2=0;
-////	Uart_DATA12.bf.DATA3=0;
-////	Uart_DATA12.bf.DATA4=0;
-////	Uart_DATA12.bf.DATA5=0;
-////	Uart_DATA12.bf.DATA6=0;
-////	Uart_DATA12.bf.DATA7=0;
-////		//第13个数据8位
-//		Uart_DATA13.DATA00=0;
-////	Uart_DATA13.bf.DATA0=0;
-////	Uart_DATA13.bf.DATA1=0;
-////	Uart_DATA13.bf.DATA2=0;
-////	Uart_DATA13.bf.DATA3=0;
-////	Uart_DATA13.bf.DATA4=0;
-////	Uart_DATA13.bf.DATA5=0;
-////	Uart_DATA13.bf.DATA6=0;
-////	Uart_DATA13.bf.DATA7=0;
-////		//第14个数据8位
-//    Uart_DATA14.DATA00=0;
-////	Uart_DATA14.bf.DATA0=0;
-////	Uart_DATA14.bf.DATA1=0;
-////	Uart_DATA14.bf.DATA2=0;
-////	Uart_DATA14.bf.DATA3=0;
-////	Uart_DATA14.bf.DATA4=0;
-////	Uart_DATA14.bf.DATA5=0;
-////	Uart_DATA14.bf.DATA6=0;
-////	Uart_DATA14.bf.DATA7=0;
-////		//第15个数据8位
-//    Uart_DATA15.DATA00=0;
-////	Uart_DATA15.bf.DATA0=0;
-////	Uart_DATA15.bf.DATA1=0;
-////	Uart_DATA15.bf.DATA2=0;
-////	Uart_DATA15.bf.DATA3=0;
-////	Uart_DATA15.bf.DATA4=0;
-////	Uart_DATA15.bf.DATA5=0;
-////	Uart_DATA15.bf.DATA6=0;
-////	Uart_DATA15.bf.DATA7=0;
-//}
-
-//void Uart_Int_Finsh(void)
-//{
-//		//参数清零因为复用问题
-//	Uart_DATA00.DATA00=0;Uart_DATA01.DATA00=0;Uart_DATA02.DATA00=0;Uart_DATA03.DATA00=0;
-//	Uart_DATA04.DATA00=0;Uart_DATA05.DATA00=0;Uart_DATA06.DATA00=0;Uart_DATA07.DATA00=0;
-//	Uart_DATA08.DATA00=0;Uart_DATA09.DATA00=0;Uart_DATA10.DATA00=0;Uart_DATA11.DATA00=0;
-//	Uart_DATA12.DATA00=0;Uart_DATA13.DATA00=0;Uart_DATA14.DATA00=0;Uart_DATA15.DATA00=0;			
-//}
-//void Uart_Run01(void)
-//{
-//	
-//	uint16  Power=0;
-//	Power=P_PowerReal;
-//	
-//		//参数清零因为复用问题
-//	Uart_DATA00.DATA00=0;Uart_DATA01.DATA00=0;Uart_DATA02.DATA00=0;Uart_DATA03.DATA00=0;
-//	Uart_DATA04.DATA00=0;Uart_DATA05.DATA00=0;Uart_DATA06.DATA00=0;Uart_DATA07.DATA00=0;
-//	Uart_DATA08.DATA00=0;Uart_DATA09.DATA00=0;Uart_DATA10.DATA00=0;Uart_DATA11.DATA00=0;
-//	Uart_DATA12.DATA00=0;Uart_DATA13.DATA00=0;Uart_DATA14.DATA00=0;Uart_DATA15.DATA00=0;
-//	//第0个数据8位
-////	SYS_RunMode;
-//	Uart_DATA00.DATA00=SYS_RunMode;
-////	Uart_DATA00.bf.DATA0=0; //回送模式  收啥发啥
-////	Uart_DATA00.bf.DATA1=0;
-////	Uart_DATA00.bf.DATA2=0;
-////	Uart_DATA00.bf.DATA3=0;
-//	Uart_DATA00.bf.DATA4=mcSpeedRamp.FlagONOFF;//压缩机开/关状态  0:压缩机关  1:压缩机开
-////	Uart_DATA00.bf.DATA5=0;//预留
-////	Uart_DATA00.bf.DATA6=0;
-////	Uart_DATA00.bf.DATA7=0;
-//	//第1个数据8位
-//	Uart_DATA01.DATA00=S_Value2;//压缩机运行转速  实际运行转速 单位:rps
-////	Uart_DATA01.bf.DATA0=0;
-////	Uart_DATA01.bf.DATA1=0;
-////	Uart_DATA01.bf.DATA2=0;
-////	Uart_DATA01.bf.DATA3=0;
-////	Uart_DATA01.bf.DATA4=0;
-////	Uart_DATA01.bf.DATA5=0;
-////	Uart_DATA01.bf.DATA6=0;
-////	Uart_DATA01.bf.DATA7=0;
-//	//第2个数据8位
-//	Uart_DATA02.DATA00=Fengji_FG.FENJIPINLV2/10;//外风机1转速  实际转速/10  单位:rpm
-////	Uart_DATA02.bf.DATA0=0;
-////	Uart_DATA02.bf.DATA1=0;
-////	Uart_DATA02.bf.DATA2=0;
-////	Uart_DATA02.bf.DATA3=0;
-////	Uart_DATA02.bf.DATA4=0;
-////	Uart_DATA02.bf.DATA5=0;
-////	Uart_DATA02.bf.DATA6=0;
-////	Uart_DATA02.bf.DATA7=0;
-//		//第3个数据8位
-//		Uart_DATA03.DATA00=0;//外风机2转速  实际转速/10  单位:rpm
-////	Uart_DATA03.bf.DATA0=0;
-////	Uart_DATA03.bf.DATA1=0;
-////	Uart_DATA03.bf.DATA2=0;
-////	Uart_DATA03.bf.DATA3=0;
-////	Uart_DATA03.bf.DATA4=0;
-////	Uart_DATA03.bf.DATA5=0;
-////	Uart_DATA03.bf.DATA6=0;
-////	Uart_DATA03.bf.DATA7=0;
-////		//第4个数据8位
-//		Uart_DATA04.DATA00=Power>>5;//压缩机运行功率  实际运行功率/32  单位:W
-////	Uart_DATA04.bf.DATA0=0;
-////	Uart_DATA04.bf.DATA1=0;
-////	Uart_DATA04.bf.DATA2=0;
-////	Uart_DATA04.bf.DATA3=0;
-////	Uart_DATA04.bf.DATA4=0;
-////	Uart_DATA04.bf.DATA5=0;
-////	Uart_DATA04.bf.DATA6=0;
-////	Uart_DATA04.bf.DATA7=0;
-////		//第5个数据8位
-//    Uart_DATA05.DATA00=0;//预留
-////	Uart_DATA05.bf.DATA0=0;
-////	Uart_DATA05.bf.DATA1=0;
-////	Uart_DATA05.bf.DATA2=0;
-////	Uart_DATA05.bf.DATA3=0;
-////	Uart_DATA05.bf.DATA4=0;
-////	Uart_DATA05.bf.DATA5=0;
-////	Uart_DATA05.bf.DATA6=0;
-////	Uart_DATA05.bf.DATA7=0;
-////		//第6个数据8位
-//		Uart_DATA06.DATA00=0;//电子膨胀阀开度
-////	Uart_DATA06.bf.DATA0=0;
-////	Uart_DATA06.bf.DATA1=0;
-////	Uart_DATA06.bf.DATA2=0;
-////	Uart_DATA06.bf.DATA3=0;
-////	Uart_DATA06.bf.DATA4=0;
-////	Uart_DATA06.bf.DATA5=0;
-////	Uart_DATA06.bf.DATA6=0;
-////	Uart_DATA06.bf.DATA7=0;
-////		//第7个数据8位
-//    Uart_DATA07.DATA00=(((uint32)(mcFocCtrl.mcDcbusFlt * HW_BOARD_VOLT_MAX)) >> 15)>>2;//直流母线电压  实际直流母线电压值/4   单位:V
-////	Uart_DATA07.bf.DATA0=0;
-////	Uart_DATA07.bf.DATA1=0;
-////	Uart_DATA07.bf.DATA2=0;
-////	Uart_DATA07.bf.DATA3=0;
-////	Uart_DATA07.bf.DATA4=0;
-////	Uart_DATA07.bf.DATA5=0;
-////	Uart_DATA07.bf.DATA6=0;
-////	Uart_DATA07.bf.DATA7=0;
-////		//第8个数据8位
-////		Uart_DATA08.DATA08=0;
-//		Uart_DATA08.bf.DATA0=0;//室外环境温度小数标志   00: 0℃标志  01: 0.25℃标志  10: 0.5℃标志  11: 0.75℃标志
-//		Uart_DATA08.bf.DATA1=0;
-//		Uart_DATA08.bf.DATA2=0;//室外冷凝器温度小数标志
-//		Uart_DATA08.bf.DATA3=0;
-//		Uart_DATA08.bf.DATA4=0;//室外排气温度小数标志
-//		Uart_DATA08.bf.DATA5=0;
-////		Uart_DATA08.bf.DATA6=0;//预留
-////		Uart_DATA08.bf.DATA7=0;
-////		//第9个数据8位
-//		Uart_DATA09.DATA00=Huan_temp/10+40;  //室外环境温度  0h:-40℃,数据每增加1则温度增加1℃
-////	Uart_DATA09.bf.DATA0=0;
-////	Uart_DATA09.bf.DATA1=0;
-////	Uart_DATA09.bf.DATA2=0;
-////	Uart_DATA09.bf.DATA3=0;
-////	Uart_DATA09.bf.DATA4=0;
-////	Uart_DATA09.bf.DATA5=0;
-////	Uart_DATA09.bf.DATA6=0;
-////	Uart_DATA09.bf.DATA7=0;
-////		//第10个数据8位
-//    Uart_DATA10.DATA00=Guan_temp/10+40;//室外冷凝器中间温度  0h:-40℃,数据每增加1则温度增加1℃
-////	Uart_DATA10.bf.DATA0=0;
-////	Uart_DATA10.bf.DATA1=0;
-////	Uart_DATA10.bf.DATA2=0;
-////	Uart_DATA10.bf.DATA3=0;
-////	Uart_DATA10.bf.DATA4=0;
-////	Uart_DATA10.bf.DATA5=0;
-////	Uart_DATA10.bf.DATA6=0;
-////	Uart_DATA10.bf.DATA7=0;
-////		//第11个数据8位
-//		Uart_DATA11.DATA00=Paiqi_temp/10+40;//室外排气温度  0h:-40℃,数据每增加1则温度增加1℃
-////	Uart_DATA11.bf.DATA0=0;
-////	Uart_DATA11.bf.DATA1=0;
-////	Uart_DATA11.bf.DATA2=0;
-////	Uart_DATA11.bf.DATA3=0;
-////	Uart_DATA11.bf.DATA4=0;
-////	Uart_DATA11.bf.DATA5=0;
-////	Uart_DATA11.bf.DATA6=0;
-////	Uart_DATA11.bf.DATA7=0;
-////		//第12个数据8位
-////    Uart_DATA12.DATA12=0;
-//	Uart_DATA12.bf.DATA0=0;  //除霜要求  0:无要求  1:除霜要求
-//	Uart_DATA12.bf.DATA1=0;  //普通除霜状态 0:通常状态(default) 或特殊除霜状态  1:普通除霜中
-//	Uart_DATA12.bf.DATA2=0;  //回油状态  0:无需停内风机的制热回油或非回油状态  1:制冷回油 或 需要停内风机的制热回油
-//	Uart_DATA12.bf.DATA3=0;  //3分钟待机状态  0:通常状态   1:3分钟待机中
-//	Uart_DATA12.bf.DATA4=0;  //电子膨胀阀状态 0:通常状态  1:复位中
-//	Uart_DATA12.bf.DATA5=0;  //外机静音状态  0:通常状态  1:外机静音中
-//	Uart_DATA12.bf.DATA6=0;  //外机防凝露状态  0:通常状态 1:外机防凝露中
-//	Uart_DATA12.bf.DATA7=0;  //SAVE状态  0:通常状态   1:SAVE状态运行中
-////		//第13个数据8位
-////		Uart_DATA13.DATA13=0;
-//	Uart_DATA13.bf.DATA0=0;//回送自测状态
-//	Uart_DATA13.bf.DATA1=0;
-//	Uart_DATA13.bf.DATA2=mcFaultSource;//外机任意停机故障  0:正常  1:故障
-//	Uart_DATA13.bf.DATA3=0;//特殊除霜状态  0:通常状态(default) 或普通除霜状态  1:特殊除霜中
-////	Uart_DATA13.bf.DATA4=0;//预留
-////	Uart_DATA13.bf.DATA5=0;
-////	Uart_DATA13.bf.DATA6=0;
-////	Uart_DATA13.bf.DATA7=0;
-////		//第14个数据8位
-//    Uart_DATA14.DATA00=0;//外机AC电流值  实际电流,单位0.5A
-////	Uart_DATA14.bf.DATA0=0;
-////	Uart_DATA14.bf.DATA1=0;
-////	Uart_DATA14.bf.DATA2=0;
-////	Uart_DATA14.bf.DATA3=0;
-////	Uart_DATA14.bf.DATA4=0;
-////	Uart_DATA14.bf.DATA5=0;
-////	Uart_DATA14.bf.DATA6=0;
-////	Uart_DATA14.bf.DATA7=0;
-////		//第15个数据8位
-////    Uart_DATA15.DATA15=0;
-//	Uart_DATA15.bf.DATA0=0;//DRED模式运行状态
-//	Uart_DATA15.bf.DATA1=0;
-//	Uart_DATA15.bf.DATA2=0;//强制制冷  0:未执行;1:执行
-//	Uart_DATA15.bf.DATA3=0;//强制制热
-//	Uart_DATA15.bf.DATA4=0;//强制除霜
-//	Uart_DATA15.bf.DATA5=0;//收氟模式
-//	Uart_DATA15.bf.DATA6=0;//试运行
-////	Uart_DATA15.bf.DATA7=0;	//预留
-//}
-//void Uart_Run02(void)
-//{
-//		//参数清零因为复用问题
-//	Uart_DATA00.DATA00=0;Uart_DATA01.DATA00=0;Uart_DATA02.DATA00=0;Uart_DATA03.DATA00=0;
-//	Uart_DATA04.DATA00=0;Uart_DATA05.DATA00=0;Uart_DATA06.DATA00=0;Uart_DATA07.DATA00=0;
-//	Uart_DATA08.DATA00=0;Uart_DATA09.DATA00=0;Uart_DATA10.DATA00=0;Uart_DATA11.DATA00=0;
-//	Uart_DATA12.DATA00=0;Uart_DATA13.DATA00=0;Uart_DATA14.DATA00=0;Uart_DATA15.DATA00=0;
-//		//第0个数据8位
-////	Uart_DATA00.DATA00=0;
-//	Uart_DATA00.bf.DATA0=0;//外机AC电流保护限/降频  0:正常            1:限/降频
-//	Uart_DATA00.bf.DATA1=0;//排气保护限/降频
-//	Uart_DATA00.bf.DATA2=0;//防冻结保护限/降频
-//	Uart_DATA00.bf.DATA3=0;//过负荷保护限/降频
-//	Uart_DATA00.bf.DATA4=0;//直流母线电压保护限/降频
-//	Uart_DATA00.bf.DATA5=0;//模块温度保护限/降频
-//	Uart_DATA00.bf.DATA6=0;//模块电流(压缩机相电流)保护限/降频
-//	Uart_DATA00.bf.DATA7=0;//功率过高保护限/降频
-//	//第1个数据8位
-//	Uart_DATA01.DATA00=0;
-////	Uart_DATA01.bf.DATA0=0;
-////	Uart_DATA01.bf.DATA1=0;
-////	Uart_DATA01.bf.DATA2=0;
-////	Uart_DATA01.bf.DATA3=0;
-////	Uart_DATA01.bf.DATA4=0;
-////	Uart_DATA01.bf.DATA5=0;
-////	Uart_DATA01.bf.DATA6=0;
-////	Uart_DATA01.bf.DATA7=0;
-//	//第2个数据8位
-////	Uart_DATA02.DATA02=0;
-//	Uart_DATA02.bf.DATA0=0;//功率过高保护 0:正常            1:故障
-//	Uart_DATA02.bf.DATA1=0;//防冻结保护
-//	Uart_DATA02.bf.DATA2=0;//模块温度保护
-//	Uart_DATA02.bf.DATA3=0;//模块电流(Fo)保护
-//	Uart_DATA02.bf.DATA4=0;//外机AC电流保护
-//	Uart_DATA02.bf.DATA5=0;//过负荷保护
-//	Uart_DATA02.bf.DATA6=0;//排气保护
-//	Uart_DATA02.bf.DATA7=0;//压缩机热过载保护
-//		//第3个数据8位
-////		Uart_DATA03.DATA03=0;
-//	Uart_DATA03.bf.DATA0=0;//一拖多内外机管路连接与通讯连接不匹配  0:正常        1:故障
-//	Uart_DATA03.bf.DATA1=0;//室内外机型不匹配
-//	Uart_DATA03.bf.DATA2=0;//模式冲突
-//	Uart_DATA03.bf.DATA3=0;//缺氟保护
-//	Uart_DATA03.bf.DATA4=0;//直流母线电压过低保护
-//	Uart_DATA03.bf.DATA5=0;//直流母线电压过高保护
-//	Uart_DATA03.bf.DATA6=0;//PFC过流故障
-//	Uart_DATA03.bf.DATA7=0;//压缩机缺/逆相保护欠相,脱调(缺相)
-
-//		//第4个数据8位
-//		Uart_DATA04.DATA00=0;
-////	Uart_DATA04.bf.DATA0=0;
-////	Uart_DATA04.bf.DATA1=0;
-////	Uart_DATA04.bf.DATA2=0;
-////	Uart_DATA04.bf.DATA3=0;
-////	Uart_DATA04.bf.DATA4=0;
-////	Uart_DATA04.bf.DATA5=0;//四通阀换向异常  0:正常        1:故障
-////	Uart_DATA04.bf.DATA6=0;
-////	Uart_DATA04.bf.DATA7=0;
-////		//第5个数据8位
-////    Uart_DATA05.DATA05=0;
-//	Uart_DATA05.bf.DATA0=0;//压缩机退磁保护  0:正常        1:故障
-//	Uart_DATA05.bf.DATA1=0;//压缩机失步
-//	Uart_DATA05.bf.DATA2=0;//压缩机相电流电路检测故障
-//	Uart_DATA05.bf.DATA3=0;//电容充电故障
-//	Uart_DATA05.bf.DATA4=0;//整机电流检测故障
-//	Uart_DATA05.bf.DATA5=0;//直流母线电压跌落故障
-//	Uart_DATA05.bf.DATA6=0;//系统高压保护
-//	Uart_DATA05.bf.DATA7=0;//系统低压保护
-////		//第6个数据8位
-////		Uart_DATA06.DATA06=0;
-//	Uart_DATA06.bf.DATA0=0;//温漂保护
-//	Uart_DATA06.bf.DATA1=0;//交流接触器保护
-//	Uart_DATA06.bf.DATA2=0;//驱动板环境感温包故障
-//	Uart_DATA06.bf.DATA3=0;//压缩机拨码异常
-//	Uart_DATA06.bf.DATA4=0;//超速
-//	Uart_DATA06.bf.DATA5=0;//驱动模块复位
-//	Uart_DATA06.bf.DATA6=0;//启动失败
-//	Uart_DATA06.bf.DATA7=0;//压缩机堵转
-////		//第7个数据8位
-////    Uart_DATA07.DATA07=0;
-////	Uart_DATA07.bf.DATA0=0;//预留
-////	Uart_DATA07.bf.DATA1=0;
-////	Uart_DATA07.bf.DATA2=0;
-//	Uart_DATA07.bf.DATA3=0;//风机调速板通讯故障
-//	Uart_DATA07.bf.DATA4=0;//交流输入电压异常
-//	Uart_DATA07.bf.DATA5=0;//压缩机相电流过流
-//	Uart_DATA07.bf.DATA6=0;//驱动板通讯故障
-//	Uart_DATA07.bf.DATA7=0;//传感器连接保护(电流传感器没有接到对应的U相或V相)
-////		//第8个数据8位
-//		Uart_DATA08.DATA00=0;
-////	Uart_DATA08.bf.DATA0=0;
-////	Uart_DATA08.bf.DATA1=0;
-////	Uart_DATA08.bf.DATA2=0;
-////	Uart_DATA08.bf.DATA3=0;
-////	Uart_DATA08.bf.DATA4=0;
-////	Uart_DATA08.bf.DATA5=0;
-////	Uart_DATA08.bf.DATA6=0;
-////	Uart_DATA08.bf.DATA7=0;
-////		//第9个数据8位
-//		Uart_DATA09.DATA00=mcFocCtrl.IPMtemp/10-40;//IPM模块温度  0h:-40℃,数据每增加1则温度增加1℃
-////	Uart_DATA09.bf.DATA0=0;
-////	Uart_DATA09.bf.DATA1=0;
-////	Uart_DATA09.bf.DATA2=0;
-////	Uart_DATA09.bf.DATA3=0;
-////	Uart_DATA09.bf.DATA4=0;
-////	Uart_DATA09.bf.DATA5=0;
-////	Uart_DATA09.bf.DATA6=0;
-////	Uart_DATA09.bf.DATA7=0;
-////		//第10个数据8位
-//    Uart_DATA10.DATA00=0;
-////	Uart_DATA10.bf.DATA0=0;
-////	Uart_DATA10.bf.DATA1=0;
-////	Uart_DATA10.bf.DATA2=0;
-////	Uart_DATA10.bf.DATA3=0;
-////	Uart_DATA10.bf.DATA4=0;
-////	Uart_DATA10.bf.DATA5=0;
-////	Uart_DATA10.bf.DATA6=0;
-////	Uart_DATA10.bf.DATA7=0;
-////		//第11个数据8位
-//		Uart_DATA11.DATA00=0;
-////	Uart_DATA11.bf.DATA0=0;
-////	Uart_DATA11.bf.DATA1=0;
-////	Uart_DATA11.bf.DATA2=0;
-////	Uart_DATA11.bf.DATA3=0;
-////	Uart_DATA11.bf.DATA4=0;
-////	Uart_DATA11.bf.DATA5=0;
-////	Uart_DATA11.bf.DATA6=0;
-////	Uart_DATA11.bf.DATA7=0;
-////		//第12个数据8位
-//    Uart_DATA12.DATA00=0;
-////	Uart_DATA12.bf.DATA0=0;
-////	Uart_DATA12.bf.DATA1=0;
-////	Uart_DATA12.bf.DATA2=0;
-////	Uart_DATA12.bf.DATA3=0;
-////	Uart_DATA12.bf.DATA4=0;
-////	Uart_DATA12.bf.DATA5=0;
-////	Uart_DATA12.bf.DATA6=0;
-////	Uart_DATA12.bf.DATA7=0;
-////		//第13个数据8位
-//		Uart_DATA13.DATA00=0;
-////	Uart_DATA13.bf.DATA0=0;
-////	Uart_DATA13.bf.DATA1=0;
-////	Uart_DATA13.bf.DATA2=0;
-////	Uart_DATA13.bf.DATA3=0;
-////	Uart_DATA13.bf.DATA4=0;
-////	Uart_DATA13.bf.DATA5=0;
-////	Uart_DATA13.bf.DATA6=0;
-////	Uart_DATA13.bf.DATA7=0;
-////		//第14个数据8位
-//    Uart_DATA14.DATA00=0;
-////	Uart_DATA14.bf.DATA0=0;
-////	Uart_DATA14.bf.DATA1=0;
-////	Uart_DATA14.bf.DATA2=0;
-////	Uart_DATA14.bf.DATA3=0;
-////	Uart_DATA14.bf.DATA4=0;
-////	Uart_DATA14.bf.DATA5=0;
-////	Uart_DATA14.bf.DATA6=0;
-////	Uart_DATA14.bf.DATA7=0;
-////		//第15个数据8位
-//    Uart_DATA15.DATA00=0;
-////	Uart_DATA15.bf.DATA0=0;
-////	Uart_DATA15.bf.DATA1=0;
-////	Uart_DATA15.bf.DATA2=0;
-////	Uart_DATA15.bf.DATA3=0;
-////	Uart_DATA15.bf.DATA4=0;
-////	Uart_DATA15.bf.DATA5=0;
-////	Uart_DATA15.bf.DATA6=0;
-////	Uart_DATA15.bf.DATA7=0;
-//}
-
-
-
-
-//void Modbus_respond(void)
-//{
-//	    uint8 u16CRC = 0;
-//	
-//	    Uart.T_DATA[0]  = Uart.Oder;       					 //指令
-//			Uart.T_DATA[1]  = 0x00;             				 //地址   00一拖一
-//			Uart.T_DATA[2]  = 0x00;             				 //标志  
-//			Uart.T_DATA[3]  = Uart_DATA00.DATA00;        //数据第0位
-//			Uart.T_DATA[4]  = Uart_DATA01.DATA00;    		 //数据第1位
-//			Uart.T_DATA[5]  = Uart_DATA02.DATA00; 	     //数据第2位
-//			Uart.T_DATA[6]  = Uart_DATA03.DATA00;        //数据第3位
-//			Uart.T_DATA[7]  = Uart_DATA04.DATA00;        //数据第4位
-//			Uart.T_DATA[8]  = Uart_DATA05.DATA00;        //数据第5位
-//			Uart.T_DATA[9]  = Uart_DATA06.DATA00;        //数据第6位
-//			Uart.T_DATA[10] = Uart_DATA07.DATA00; 			 //数据第7位
-//			Uart.T_DATA[11] = Uart_DATA08.DATA00; 		   //数据第8位
-//			Uart.T_DATA[12] = Uart_DATA09.DATA00;        //数据第9位
-//			Uart.T_DATA[13] = Uart_DATA10.DATA00;        //数据第10位
-//			Uart.T_DATA[14] = Uart_DATA11.DATA00;        //数据第11位
-//			Uart.T_DATA[15] = Uart_DATA12.DATA00;        //数据第12位
-//			Uart.T_DATA[16] = Uart_DATA13.DATA00;    		 //数据第13位
-//			Uart.T_DATA[17] = Uart_DATA14.DATA00; 		   //数据第14位
-//			Uart.T_DATA[18] = Uart_DATA15.DATA00;        //数据第15位
-//	
-////			Uart.T_DATA[0]  = 0x31;//Uart.Oder;       					 //指令
-////			Uart.T_DATA[1]  = 0x00;             				 //地址   00一拖一
-////			Uart.T_DATA[2]  = 0x00;             				 //标志  
-////			Uart.T_DATA[3]  =1; //Uart_DATA00.DATA00;        //数据第0位
-////			Uart.T_DATA[4]  =0; //Uart_DATA01.DATA01;    		 //数据第1位
-////			Uart.T_DATA[5]  =0; //Uart_DATA02.DATA02; 	     //数据第2位
-////			Uart.T_DATA[6]  =0; //Uart_DATA03.DATA03;        //数据第3位
-////			Uart.T_DATA[7]  =0; //Uart_DATA04.DATA04;        //数据第4位
-////			Uart.T_DATA[8]  =0; //Uart_DATA05.DATA05;        //数据第5位
-////			Uart.T_DATA[9]  =0; //Uart_DATA06.DATA06;        //数据第6位
-////			Uart.T_DATA[10] =0; //Uart_DATA07.DATA07; 			 //数据第7位
-////			Uart.T_DATA[11] =0; //Uart_DATA08.DATA08; 		   //数据第8位
-////			Uart.T_DATA[12] =0; //Uart_DATA09.DATA09;        //数据第9位
-////			Uart.T_DATA[13] =0; //Uart_DATA10.DATA10;        //数据第10位
-////			Uart.T_DATA[14] =0; //Uart_DATA11.DATA11;        //数据第11位
-////			Uart.T_DATA[15] =0; //Uart_DATA12.DATA12;        //数据第12位
-////			Uart.T_DATA[16] =0; //Uart_DATA13.DATA13;    		 //数据第13位
-////			Uart.T_DATA[17] =0; //Uart_DATA14.DATA14; 		   //数据第14位
-////			Uart.T_DATA[18] =0; //Uart_DATA15.DATA15;        //数据第15位
-//			
-//			u16CRC = BBC(&Uart.T_DATA[0], TX_LEN-2);
-
-//			Uart.T_DATA[19] = u16CRC;                    //CRC
-//			
-//			Uart.send_start_falg=1;
-//			if (Uart.send_start_falg == 1)
-//			{   
-//				  Uart.Recive_Flag=1;
-//					UT2_DR = Uart.T_DATA[0];
-//				  UT2TB8 = even_or_odd(Uart.T_DATA[0],evnodd);
-//					Uart.send_start_falg = 0;
-//					Uart.TxCnt = 0;
-//			}
-//}
-
-//void Modbus_task00(void)
-//{ 	
-//	  if(Uart.Uart_Tmreset>=(T_mreset+T_mwtchg))//T_mreset
-//		{
-//			  Uart_Int01();
-//				Modbus_respond();
-//				Uart.Uart_Tmreset=0;
-//		}
-//}
-//void Modbus_task01(void)
-//{
-//	if(Uart.Uart_Tmcomcyc>=(T_mcomcyc+T_mwtchg))//(T_mcomcyc+T_mwtchg)
-//	{
-//		  Uart_Int02();
-//      Modbus_respond();
-//		  Uart.Uart_Tmcomcyc=0;
-//  }
-//}
-//void Modbus_task02(void)
-//{
-//	if(Uart.Uart_Tmcomcyc>=(T_mcomcyc+T_mwtchg))
-//	{
-//		  Uart_Int_Finsh();
-//			Modbus_respond();
-//		  Uart.Uart_Tmcomcyc=0;
-//  }
-//}
-//void Modbus_task03(void)
-//{
-//	if(Uart.Uart_Tmcomcyc>=(T_mcomcyc+T_mwtchg))
-//	{
-//			Uart_Run01();
-//			Modbus_respond();
-//		  Uart.Uart_Tmcomcyc=0;
-//	}
-//}
-//void Modbus_task04(void)
-//{
-//	if(Uart.Uart_Tmcomcyc>=(T_mcomcyc+T_mwtchg))
-//	{
-//			Uart_Run02();
-//			Modbus_respond();
-//		  Uart.Uart_Tmcomcyc=0;
-//	}
-//}
-//void Modbus_task06(void)
-//{
-
-//		Uart.YaJI_Speed   = (Uart.R_DATA[4] <<8) |Uart.R_DATA[5];
-//	  ConTrolCmd.yajispeed=Uart.YaJI_Speed;
-//	  mcFaultDect.commu_time=0;
-//  	Modbus_respond();
-//}
-
-///**任务机发送**/
-//void Modbus_task(void)
-//{
-//		switch (Uart.Oder)//判断功能码
-//		{
-//				case 0x11:            //初始状态1
-//					Modbus_task00();
-//				break;
-//				case 0x12:            //初始状态2
-//					Modbus_task01();
-//				break;
-//				case 0x2F:            //复位结束
-//					Modbus_task02();
-//				break;
-//				case 0x31:            //运转信息1
-//					Modbus_task03();
-//				break;
-//				case 0x32:            //运转信息2
-//					Modbus_task04();
-//				break;
-//				default:
-//				break;
-//		}
-//}
-
-
-
-//void Modbus_Recive_task0(void)
-//{
-//	
-//}
-//void Modbus_Recive_task1(void)
-//{
-//	
-//}
-//void Modbus_Recive_task2(void)
-//{
-//	
-//}
-//void Modbus_Recive_task3(void)
-//{
-//    Uart_Rec_DATA00.DATAT00 = Uart.R_DATA[3];
-//		Uart_Rec_DATA01.DATAT00 = Uart.R_DATA[4];
-//		Uart_Rec_DATA02.DATAT00 = Uart.R_DATA[5];
-//	  Uart_Rec_DATA03.DATAT00 = Uart.R_DATA[6];//室内设定温度
-//	  Uart_Rec_DATA04.DATAT00 = Uart.R_DATA[7];//室内环境温度
-//		Uart_Rec_DATA05.DATAT00 = Uart.R_DATA[8];
-//		Uart_Rec_DATA06.DATAT00 = Uart.R_DATA[9];//蒸发器温度
-//		Uart_Rec_DATA09.DATAT00 = Uart.R_DATA[12];
-//	  Uart_Rec_DATA10.DATAT00 = Uart.R_DATA[13];
-//	  Uart_Rec_DATA11.DATAT00 = Uart.R_DATA[14];
-//		Uart_Rec_DATA12.DATAT00 = Uart.R_DATA[15];
-//		Uart_Rec_DATA13.DATAT00 = Uart.R_DATA[16];
-//		Uart_Rec_DATA14.DATAT00 = Uart.R_DATA[17];
-//	  Uart_Rec_DATA15.DATAT00 = Uart.R_DATA[18];
-//	
-//	
-//	
-//	 //运行模式提取
-//	 SYS_RunMode								= Uart_Rec_DATA00.DATAT00 & 0x0f;
-//	 
-//	 if(0 == SYS_RunMode)					// 上电默认
-//	 {
-////		 u8_RunMode							= MODE_FAN;
-//	 }
-//	 else if(1 == SYS_RunMode)		// 制冷
-//	 {
-//		 u8_RunMode							= MODE_COOL;
-//	 }
-//	 else if(2 == SYS_RunMode)		// 除湿
-//	 {
-//		 u8_RunMode							= MODE_DEHUMIDIFY;
-//	 }
-//	 else if(3 == SYS_RunMode)			// 送风
-//	 {
-//		 u8_RunMode							= MODE_FAN;
-//	 }
-//	 else if(4 == SYS_RunMode)			// 制热
-//	 {
-//		 u8_RunMode							= MODE_HEAT;
-//	 }
-//	 else if(5 == SYS_RunMode)		// 强制制冷
-//	 {
-//		 u8_RunMode							= MODE_COOL;
-//	 }
-//	 else if(6 == SYS_RunMode)		// 强制制热
-//	 {
-//		 u8_RunMode							= MODE_HEAT;
-//	 }
-//	 else if(7 == SYS_RunMode)		// 强制除霜
-//	 {
-//		 u8_RunMode							= MODE_HEAT;
-//	 }
-//	 else if(8 == SYS_RunMode)		// 制冷能力测试
-//	 {
-//		 u8_RunMode							= MODE_COOL;
-//	 }
-//	 else if(9 == SYS_RunMode)		// 制热能力测试
-//	 {
-//		 u8_RunMode							= MODE_HEAT;
-//	 }
-//	 else if(10 == SYS_RunMode)		// 收氟
-//	 {
-//		 u8_RunMode							= MODE_COOL;
-//	 }
-//	 else if(11 == SYS_RunMode)		// 试运行
-//	 {
-//		 u8_RunMode							= MODE_COOL;
-//	 }
-//	 
-//	 // 室内风速
-//	 FAN_RunSpeed								= Uart_Rec_DATA01.DATAT00 & 0x0f;
-//	 if(4 == FAN_RunSpeed)
-//	 {
-//		u1_IndoorFanSpeed				= 4 ; // HH
-//	 }
-//	 else if(3 == FAN_RunSpeed)
-//	 {
-//		u1_IndoorFanSpeed				= 3 ; // H
-//	 }
-//	 else if(2 == FAN_RunSpeed)
-//	 {
-//		u1_IndoorFanSpeed				= 2 ; // M
-//	 }
-//	 else if(0 == FAN_RunSpeed)
-//	 {
-//		u1_IndoorFanSpeed				= 0 ; // STOP
-//	 }
-//	 else
-//	 {
-//		u1_IndoorFanSpeed				= 1 ; // L or LL
-//	 }
-//	 
-//	 // 室内设定温度 温度四舍误入  Uart_Rec_DATA02.bf.DATA1
-//	 //u8_TempSet  u8_TempIndoor  u8_TempIncoil  0代表-20度    0.5度的精度
-//	 if(Uart_Rec_DATA03.DATAT00 < 20)
-//	 {
-//		 u8_TempSet						= 0;
-//	 }
-//	 else
-//	 {
-//		 u8_TempSet						= (Uart_Rec_DATA03.DATAT00<<1)- 40 + Uart_Rec_DATA02.bf.DATA1;
-//	 }
-//	 
-//	 //室内温度提取
-//	 if(Uart_Rec_DATA04.DATAT00 < 20)
-//	 {
-//		 u8_TempIndoor					= 0;
-//	 }
-//	 else
-//	 {
-//		 u8_TempIndoor					= (Uart_Rec_DATA04.DATAT00<<1)- 40 + Uart_Rec_DATA02.bf.DATA3;
-//	 }
-
-//	 // 室内盘管温度
-//	 if(Uart_Rec_DATA06.DATAT00 < 20)
-//	 {
-//		 u8_TempIncoil						= 0;
-//	 }
-//	 else
-//	 {
-//		 u8_TempIncoil						= (Uart_Rec_DATA06.DATAT00<<1)- 40 + Uart_Rec_DATA02.bf.DATA5;
-//	 }
-//	 
-//	 
-//	 	 //系统开关状态 其他信息 模式 设定温度 室内温度等更新后再设置开机状态
-//	 if(Uart_Rec_DATA00.bf.DATA4==1)
-//	 {	
-//			u1_SystemOnF					= 1;
-//	 }
-//	 else
-//	 {
-//			u1_SystemOnF					= 0;
-//	 }
-
-//	 if(u1_cnt_idu_comm_task<255)
-//	 {
-//		u1_cnt_idu_comm_task++;
-//	 }
-//	 
-//	  mcFaultDect.commu_time=0;
-//}
-//void Modbus_Recive_task4(void)
-//{
-//	
-//}
-///**任务机接收**/
-//void Modbus_Recive_task(void)
-//{
-//		switch (Uart.R_DATA[0])//判断功能码
-//		{
-//				case 0x11:            //初始状态1
-//					Modbus_Recive_task0();
-//				break;
-//				case 0x12:            //初始状态2
-//					Modbus_Recive_task1();
-//				break;
-//				case 0x2F:            //复位结束
-//					Modbus_Recive_task2();
-//				break;
-//				case 0x31:            //运转信息1
-//					Modbus_Recive_task3();
-//				break;
-//				case 0x32:            //运转信息2
-//					Modbus_Recive_task4();
-//				break;
-//				default:
-//				break;
-//		}
-//}
-
-///*串口数据处理,处理接收到的串口数据,运行于大循环中*/
-//void UartDealResponse1(void)
-//{
-//	if(FaultNoSource != mcFaultSource)
-//	{
-//		u8_OutdoorErrorCode					= mcFaultSource;
-//	}
-//	u8_IndoorErrorCode						= 0;
-//	
-//	if (Modbus_Slave_Receive() == 1)//接收数据
-//	{
-//			Modbus_Recive_task();
-//		  mcFaultDect.commu_time=0;
-//		
-//			if(Uart.R_DATA[0]==0x11)
-//			{Uart.Oder=0x12;}
-//			else if(Uart.R_DATA[0]==0x12)
-//			{Uart.Oder=0x2F;}
-//			else if(Uart.R_DATA[0]==0x2F)
-//			{Uart.Oder=0x31;}
-//			else if(Uart.R_DATA[0]==0x31)
-//			{Uart.Oder=0x32;}
-//			else if(Uart.R_DATA[0]==0x32)
-//			{Uart.Oder=0x31;}
-//			
-//			Uart.recive_sussf_falg = 0;
-//	}	
-//	Modbus_task();//发送数据		
-//}
-

+ 138 - 0
User/User_Drive/watch.c

@@ -0,0 +1,138 @@
+#include "User_Dri_main.h"
+
+extern unsigned char xdata sg_ucUartDbgData[128];
+MCUART_watch xdata Uartwatch;
+
+void uart_boxing(uint8 ChNum, int32 CH0, int32 CH1, int32 CH2, int32 CH3, int32 CH4, int32 CH5, int32 CH6, int32 CH7)
+{
+    uint8 i = 0, tt = 0;
+    static float  CH[20] = 0;
+    static uint16 cmdTFT_CH1[4] = {0x00, 0x00, 0x80, 0x7F};
+    typedef union
+    {
+        float            fdata;
+        unsigned long    ldata;
+    } datetype;
+    datetype  Ddate;
+    Wait_DMA(1);
+    CH[0] = CH0; CH[1] = CH1; CH[2] = CH2; CH[3] = CH3; CH[4] = CH4; CH[5] = CH5; CH[6] = CH6; CH[7] = CH7;
+    
+    for (tt = 0; tt < ChNum; tt++)
+    {
+        Ddate.fdata = CH[tt];
+        sg_ucUartDbgData[0 + tt * 4] = Ddate.ldata;
+        sg_ucUartDbgData[1 + tt * 4] = (Ddate.ldata >> 8 & 0xFF);
+        sg_ucUartDbgData[2 + tt * 4] = (Ddate.ldata >> 16 & 0xFF);
+        sg_ucUartDbgData[3 + tt * 4] = (Ddate.ldata >> 24 & 0xFF);
+    }
+    
+    if (ChNum != 0)
+    {
+        for (i = 0; i < 4; i++)
+        {
+            sg_ucUartDbgData[4 + (tt - 1) * 4 + i] = cmdTFT_CH1[i];
+        }
+    }
+    
+    DMA1_LEN = 4 + (tt - 1) * 4 + (i - 1);
+    Switch_DMA(1);
+}
+
+
+void UART1RCE()
+{
+    Uartwatch.uarttimejishu = 0;
+    Uartwatch.uartre[Uartwatch.uartjia++] = UT_DR;
+}
+
+void UART1deal()
+{
+    static uint8 aa[6] = 0;
+    uint8 ii = 0;
+    
+    if (Uartwatch.uarttimejishu >= 30 && Uartwatch.uartjia != 0)
+    {
+        if ((Uartwatch.uartre[0] == 'T') && (Uartwatch.uartre[1] == ':') && (Uartwatch.uartre[Uartwatch.uartjia - 1] == 0x0A))
+        {
+            if (Uartwatch.uartre[2] == '1')
+            {
+                Uartwatch.fast = 1;
+            }
+            else if (Uartwatch.uartre[2] == '0')
+            {
+                Uartwatch.fast = 0;
+            }
+        }
+        else if ((Uartwatch.uartre[0] == 'S') && (Uartwatch.uartre[1] == ':') && (Uartwatch.uartre[Uartwatch.uartjia - 1] == 0x0A))
+        {
+            for (ii = 0; ii <= 5; ii++)
+            {
+                aa[ii] = 0;
+            }
+            
+            for (ii = 0; ii <= (Uartwatch.uartjia - 4); ii++)
+            {
+                aa[ii] = 1;
+            }
+            
+            ConTrolCmd.yajispeed = ((Uartwatch.uartre[Uartwatch.uartjia - 6] & 0x0f) * 10000 * aa[4]) + ((Uartwatch.uartre[Uartwatch.uartjia - 5] & 0x0f) * 1000 * aa[3])
+                + ((Uartwatch.uartre[Uartwatch.uartjia - 4] & 0x0f) * 100 * aa[2]) + ((Uartwatch.uartre[Uartwatch.uartjia - 3] & 0x0f) * 10 * aa[1]) + (Uartwatch.uartre[Uartwatch.uartjia - 2] & 0x0f) * aa[0];
+        }
+        
+        Uartwatch.uartjia = 0;
+    }
+}
+
+
+void trace1()
+{
+    static uint8 ii = 0;
+    
+    if (Uartwatch.cunflag == 1)
+    {
+        ii++;
+        Uartwatch.jiajia++;
+        Uartwatch.buff1[ii] = VoltageComp.testUq4; //Uartwatch.jiajia;
+        Uartwatch.buff2[ii] = VoltageComp.mcDcbus;
+        Uartwatch.buff3[ii] = FOC__ID;
+    }
+    
+    if (ii >= (Buge - 1))
+    {
+        ii = 0;
+        Uartwatch.jiajia = 0;
+        Uartwatch.faflag = 1;
+        Uartwatch.cunflag = 0;
+    }
+}
+extern uint16 AimFrequencyMaxVAC;
+void trace2()
+{
+    //    if(Uartwatch.fast==1)
+    //      {
+    if (Uartwatch.faflag == 1)
+    {
+        Uartwatch.fajishu++;
+        printf("%d,%d,%d,%d,%d\n", Uartwatch.buff1[Uartwatch.fajishu], Uartwatch.buff2[Uartwatch.fajishu], Uartwatch.buff3[Uartwatch.fajishu], mcFocCtrl.mcDcbusFlt, mcFocCtrl.SpeedFlt);
+        
+        if (Uartwatch.fajishu >= (Buge - 1))
+        {
+            Uartwatch.fajishu = 0;
+            Uartwatch.faflag = 0;
+            Uartwatch.cunflag = 1;
+        }
+    }
+    
+    //   }
+    //   else
+    //   {
+    //  printf("%d,%d,%d,%d,%d,%d,%d\n",(uint16)udc.L1,(uint16)udc.L2,(uint16)udc.L3 ,(uint16)Uart_Rec_DATA06.DATAT00,
+    //                                         (uint16)udc.L2,(uint16)Uart_Rec_DATA00.DATAT00,(uint16)udc.L2 );
+    //        printf("%d,%d,%d,%d,%d,%d,%d\n",(uint16)udc.LMAX,ConTrolCmd.yajispeed,mcFocCtrl.mcDcbusFlt ,AimFrequencyMaxVAC,
+    //                                         mcFocCtrl.SpeedFlt,mcSpeedRamp.ActualValue,mcFocCtrl.mcAcbusFlt );
+    //  printf("%d,%d,%d,%d,%d,%d,%d\n",Fengji_FG.FENJIPINLV2,mcPwmInput.PWMARR2,mcFocCtrl.IPMtemp,mcFocCtrl.IPMtemp,
+    //                                         mcFocCtrl.SpeedFlt,mcFocCtrl.SpeedFlt,Fengji_FG.FENJIPINLV2 );
+    //   }
+}
+
+

+ 35 - 0
User/User_Drive/watch.h

@@ -0,0 +1,35 @@
+
+#ifndef __SWATCH_H__
+#define __SWATCH_H__
+
+#include "FU68xx_5_Type.h"
+
+
+#define Buge    100
+typedef struct
+{
+    uint8  uartre[15];
+    uint8  uartjia;
+    uint8  uarttimejishu;
+    uint8  cunflag;
+    uint8  faflag;
+    uint8  jiajia;
+    int16  buff1[Buge];
+    int16  buff2[Buge];
+    int16  buff3[Buge];
+    uint8  fajishu;
+    uint8  fast;
+    
+} MCUART_watch;
+
+extern MCUART_watch xdata Uartwatch;
+
+extern void UART1RCE();
+extern void UART1deal();
+extern void trace1();
+extern void trace2();
+extern void uart_boxing(uint8 ChNum, int32 CH0, int32 CH1, int32 CH2, int32 CH3, int32 CH4, int32 CH5, int32 CH6, int32 CH7);
+
+#endif
+
+

+ 0 - 132
User/User_Drive/watch/watch.c

@@ -1,132 +0,0 @@
-
-
-#include "User_Dri_main.h"
-
-extern unsigned char xdata sg_ucUartDbgData[128];
-MCUART_watch xdata Uartwatch;
-
-void uart_boxing(uint8 ChNum,int32 CH0,int32 CH1,int32 CH2,int32 CH3,int32 CH4,int32 CH5,int32 CH6,int32 CH7)
-{
-	  uint8 i=0,tt=0;
-  	static float  CH[20]=0;
-	  static uint16 cmdTFT_CH1[4]={0x00,0x00,0x80,0x7F};
-    typedef union  
-		{
-				float            fdata;
-				unsigned long    ldata;
-		}datetype; 
-		datetype  Ddate;
-		Wait_DMA(1); 
-		CH[0]=CH0;CH[1]=CH1;CH[2]=CH2;CH[3]=CH3;CH[4]=CH4;CH[5]=CH5;CH[6]=CH6;CH[7]=CH7;
-		for(tt=0;tt<ChNum;tt++)
-		{
-        Ddate.fdata=CH[tt];
-				sg_ucUartDbgData[0+tt*4]=Ddate.ldata;
-				sg_ucUartDbgData[1+tt*4]=(Ddate.ldata>>8&0xFF);
-				sg_ucUartDbgData[2+tt*4]=(Ddate.ldata>>16&0xFF);
-				sg_ucUartDbgData[3+tt*4]=(Ddate.ldata>>24&0xFF);	
-    }
-		if(ChNum!=0)
-		{
-				for(i=0;i<4;i++)
-				{
-						sg_ucUartDbgData[4+(tt-1)*4+i]=cmdTFT_CH1[i]; 
-				}  
-		}	
-		DMA1_LEN = 4+(tt-1)*4+(i-1);
-		Switch_DMA(1);		
-}
-
-
-void UART1RCE()
-{    
-		Uartwatch.uarttimejishu = 0;                             
-	  Uartwatch.uartre[Uartwatch.uartjia++] = UT_DR;	
-}
-
-void UART1deal()
-{  
-     static uint8 aa[6]=0;	
-	   uint8 ii=0;
-	
-	
-     if (Uartwatch.uarttimejishu >= 30 && Uartwatch.uartjia != 0)
-		 {
-				if((Uartwatch.uartre[0]=='T')&&(Uartwatch.uartre[1]==':')&&(Uartwatch.uartre[Uartwatch.uartjia-1]==0x0A))
-				{
-						 if(Uartwatch.uartre[2]=='1')
-						 {
-								Uartwatch.fast=1;
-						 }
-						 else if(Uartwatch.uartre[2]=='0')
-						 {
-								Uartwatch.fast=0;
-						 }
-				}
-				else if((Uartwatch.uartre[0]=='S')&&(Uartwatch.uartre[1]==':')&&(Uartwatch.uartre[Uartwatch.uartjia-1]==0x0A))
-				{
-						for(ii=0;ii<=5;ii++)
-						{
-								aa[ii]=0;
-						}
-						for(ii=0;ii<=(Uartwatch.uartjia-4);ii++)
-						{
-								aa[ii]=1;
-						}
-						ConTrolCmd.yajispeed = ((Uartwatch.uartre[Uartwatch.uartjia-6]&0x0f)*10000*aa[4])+((Uartwatch.uartre[Uartwatch.uartjia-5]&0x0f)*1000*aa[3])
-					                   +((Uartwatch.uartre[Uartwatch.uartjia-4]&0x0f)*100*aa[2])+((Uartwatch.uartre[Uartwatch.uartjia-3]&0x0f)*10*aa[1])+(Uartwatch.uartre[Uartwatch.uartjia-2]&0x0f)*aa[0];
-        }
-				Uartwatch.uartjia=0;
-	  }
-}
-
-
-void trace1()
-{
-    static uint8 ii=0;
-	
-		if(Uartwatch.cunflag==1)
-		{
-				ii++;
-				Uartwatch.jiajia++;
-				Uartwatch.buff1[ii]=VoltageComp.testUq4;//Uartwatch.jiajia;
-				Uartwatch.buff2[ii]=VoltageComp.mcDcbus;
-				Uartwatch.buff3[ii]=FOC__ID;
-		}
-		if(ii>=(Buge-1))
-		{
-				ii=0;
-				Uartwatch.jiajia=0;
-				Uartwatch.faflag=1;
-				Uartwatch.cunflag=0;
-		}
-}
-extern uint16 AimFrequencyMaxVAC;
-void trace2()
-{
-//	  if(Uartwatch.fast==1)
-//		{
-				if(Uartwatch.faflag==1)
-				{
-						Uartwatch.fajishu++;
-						printf("%d,%d,%d,%d,%d\n",Uartwatch.buff1[Uartwatch.fajishu],Uartwatch.buff2[Uartwatch.fajishu],Uartwatch.buff3[Uartwatch.fajishu],mcFocCtrl.mcDcbusFlt,mcFocCtrl.SpeedFlt);
-						if(Uartwatch.fajishu>=(Buge-1))
-						{
-								Uartwatch.fajishu=0;
-								Uartwatch.faflag=0;
-								Uartwatch.cunflag=1;
-					  }
-				}
-//	 }
-//	 else
-//	 {
-//	printf("%d,%d,%d,%d,%d,%d,%d\n",(uint16)udc.L1,(uint16)udc.L2,(uint16)udc.L3 ,(uint16)Uart_Rec_DATA06.DATAT00,
-//				                           (uint16)udc.L2,(uint16)Uart_Rec_DATA00.DATAT00,(uint16)udc.L2 );
-//        printf("%d,%d,%d,%d,%d,%d,%d\n",(uint16)udc.LMAX,ConTrolCmd.yajispeed,mcFocCtrl.mcDcbusFlt ,AimFrequencyMaxVAC,
-//				                           mcFocCtrl.SpeedFlt,mcSpeedRamp.ActualValue,mcFocCtrl.mcAcbusFlt );
-//	printf("%d,%d,%d,%d,%d,%d,%d\n",Fengji_FG.FENJIPINLV2,mcPwmInput.PWMARR2,mcFocCtrl.IPMtemp,mcFocCtrl.IPMtemp,
-//				                           mcFocCtrl.SpeedFlt,mcFocCtrl.SpeedFlt,Fengji_FG.FENJIPINLV2 );
-//   }
-}
-
-

+ 0 - 35
User/User_Drive/watch/watch.h

@@ -1,35 +0,0 @@
-
-#ifndef __SWATCH_H__
-#define __SWATCH_H__
-
-#include "FU68xx_5_Type.h"
-
-
-#define Buge    100
-typedef struct
-{
-	uint8  uartre[15];
-	uint8  uartjia;
-	uint8  uarttimejishu;
-  uint8  cunflag;
-	uint8  faflag;
-  uint8  jiajia;
-  int16  buff1[Buge];
-	int16  buff2[Buge];
-	int16  buff3[Buge];
-  uint8  fajishu;
-	uint8  fast;
-	
-}MCUART_watch;
-
-extern MCUART_watch xdata Uartwatch;
-
-extern void UART1RCE();
-extern void UART1deal();
-extern void trace1();
-extern void trace2();
-extern void uart_boxing(uint8 ChNum,int32 CH0,int32 CH1,int32 CH2,int32 CH3,int32 CH4,int32 CH5,int32 CH6,int32 CH7);
-
-#endif  
-
-

+ 295 - 536
User/include/Customer.h

@@ -1,288 +1,87 @@
-/**************************** (C) COPYRIGHT 2018 Fortiortech shenzhen *****************************
-* File Name          : Customer.h
-* Author             : Bruce, Fortiortech Hardware
-* Version            : V1.0
-* Date               : 2018-02-26
-* Description        : This file contains all the common data types used for
-*                      Motor Control.
-**************************************************************************************************/
-
-/* Define to prevent recursive inclusion --------------------------------------------------------*/
 #ifndef __CUSTOMER_H_
 #define __CUSTOMER_H_
 
- #define I_ValueX(Curr_Value)            (Curr_Value * HW_RSHUNT * HW_AMPGAIN / (HW_ADC_REF))
- #define I_Value(Curr_Value)             _Q15(I_ValueX(Curr_Value))
- /*芯片参数值-------------------------------------------------------------------*/
- /*CPU and PWM Parameter*/
- #define MCU_CLOCK                      (24.0)                                  // (MHz) 主频
- #define PWM_FREQUENCY                  (5.0) //16.0                            // (kHz) 载波频率 勿改此频率否则影响模拟串口
- 
- #define PWM_DEADTIME                   (5.0)                                   // (us) 死区时间
- #define MIN_WIND_TIME                  (5.9) //6.4                              // (us) 单电阻最小采样窗口,建议值死区时间+0.9us
-
-  /**压机型号选择**/
- /**压机型号选择**/
- #define other                          (0xF1)
- #define KSN98D64UFZ3                   (0)
- #define KSN98D25UFZ3                   (1)
- #define EAQN108D22UFZA                 (2)
- #define QXF_B103zH170F                 (3)
- #define C_6RVN88H0T_S1502              (4)
- #define QXF_A098zE170                  (5)
- #define GSX098CKRF6JV8                 (6)
- #define GSD108CKQF6JV8B                (7)
- #define GSD098CKQA6JV6B                (8)
- #define KSK103D33UEZ3                  (9)
- #define KSK103D33UEZ3                  (10)
- #define ASD102UKTA7JT                  (11)
- #define KSK82D22UEZA31                 (12)
- #define C1RVN68H0E                     (13)
- #define GDY38AXD                       (14)
- #define ATH550SKRC8FQ                  (15)
- #define C9RZ700L4AAL                   (16)
- #define KTQ580D66UNT                    (17)
- #define KTQ650D41UNT3                   (18)
- #define C7RVN273H0W                   (19)
-  #define CD081ZA02                   (20)
-	
-	
- #define Yaji_Select                    (CD081ZA02)
-
- #if (Yaji_Select==KSN98D64UFZ3)
-		 #define Pole_Pairs                     (3)                                      // 极对数
-		 #define RS                             (1.35)                                   // (H) D轴电感0.5
-		 #define LQ                             (0.0175)                                 // (H) Q轴电感  0.5
-		 #define LD                             (0.0175)                                 // (Ω) 相电阻
-		 #define Ke                             (58.0)                                   // (V/KRPM) 反电动势常数
- #elif (Yaji_Select==KSN98D25UFZ3)
-		 #define Pole_Pairs                     (3)                                      // 极对数
-		 #define RS                             (1.2)                                   // (H) D轴电感0.5
-		 #define LQ                             (0.015)                                 // (H) Q轴电感  0.5
-		 #define LD                             (0.015)                                 // (Ω) 相电阻
-		 #define Ke                             (43.0)                                   // (V/KRPM) 反电动势常数
- #elif (Yaji_Select==EAQN108D22UFZA)
-		 #define Pole_Pairs                     (3)                                      // 极对数
-		 #define RS                             (0.88)                                   // (H) D轴电感0.5
-		 #define LQ                             (0.008)                                 // (H) Q轴电感  0.5
-		 #define LD                             (0.008)                                 // (Ω) 相电阻
-		 #define Ke                             (33.0)                                   // (V/KRPM) 反电动势常数
- #elif (Yaji_Select==QXF_B103zH170F)
-		 #define Pole_Pairs                     (3)                                      // 极对数
-		 #define RS                             (0.76)                                   // (H) D轴电感0.5
-		 #define LQ                             (0.012)                                 // (H) Q轴电感  0.5
-		 #define LD                             (0.012)                                 // (Ω) 相电阻
-		 #define Ke                             (44.1)                                   // (V/KRPM) 反电动势常数
- #elif (Yaji_Select==C_6RVN88H0T_S1502)
-		 #define Pole_Pairs                     (2)                                      // 极对数
-		 #define RS                             (0.8)                                   // (H) D轴电感0.5
-		 #define LQ                             (0.0175)                                 // (H) Q轴电感  0.5
-		 #define LD                             (0.0175)                                 // (Ω) 相电阻
-		 #define Ke                             (43.7)                                   // (V/KRPM) 反电动势常数
- #elif (Yaji_Select==QXF_A098zE170)
-		 #define Pole_Pairs                     (3)                                      // 极对数
-		 #define RS                             (2.17)                                   // (H) D轴电感0.5
-		 #define LQ                             (0.021)                                 // (H) Q轴电感  0.5
-		 #define LD                             (0.021)                                 // (Ω) 相电阻
-		 #define Ke                             (57.8)                                   // (V/KRPM) 反电动势常数
-	#elif (Yaji_Select==GSX098CKRF6JV8)
-		 #define Pole_Pairs                     (4)                                      // 极对数
-		 #define RS                             (1.4)                                   // (H) D轴电感0.5
-		 #define LQ                             (0.009)                                 // (H) Q轴电感  0.5
-		 #define LD                             (0.009)                                 // (Ω) 相电阻
-		 #define Ke                             (44.8)                                   // (V/KRPM) 反电动势常数
-	#elif (Yaji_Select==GSD108CKQF6JV8B)
-		 #define Pole_Pairs                     (4)                                      // 极对数
-		 #define RS                             (1.3)                                   // (H) D轴电感0.5
-		 #define LQ                             (0.01)                                 // (H) Q轴电感  0.5
-		 #define LD                             (0.01)                                 // (Ω) 相电阻
-		 #define Ke                             (42.8)                                   // (V/KRPM) 反电动势常数
-	#elif (Yaji_Select==GSD098CKQA6JV6B)
-		 #define Pole_Pairs                     (3)                                      // 极对数
-		 #define RS                             (1.15)                                   // (H) D轴电感0.5
-		 #define LQ                             (0.0117)                                 // (H) Q轴电感  0.5
-		 #define LD                             (0.0117)                                 // (Ω) 相电阻
-		 #define Ke                             (38.3)                                   // (V/KRPM) 反电动势常数
-	#elif (Yaji_Select==KSK103D33UEZ3)
-		 #define Pole_Pairs                     (3)                                      // 极对数
-		 #define RS                             (1.0)                                   // (H) D轴电感0.5
-		 #define LQ                             (0.01)                                 // (H) Q轴电感  0.5
-		 #define LD                             (0.01)                                 // (Ω) 相电阻
-		 #define Ke                             (36.3)                                   // (V/KRPM) 反电动势常数
-	#elif (Yaji_Select==ASD102UKTA7JT)
-		 #define Pole_Pairs                     (2)                                      // 极对数
-		 #define RS                             (1.0)                                   // (H) D轴电感0.5
-		 #define LQ                             (0.019)                                 // (H) Q轴电感  0.5
-		 #define LD                             (0.019)                                 // (Ω) 相电阻
-		 #define Ke                             (50.7)                                   // (V/KRPM) 反电动势常数
-	#elif (Yaji_Select==KSK82D22UEZA31)
-		 #define Pole_Pairs                     (4)                                      // 极对数
-		 #define RS                             (1.86)                                   // (H) D轴电感0.5
-		 #define LQ                             (0.0097)                                 // (H) Q轴电感  0.5
-		 #define LD                             (0.0097)                                 // (Ω) 相电阻
-		 #define Ke                             (39.3)                                   // (V/KRPM) 反电动势常数
-	#elif (Yaji_Select==C1RVN68H0E)
-		 #define Pole_Pairs                     (2)                                      // 极对数
-		 #define RS                             (0.25)                                   // (H) D轴电感0.5
-		 #define LQ                             (0.0065)                                 // (H) Q轴电感  0.5
-		 #define LD                             (0.0065)                                 // (Ω) 相电阻
-		 #define Ke                             (23.3)                                   // (V/KRPM) 反电动势常数
-	#elif (Yaji_Select==GDY38AXD)
-		 #define Pole_Pairs                     (3)                                      // 极对数
-		 #define RS                             (0.6)                                   // (H) D轴电感0.5
-		 #define LQ                             (0.014)                                 // (H) Q轴电感  0.5
-		 #define LD                             (0.014)                                 // (Ω) 相电阻
-		 #define Ke                             (26.9)                                   // (V/KRPM) 反电动势常数
-	#elif (Yaji_Select==ATH550SKRC8FQ)
-		 #define Pole_Pairs                     (4)                                      // 极对数
-		 #define RS                             (0.21)                                   // (H) D轴电感0.5
-		 #define LQ                             (0.0028)                                 // (H) Q轴电感  0.5
-		 #define LD                             (0.0028)                                 // (Ω) 相电阻
-		 #define Ke                             (44.8)                                   // (V/KRPM) 反电动势常数
-	#elif (Yaji_Select==C9RZ700L4AAL)
-		 #define Pole_Pairs                     (4)                                      // 极对数
-		 #define RS                             (0.23)                                   // (H) D轴电感0.5
-		 #define LQ                             (0.0031)                                 // (H) Q轴电感  0.5
-		 #define LD                             (0.0031)                                 // (Ω) 相电阻
-		 #define Ke                             (61.8)                                   // (V/KRPM) 反电动势常数
-	#elif (Yaji_Select==ATQ750D50UNT3)
-		 #define Pole_Pairs                     (3)                                      // 极对数
-		 #define RS                             (0.16)                                   // (H) D轴电感0.5
-		 #define LQ                             (0.002)                                 // (H) Q轴电感  0.5
-		 #define LD                             (0.002)                                 // (Ω) 相电阻
-		 #define Ke                             (46.9)           //57.9/1.732*1.414                           // (V/KRPM) 反电动势常数
-	#elif (Yaji_Select==KTQ580D66UNT)
-		 #define Pole_Pairs                     (3)                                      // 极对数
-		 #define RS                             (0.175)                                   // (H) D轴电感0.5
-		 #define LQ                             (0.0032)                                 // (H) Q轴电感  0.5
-		 #define LD                             (0.0032)                                 // (Ω) 相电阻
-		 #define Ke                             (47.27)                                   // (V/KRPM) 反电动势常数
-	#elif (Yaji_Select==KTQ650D41UNT3)
-		 #define Pole_Pairs                     (3)                                      // 极对数
-		 #define RS                             (0.171)                                   // (H) D轴电感0.5
-		 #define LQ                             (0.00206)                                 // (H) Q轴电感  0.5
-		 #define LD                             (0.00206)                                 // (Ω) 相电阻
-		 #define Ke                             (46.62)                                   // (V/KRPM) 反电动势常数
-	#elif (Yaji_Select==C7RVN273H0W)
-		 #define Pole_Pairs                     (3)                                      // 极对数
-		 #define RS                             (0.381)                                   // (H) D轴电感0.5
-		 #define LQ                             (0.00579)                                 // (H) Q轴电感  0.5
-		 #define LD                             (0.00579)                                 // (Ω) 相电阻
-		 #define Ke                             (58.70)                                   // (V/KRPM) 反电动势常数
-	#elif (Yaji_Select==CD081ZA02)
-		 #define Pole_Pairs                     (3)                                      // 极对数
-		 #define RS                             (0.0925)                                   // (H) D轴电感0.5
-		 #define LQ                             (0.0028)                                 // (H) Q轴电感  0.5
-		 #define LD                             (0.0028)                                 // (Ω) 相电阻
-		 #define Ke                             (48.57)                                   // (V/KRPM) 反电动势常数 
-		 
-#elif (Yaji_Select==other)
-		 #define Pole_Pairs                     (2)                                      // 极对数
-		 #define RS                             (0.5)                                   // (H) D轴电感0.5
-		 #define LQ                             (0.004)                                 // (H) Q轴电感  0.5
-		 #define LD                             (0.004)                                 // (Ω) 相电阻
-		 #define Ke                             (38.3)                                   // (V/KRPM) 反电动势常数 
- #endif
- #define Psi                            (float)(Ke * 207.84 / 1000.0 / 2.0 / 1.732 / Pole_Pairs / _2PI )
- #define ID_Limit                       I_Value(-Psi/LD/2)                       
- 
- #define MOTOR_SPEED_BASE               (12000.0)                                // (RPM) 速度基准
-
-
-
-/*硬件板子参数设置值------------------------------------------------------------*/
- /*PWM high or low level Mode*/
- /*根据驱动芯片的类型选择,大部分芯片为High_Level*/                        
- #define PWM_Level_Mode                 (High_Level)
-
-/**
- * Reference voltage setting
- * @param (VREF3_0)       Reference voltage set to 3.0V
- * @param (VREF4_0)       Reference voltage set to 4.0V
- * @param (VREF4_5)       Reference voltage set to 4.5V
- * @param (VREF5_0)       Reference voltage set to 5.0V
- */
-
-#define HW_ADC_VREF                    (VREF5_0)             
-
-/**
- * Base voltage VREF external output enable
- * @param (Disable)       
- * @param (Enable)       
- */
-#define VREF_OUT_EN                    (Enable)   
-
-/**
- * VHALF output enable
- * @param (Disable)      
- * @param (Enable)        
- */
-#define VHALF_OUT_EN                   (Enable) 
-
-/**
- * @breaf  运放模式选择
- * @param (AMP_NOMAL)       外部放大
- * @param (AMP_PGA_DUAL)    内部PGA双端差分输入(放大倍数的标定外部引脚串1kΩ电阻)
- */
- #define HW_AMP_MODE                     (AMP_NOMAL)  ///< 运放模式选择 
-
-/**
- * 放大倍数设置
- * @param (AMP2x)       内部PGA放大2倍
- * @param (AMP4x)       内部PGA放大4倍
- * @param (AMP8x)       内部PGA放大8倍
- * @param (AMP16x)      内部PGA放大16倍
- * @param (xxxxxx)      外部放大模式填写相应倍数
- */
- /*电机电流采样相关硬件参数*/
- #define HW_RSHUNT                      (0.04)                                  // (Ω)  采样电阻
- #define HW_ADC_REF                     (5.0)                                   // (V)  ADC参考电压  //5.0
- #define HW_ADC_REF_HALF                (2.5)                                   // (V)  ADC参考电压  //5.0
- #define HW_AMPGAIN                     (0.5)                                   // 运放放大倍数      //10.0
-
- /*电机驱动母线电压采样相关硬件参数*/
- #define RV1                            (940.0)                               	 // (kΩ) 母线电压分压电阻1
- #define RV2                            (940.0)                                	 // (kΩ) 母线电压分压电阻2
- #define RV3                            (0.3)                                 	 // (kΩ) 母线电压分压电阻3
- #define VC1                            (1.0)                                    // 电压补偿系数
-// #define RV                             ((RV1 + RV2 + RV3) / RV3)                // 分压比    
- #define RV                             (250.7 / 1.0)                // 分压比     ((RV1 + RV2 + RV3) / RV3/8/7.5*2.4)  
- 
- #define HW_BOARD_VOLT_MAX              (HW_ADC_REF * RV)                        // (V)  ADC可测得的最大母线电压  
- 
- #define RL1                            (450.0)                               	 // (kΩ) 母线电压分压电阻1
- #define RL2                            (2.0)                                	 // (kΩ) 母线电压分压电阻2
- #define RL                             ((RL1 + RL2) / RL2)                // 分压比    
- #define HW_L_VOLT_MAX                  (HW_ADC_REF * RL)                        // (V)  ADC可测得的最大母线电压  
- 
- 
- #define Udcmax_ms                      (20.0* PWM_FREQUENCY )                       //  60*ms读取一次UDC最大值和最小值         
+////// ------------ 文件规范化 -------------------------------
+// 1.电机相关参数: 电阻(Ω) DQ电感(H) 反电动势常数(V/RPM)  转向(CW/CCW) 基准转速(RPM) 极对数
+#define RS                             (0.5)
+#define LD                             (0.004)
+#define LQ                             (0.004)
+#define Ke                             (38.3)
+#define Psi                            (float)(Ke * 207.84 / 1000.0 / 2.0 / 1.732 / Pole_Pairs / _2PI )
+#define IRMODE                         (CCW)
+#define MOTOR_SPEED_BASE               (12000.0)
+#define Pole_Pairs                     (2)
+
+
+#define ID_Limit                       I_Value(-Psi/LD/2)
+
+// 2.硬件相关:载波频率(KHz) 死区(us) 单电阻最小窗口(us) 驱动电平 基准电压(V) 
+#define PWM_FREQUENCY                  (5.0)
+#define PWM_DEADTIME                   (5.0)
+#define MIN_WIND_TIME                  (5.9)
+#define PWM_Level_Mode                 (High_Level)
+#define HW_ADC_VREF                    (VREF5_0)
+// ADC相关滤波使能 运放配置 运放倍数
+#define VREF_OUT_EN                    (1)
+#define VHALF_OUT_EN                   (1)
+#define HW_AMP_MODE                    (AMP_PGA_DUAL)
+#define HW_AMPGAIN                     (AMP2x)
+
+
+
+
+#define I_ValueX(Curr_Value)            (Curr_Value * HW_RSHUNT * HW_AMPGAIN / (HW_ADC_REF))
+#define I_Value(Curr_Value)             _Q15(I_ValueX(Curr_Value))
+
+#define MCU_CLOCK                      (24.0)                                  // (MHz) 主频
+
+
+#define HW_RSHUNT                      (0.04)                                  // (Ω)  采样电阻
+#define HW_ADC_REF                     (5.0)                                   // (V)  ADC参考电压  //5.0
+#define HW_ADC_REF_HALF                (2.5)                                   // (V)  ADC参考电压  //5.0
+
+#define RV1                            (940.0)                                  // (kΩ) 母线电压分压电阻1
+#define RV2                            (940.0)                                  // (kΩ) 母线电压分压电阻2
+#define RV3                            (0.3)                                    // (kΩ) 母线电压分压电阻3
+#define VC1                            (1.0)                                    // 电压补偿系数
+// #define RV                             ((RV1 + RV2 + RV3) / RV3)                // 分压比
+#define RV                             (250.7 / 1.0)                // 分压比     ((RV1 + RV2 + RV3) / RV3/8/7.5*2.4)  
+
+#define HW_BOARD_VOLT_MAX              (HW_ADC_REF * RV)                        // (V)  ADC可测得的最大母线电压  
+
+#define RL1                            (450.0)                                  // (kΩ) 母线电压分压电阻1
+#define RL2                            (2.0)                                    // (kΩ) 母线电压分压电阻2
+#define RL                             ((RL1 + RL2) / RL2)                // 分压比    
+#define HW_L_VOLT_MAX                  (HW_ADC_REF * RL)                        // (V)  ADC可测得的最大母线电压  
+
+
+#define Udcmax_ms                      (20.0* PWM_FREQUENCY )                       //  60*ms读取一次UDC最大值和最小值         
 
 /*电流偏执采样时间设置-------------------------------------------------------------------*/
- #define Calib_Time                     (1000)                                  // 校正次数,固定1000次,单位:次
- 
- /*预充电设置值-------------------------------------------------------------------*/
- #define Charge_Time                    (100) //30                              // (ms) 预充电时间,单位:ms
- #define Calib_Duty                     (0.1)                                   // 预充电占空比
- 
- 
+#define Calib_Time                     (1000)                                  // 校正次数,固定1000次,单位:次
+
+/*预充电设置值-------------------------------------------------------------------*/
+#define Charge_Time                    (100) //30                              // (ms) 预充电时间,单位:ms
+#define Calib_Duty                     (0.1)                                   // 预充电占空比
+
+
 /*正常运行时估算算法的参数设置值-------------------------------------------------*/
- #define OBS_KSLIDE                     _Q15(0.85)  //0.65                     // SMO算法里的滑膜增益值
- #define E_BW1                          (80.0)                                 // PLL算法里的反电动势滤波值
- #define E_BW2                          (80.0)                                 // PLL算法里的反电动势滤波值
- #define E_BW3                          (80.0)                                 // PLL算法里的反电动势滤波值
- #define E_BW4                          (80.0)                                 // PLL算法里的反电动势滤波值
- #define E_BW5                          (80.0)                                 // PLL算法里的反电动势滤波值
+#define OBS_KSLIDE                     _Q15(0.85)  //0.65                     // SMO算法里的滑膜增益值
+#define E_BW1                          (80.0)                                 // PLL算法里的反电动势滤波值
+#define E_BW2                          (80.0)                                 // PLL算法里的反电动势滤波值
+#define E_BW3                          (80.0)                                 // PLL算法里的反电动势滤波值
+#define E_BW4                          (80.0)                                 // PLL算法里的反电动势滤波值
+#define E_BW5                          (80.0)                                 // PLL算法里的反电动势滤波值
 
- /*启动参数参数值----------------------------------------------------------------*/
- /*********** RPD parameter ***********/
- /******* 初始位置检查参数 **********/
- #define AlignTestMode                  (0)                                     // 预定位测试模式
+/*启动参数参数值----------------------------------------------------------------*/
+/*********** RPD parameter ***********/
+/******* 初始位置检查参数 **********/
+#define AlignTestMode                  (0)                                     // 预定位测试模式
 
 
- /***预定位的Kp、Ki****/
- #define DQKP_Alignment                 _Q12(5.0)                               // 预定位的KP
- #define DQKI_Alignment                 _Q15(0.01)                              // 预定位的KI
+/***预定位的Kp、Ki****/
+#define DQKP_Alignment                 _Q12(5.0)                               // 预定位的KP
+#define DQKI_Alignment                 _Q15(0.01)                              // 预定位的KI
 
 #define  IQ_Align_CURRENT               I_Value(0.0)                             /* (A)  D轴定位电流 */
 #define  ID_Align_CURRENT_Start         I_Value(15.0)                             /* (A)  Q轴定位初始电流 */
@@ -292,268 +91,228 @@
 #define  Align_Angle2                   _Q15((float)90.0 / 180.0)                   /* 定位角度2,二次预定位 */
 #define  Align_Start                    (Align_Angle2 - _Q15((float)30.0 / 180.0))  /* 启动角度 */
 
- #define AlignmentRampTime               (500.0)                                  /* (ms) 预定位电流爬坡时间 */
- #define AlignmentHoldTime1              (500.0)                                  /* (ms) 预定位电流保持时间 */
- #define AlignmentHoldTime2              (500.0)                                  /* (ms) 预定位电流保持时间 */
- #define Align_Time                      (AlignmentRampTime + AlignmentHoldTime1+AlignmentHoldTime2)
-
- /***启动电流****/
- #define ID_Start_CURRENT               I_Value(0.0)                            // (A) D轴启动电流
- #define IQ_Start_CURRENT               I_Value(25.0)                            // (A) Q轴启动电流
- #define IQ_Start_CURRENT2              I_Value(25.0)                            // (A) Q轴启动电流
-
- /***运行电流****/
- #define ID_RUN_CURRENT                 I_Value(0.0)                            // (A) D轴运行电流
- #define IQ_RUN_CURRENT                 I_Value(1.5)                            // (A) Q轴运行电流
- #define Start_FOC_THECOMP              _Q15(10.0/180.0)                        //启动补偿角度
-
- /*************Omega启动的参数***************/
- #define ATO_BW                         (120.0)                               // 观测器带宽的滤波值,经典值为1.0-200.0
- #define ATO_BW_RUN                     (130.0) 
- #define ATO_BW_RUN1                    (140.0)  
- #define ATO_BW_RUN2                    (150.0)  
- #define ATO_BW_RUN3                    (160.0)  
- #define ATO_BW_RUN4                    (190.0)  
- 
-	
- #define SPD_BW                         (25.0)                                   // 速度带宽的滤波值,经典值为5.0-40.0
- #define ATT_COEF                       (0.95)                                  // 无需改动
+#define AlignmentRampTime               (500.0)                                  /* (ms) 预定位电流爬坡时间 */
+#define AlignmentHoldTime1              (500.0)                                  /* (ms) 预定位电流保持时间 */
+#define AlignmentHoldTime2              (500.0)                                  /* (ms) 预定位电流保持时间 */
+#define Align_Time                      (AlignmentRampTime + AlignmentHoldTime1+AlignmentHoldTime2)
+
+/***启动电流****/
+#define ID_Start_CURRENT               I_Value(0.0)                            // (A) D轴启动电流
+#define IQ_Start_CURRENT               I_Value(25.0)                            // (A) Q轴启动电流
+#define IQ_Start_CURRENT2              I_Value(25.0)                            // (A) Q轴启动电流
+
+/***运行电流****/
+#define ID_RUN_CURRENT                 I_Value(0.0)                            // (A) D轴运行电流
+#define IQ_RUN_CURRENT                 I_Value(1.5)                            // (A) Q轴运行电流
+#define Start_FOC_THECOMP              _Q15(10.0/180.0)                        //启动补偿角度
+
+/*************Omega启动的参数***************/
+#define ATO_BW                         (120.0)                               // 观测器带宽的滤波值,经典值为1.0-200.0
+#define ATO_BW_RUN                     (130.0)
+#define ATO_BW_RUN1                    (140.0)
+#define ATO_BW_RUN2                    (150.0)
+#define ATO_BW_RUN3                    (160.0)
+#define ATO_BW_RUN4                    (190.0)
+
+
+#define SPD_BW                         (25.0)                                   // 速度带宽的滤波值,经典值为5.0-40.0
+#define ATT_COEF                       (0.95)                                  // 无需改动
 /*转速参数值-------------------------------------------------------------------*/
- /* motor start speed value */
- //open 算法启动参数
- #define MOTOR_OPEN_ACC                 (1.0)  //30.0                                // 强拖启动的增量(每载波周期加一次)
- #define MOTOR_OPEN_ACC_MIN             (100.0)    //20.0                           // 强拖启动的初始速度
- #define MOTOR_OPEN_ACC_CNT             (250.0)     //100.0                    // 强拖启动的执行次数(MOTOR_OPEN_ACC_CNT*256)
- #define MOTOR_OPEN_ACC_CYCLE           (100)           //5             // 强拖启动循环拖动的次数
-
- //OMEGA启动参数
- #define Motor_Omega_Ramp_ACC           (300.0) //(50.00) //5.0  //60                                // omega启动的增量   12
- #define MOTOR_OMEGA_ACC_MIN            (200.0) //(800.0) //20.0 //100                                // (RPM) omega启动的最小切换转速
- #define MOTOR_OMEGA_ACC_END            (400.0)   //50.0                               // (RPM) omega启动的限制转速
-
- /* motor loop control speed value */
- #define MOTOR_LOOP_RPM                 (500.0)  //(450.0) //20.0  //200                               // (RPM) 由mode 0到mode1切换转速,即闭环切换转速
-
- /* motor run speed value */
- //电机运行时最大最小转速、堵转保护转速
- #define MOTOR_SPEED_SMOMIN_RPM         (400.0)   //60.0                             	// (RPM) SMO运行最小转速
- #define MOTOR_SPEED_MIN_RPM            (900.0)  //100.0                             	// (RPM) 运行最小转速
- #define MOTOR_SPEED_MAX_RPM            (5400.0) //4000 //8000                              // (RPM) 运行最大转速
- #define MOTOR_SPEED_STAL_MAX_RPM       (7000.0) //(6000.0)                               // (RPM) 堵转保护转速
- #define MOTOR_SPEED_STAL_MIN_RPM       (800.0) //(200.0)
-
- #define MOTOR_SPEED_STOP_RPM           (1300.0)                                  // (RPM) 运行最小转速
-
-
- /*******运行时的参数*****************/
- /*电流环参数设置值--------------------------------------------------------------*/
-       /*启动*/
- #define DQKPStart                      _Q12(4.0)  //1.1                             
- #define DQKIStart                      _Q15(0.0081) //0.01                             
-       /*低速*/
- #define DQKP                           _Q12(2.0)  //带载时5.0                            
- #define DQKI                           _Q15(0.002)  //此值不能太大,大了后影响低速性能(与转矩补偿冲突) 
-       /*中速*/
- #define DQKP_zhong                     _Q12(1.5)  //带载时5.0                            
- #define DQKI_zhong                     _Q15(0.002)  //      
-       /*高速*/
- #define DQKP_highspeed                 _Q12(1.5)  //4.0  切换时易导致转速波动                            
- #define DQKI_highspeed                 _Q15(0.002)  //0.02  0.011                          
- 
- /* D轴参数设置 */
- #define DOUTMAX                        _Q15(0.95)   //0.9                            // D轴最大限幅值,单位:输出占空比
- #define DOUTMIN                        _Q15(-0.95)  //-0.9 
- /* Q轴参数设置,默认0.99即可 */
- #define QOUTMAX                        _Q15(0.99)                              // Q轴最大限幅值,单位:输出占空比
- #define QOUTMIN                        _Q15(-0.99)                             // Q轴最小限幅值,单位:输出占空比
- #define QOUTINC                        (1)  //25                                  // Q轴电流增大步进值,开环控制时有效
-
- /*外环参数设置值----------------------------------------------------------------*/                            
- #define SPEED_LOOP_TIME                (1)  //2                                  // (ms) 速度环调节周期 SPEED_INC_DEC_TIME
- #define WEAK_LOOP_TIME                 (1)  //2                                  // (ms) 速度环调节周期 SPEED_INC_DEC_TIME
- #define SPEED_INC_DEC_TIME             (200)                                    // (ms) 速度环爬坡周期
- 
-         /*启动*/
-// #define SKP                            _Q12(0.25)  //0.25                            // 外环KP
-// #define SKI                            _Q15(0.00151) //0.00051
-//         /*低速*/
-// #define SKPRun                         _Q12(0.35)         //0.35                                 // 外环KP
-// #define SKIRun                         _Q15(0.010)    //0.011                                      // 外环KI    0.01 ,影响转矩补偿
-//         /*中速*/
-// #define SKPRun1                        _Q12(0.34)//0.35  太大高速时波动,太小
-// #define SKIRun1                        _Q15(0.008) //0.0008   
-//         /*高速*/
-// #define SKPRun2                        _Q12(0.3)//0.35  太大高速时波动,太小
-// #define SKIRun2                        _Q15(0.002) //0.0008  // 外环KI    0.01 
-//         /*启动*/
- #define SKP                            _Q12(0.65)  //0.25                            // 外环KP
- #define SKI                            _Q15(0.010) //0.00251
-         /*低速*/
- #define SKPRun                         _Q12(0.45)         //0.35                                 // 外环KP
- #define SKIRun                         _Q15(0.03)    //0.03                                      // 外环KI    0.01 ,影响转矩补偿
-         /*中速*/
- #define SKPRun1                        _Q12(0.30)//0.2  太大高速时波动,太小
- #define SKIRun1                        _Q15(0.01) //0.0005   
-         /*高速*/
- #define SKPRun2                        _Q12(0.30)//0.15  太大高速时波动,太小
- #define SKIRun2                        _Q15(0.01) //0.0002  // 外环KI  
-
- #define SOUTMAX                        I_Value(60.0)  //7.0  //16                       // (A) 外环最大限幅值
- #define SOUTMIN                        I_Value(0.0)  //0.02                         // (A) 外环最小限幅值
- 
- #define I_OVER                         I_Value(78.0) //   降频点  超过此值降频率
- #define I_LIMIT                        I_Value(77.0) //   限制电流值 
- #define P_OVER                         P_Power(15180) //   降频点  超过此值降频率
- #define P_LIMIT                        P_Power(15150) //   限制功率值 
- 
- 
-  /*外环增量*/
- #define SPEED_INC_Start                (200.0)	
- #define SPEED_INC                      (200.0) //150                                // 速度环增量
- #define SPEED_DEC                      (200.0) //150                                // 速度环减量
- #define SPEED_DEC1                     (800.0) //150                              // 速度环减量  停机时使用
- #define SpeedRampStartInc              (S_Value(SPEED_INC_Start))/(1000/SPEED_INC_DEC_TIME)
- #define Motor_Speed_Inc               	(S_Value(SPEED_INC))      /(1000/(SPEED_LOOP_TIME*20.0))		
- #define Motor_Speed_Dec               	(S_Value(SPEED_DEC))      /(1000/(SPEED_LOOP_TIME*20.0))
- #define Motor_Speed_Dec1               (S_Value(SPEED_DEC1))     /(1000/SPEED_INC_DEC_TIME) 
-
- 
- #define MotorStartHoldTime			  			(15000)                                 //上油时间  15000
- #define MotorStartSpeed						    (2700)                                  //上油转速
- #define Motor_Start_Hold_Speed         _Q15(MotorStartSpeed / MOTOR_SPEED_BASE)
- 
- 
- /*外环使能*/
- #define OUTLoop_Disable                (0)                                     // 关闭外环
- #define OUTLoop_Enable                 (1)                                     // 使能外环
- #define OUTLoop_Mode                   (OUTLoop_Enable)
-
- /*外环选择功率环或速度环*/
- #define POWER_LOOP_CONTROL             (0)                                     //恒功率
- #define SPEED_LOOP_CONTROL             (1)                                     //恒转速
- #define Motor_Speed_Control_Mode       (SPEED_LOOP_CONTROL)
-
- //调速模式
- #define UARTMODE                       (0)                                     // 模拟调速
- #define NONEMODE                       (1)                                     // 直接给定值,不调速
- #define SPEED_MODE                     (UARTMODE)
-
- /*估算器模式选择*/
- #define SMO                            (0)                                     // SMO ,滑膜估算
- #define PLL                            (1)                                     // PLL ,锁相环
- #define AO                             (2)                                     // PLL ,锁相环
- #define EstimateAlgorithm              (AO)
-
-
-
- /*开环启动模式选择*/
- #define Open_Start                     (0)                                     // 开环强拖启动
- #define Omega_Start                    (1)                                     // Omega启动
- #define Open_Omega_Start               (2)                                     // 先开环启,后Omega启动
- #define Open_Start_Mode                (Omega_Start)
-
- /*电流采样模式*/
- #define Single_Resistor                (0)                                     // 单电阻电流采样模式
- #define Double_Resistor                (1)                                     // 双电阻电流采样模式
- #define Three_Resistor                 (2)                                     // 三电阻电流采样模式
- #define Shunt_Resistor_Mode            (Double_Resistor)
-
- 
-
- #define OverModulation                 (0)                                     // 0-禁止过调制,1-使能过调制
- #define IRMODE                         (1)                                     // 正反转模式,正转为0,反转为1
-
-
- #define StopBrakeFlag                  (0)
- #define StopWaitTime                   (2000)                                  // (ms) 刹车等待时间
-
- 
- 
-
-
-  /* -----弱磁使能位----- */
- #define FiledWeakenCompEnable		      (0)										                   // 弱磁使能; 1:使能,0:关闭
- /* -----弱磁电压比例系数----- */
- #define DcbusK                         _Q15(0.8)//(90)                                    // 如果进不了弱磁可以把该系数改小些  100对应1
- /* -----弱磁电压环参数----- */
- #define FiledWeakenKp                 _Q12(0.4)  //0.4 
- #define FiledWeakenKi                 _Q15(0.0001)  //0.0001
- 
-   /* -----风机控制参数----- */
- #define FENG_SPEED_LOOP_TIME            (20)               //风机控制周期 
- #define fengSKP                         _Q12(1.0)        //0.25           高低速分档
- #define fengSKI                         _Q15(0.01)       //0.00051
- #define TIM_3_T                         (1000)            //  time3   周期值  
- 
- #define TIM_4_T                         (375000)          //定时器4频率
- #define TIM_4_T_Pole_Pairs              (4)                //风机脉冲数  
- #define TIM_4_fengji_speedxishu         ((60*TIM_4_T)/TIM_4_T_Pole_Pairs)         //60f/p
- 
- 
- /*膨胀阀控制*/
- #define Pengzhangfa_CW                  (1)           //换相顺序,0:正序。1:反序
- #define Pengzhangfa_Contro_Mode         (0)           //控制逻辑,0:指令连续。1:指令不连续
- #define valvemotorsudu                  (30)          //电子膨胀阀换相时间ms
- #define valvemotorstime                 (500)         //电子膨胀阀停留时间ms
-
- 
- 
- 
-  /* -----温度采集参数----- */
-	/* -----温度传感器1_高温检测排气----- */
- #define TEMP1_R_PU                     (0)        //上拉电阻
- #define TEMP1_R_PD                     (10000)    //下拉电阻
- #define TEMP1_R_Base                   (50000)     //25度时NTC阻值
- #define TEMP1_B                        (3950)     //热敏系数
- #define TEMP1_T25                      (298.15)   //固定 25.0+273.15
- /* -----温度传感器2_盘管检测----- */
- #define TEMP2_R_PU                     (0)        //上拉电阻
- #define TEMP2_R_PD                     (5100)     //下拉电阻
- #define TEMP2_R_Base                   (5000)     //25度时NTC阻值
- #define TEMP2_B                        (3470)     //热敏系数
- #define TEMP2_T25                      (298.15)   //固定 25.0+273.15
- /* -----温度传感器3_环境检测----- */
- #define TEMP3_R_PU                     (0)        //上拉电阻
- #define TEMP3_R_PD                     (5100)     //下拉电阻
- #define TEMP3_R_Base                   (5000)     //25度时NTC阻值
- #define TEMP3_B                        (3470)     //热敏系数
- #define TEMP3_T25                      (298.15)   //固定 25.0+273.15
- /* -----温度传感器4_未使用----- */
- #define TEMP4_R_PU                     (0)        //上拉电阻
- #define TEMP4_R_PD                     (10000)     //下拉电阻
- #define TEMP4_R_Base                   (20000)    //25度时NTC阻值
- #define TEMP4_B                        (3950)     //热敏系数
- #define TEMP4_T25                      (298.15)   //固定 25.0+273.15
- 
- 
- #define Uart_MoNi                      (0)      //模拟串口
- #define Uart_Yingjian                  (1)      //硬件串口
- #define Uart_Select                    (Uart_Yingjian)    //  通信模式选择,380bps及其选择软件,否则硬件 
- 
- 
- #define Uart_COMMUNICATION             (1)    //  通信协议    0:格力   1;月兔
- 
- 
+/* motor start speed value */
+//open 算法启动参数
+#define MOTOR_OPEN_ACC                 (1.0)  //30.0                                // 强拖启动的增量(每载波周期加一次)
+#define MOTOR_OPEN_ACC_MIN             (100.0)    //20.0                           // 强拖启动的初始速度
+#define MOTOR_OPEN_ACC_CNT             (250.0)     //100.0                    // 强拖启动的执行次数(MOTOR_OPEN_ACC_CNT*256)
+#define MOTOR_OPEN_ACC_CYCLE           (100)           //5             // 强拖启动循环拖动的次数
+
+//OMEGA启动参数
+#define Motor_Omega_Ramp_ACC           (300.0) //(50.00) //5.0  //60                                // omega启动的增量   12
+#define MOTOR_OMEGA_ACC_MIN            (200.0) //(800.0) //20.0 //100                                // (RPM) omega启动的最小切换转速
+#define MOTOR_OMEGA_ACC_END            (400.0)   //50.0                               // (RPM) omega启动的限制转速
+
+/* motor loop control speed value */
+#define MOTOR_LOOP_RPM                 (500.0)  //(450.0) //20.0  //200                               // (RPM) 由mode 0到mode1切换转速,即闭环切换转速
+
+/* motor run speed value */
+//电机运行时最大最小转速、堵转保护转速
+#define MOTOR_SPEED_SMOMIN_RPM         (400.0)   //60.0                                // (RPM) SMO运行最小转速
+#define MOTOR_SPEED_MIN_RPM            (900.0)  //100.0                                // (RPM) 运行最小转速
+#define MOTOR_SPEED_MAX_RPM            (5400.0) //4000 //8000                              // (RPM) 运行最大转速
+#define MOTOR_SPEED_STAL_MAX_RPM       (7000.0) //(6000.0)                               // (RPM) 堵转保护转速
+#define MOTOR_SPEED_STAL_MIN_RPM       (800.0) //(200.0)
+
+#define MOTOR_SPEED_STOP_RPM           (1300.0)                                  // (RPM) 运行最小转速
+
+
+/*******运行时的参数*****************/
+/*电流环参数设置值--------------------------------------------------------------*/
+/*启动*/
+#define DQKPStart                      _Q12(4.0)  //1.1                             
+#define DQKIStart                      _Q15(0.0081) //0.01                             
+/*低速*/
+#define DQKP                           _Q12(2.0)  //带载时5.0                            
+#define DQKI                           _Q15(0.002)  //此值不能太大,大了后影响低速性能(与转矩补偿冲突) 
+/*中速*/
+#define DQKP_zhong                     _Q12(1.5)  //带载时5.0                            
+#define DQKI_zhong                     _Q15(0.002)  //      
+/*高速*/
+#define DQKP_highspeed                 _Q12(1.5)  //4.0  切换时易导致转速波动                            
+#define DQKI_highspeed                 _Q15(0.002)  //0.02  0.011                          
+
+/* D轴参数设置 */
+#define DOUTMAX                        _Q15(0.95)   //0.9                            // D轴最大限幅值,单位:输出占空比
+#define DOUTMIN                        _Q15(-0.95)  //-0.9 
+/* Q轴参数设置,默认0.99即可 */
+#define QOUTMAX                        _Q15(0.99)                              // Q轴最大限幅值,单位:输出占空比
+#define QOUTMIN                        _Q15(-0.99)                             // Q轴最小限幅值,单位:输出占空比
+#define QOUTINC                        (1)  //25                                  // Q轴电流增大步进值,开环控制时有效
+
+/*外环参数设置值----------------------------------------------------------------*/
+#define SPEED_LOOP_TIME                (1)  //2                                  // (ms) 速度环调节周期 SPEED_INC_DEC_TIME
+#define WEAK_LOOP_TIME                 (1)  //2                                  // (ms) 速度环调节周期 SPEED_INC_DEC_TIME
+#define SPEED_INC_DEC_TIME             (200)                                    // (ms) 速度环爬坡周期
+
+
+/*启动*/
+#define SKP                            _Q12(0.65)  //0.25                            // 外环KP
+#define SKI                            _Q15(0.010) //0.00251
+/*低速*/
+#define SKPRun                         _Q12(0.45)         //0.35                                 // 外环KP
+#define SKIRun                         _Q15(0.03)    //0.03                                      // 外环KI    0.01 ,影响转矩补偿
+/*中速*/
+#define SKPRun1                        _Q12(0.30)//0.2  太大高速时波动,太小
+#define SKIRun1                        _Q15(0.01) //0.0005   
+/*高速*/
+#define SKPRun2                        _Q12(0.30)//0.15  太大高速时波动,太小
+#define SKIRun2                        _Q15(0.01) //0.0002  // 外环KI  
+
+#define SOUTMAX                        I_Value(60.0)  //7.0  //16                       // (A) 外环最大限幅值
+#define SOUTMIN                        I_Value(0.0)  //0.02                         // (A) 外环最小限幅值
+
+#define I_OVER                         I_Value(78.0) //   降频点  超过此值降频率
+#define I_LIMIT                        I_Value(77.0) //   限制电流值 
+#define P_OVER                         P_Power(15180) //   降频点  超过此值降频率
+#define P_LIMIT                        P_Power(15150) //   限制功率值 
+
+
+/*外环增量*/
+#define SPEED_INC_Start                (200.0)
+#define SPEED_INC                      (200.0) //150                                // 速度环增量
+#define SPEED_DEC                      (200.0) //150                                // 速度环减量
+#define SPEED_DEC1                     (800.0) //150                              // 速度环减量  停机时使用
+#define SpeedRampStartInc              (S_Value(SPEED_INC_Start))/(1000/SPEED_INC_DEC_TIME)
+#define Motor_Speed_Inc                (S_Value(SPEED_INC))      /(1000/(SPEED_LOOP_TIME*20.0))
+#define Motor_Speed_Dec                (S_Value(SPEED_DEC))      /(1000/(SPEED_LOOP_TIME*20.0))
+#define Motor_Speed_Dec1               (S_Value(SPEED_DEC1))     /(1000/SPEED_INC_DEC_TIME)
+
+
+#define MotorStartHoldTime                     (15000)                                 //上油时间  15000
+#define MotorStartSpeed                            (2700)                                  //上油转速
+#define Motor_Start_Hold_Speed         _Q15(MotorStartSpeed / MOTOR_SPEED_BASE)
+
+
+/*外环使能*/
+#define OUTLoop_Disable                (0)                                     // 关闭外环
+#define OUTLoop_Enable                 (1)                                     // 使能外环
+#define OUTLoop_Mode                   (OUTLoop_Enable)
+
+/*外环选择功率环或速度环*/
+#define POWER_LOOP_CONTROL             (0)                                     //恒功率
+#define SPEED_LOOP_CONTROL             (1)                                     //恒转速
+#define Motor_Speed_Control_Mode       (SPEED_LOOP_CONTROL)
+
+//调速模式
+#define UARTMODE                       (0)                                     // 模拟调速
+#define NONEMODE                       (1)                                     // 直接给定值,不调速
+#define SPEED_MODE                     (UARTMODE)
+
+/*估算器模式选择*/
+#define SMO                            (0)                                     // SMO ,滑膜估算
+#define PLL                            (1)                                     // PLL ,锁相环
+#define AO                             (2)                                     // PLL ,锁相环
+#define EstimateAlgorithm              (AO)
+
+
+
+/*开环启动模式选择*/
+#define Open_Start                     (0)                                     // 开环强拖启动
+#define Omega_Start                    (1)                                     // Omega启动
+#define Open_Omega_Start               (2)                                     // 先开环启,后Omega启动
+#define Open_Start_Mode                (Omega_Start)
+
+/*电流采样模式*/
+#define Single_Resistor                (0)                                     // 单电阻电流采样模式
+#define Double_Resistor                (1)                                     // 双电阻电流采样模式
+#define Three_Resistor                 (2)                                     // 三电阻电流采样模式
+#define Shunt_Resistor_Mode            (Double_Resistor)
+
+
+
+#define OverModulation                 (0)                                     // 0-禁止过调制,1-使能过调制
+
+
+#define StopBrakeFlag                  (0)
+#define StopWaitTime                   (2000)                                  // (ms) 刹车等待时间
+
+
+
+/* -----弱磁使能位----- */
+#define FiledWeakenCompEnable            (0)                                                          // 弱磁使能; 1:使能,0:关闭
+/* -----弱磁电压比例系数----- */
+#define DcbusK                         _Q15(0.8)//(90)                                    // 如果进不了弱磁可以把该系数改小些  100对应1
+/* -----弱磁电压环参数----- */
+#define FiledWeakenKp                 _Q12(0.4)  //0.4 
+#define FiledWeakenKi                 _Q15(0.0001)  //0.0001
+
+/* -----风机控制参数----- */
+#define FENG_SPEED_LOOP_TIME            (20)               //风机控制周期 
+#define fengSKP                         _Q12(1.0)        //0.25           高低速分档
+#define fengSKI                         _Q15(0.01)       //0.00051
+#define TIM_3_T                         (1000)            //  time3   周期值  
+
+#define TIM_4_T                         (375000)          //定时器4频率
+#define TIM_4_T_Pole_Pairs              (4)                //风机脉冲数  
+#define TIM_4_fengji_speedxishu         ((60*TIM_4_T)/TIM_4_T_Pole_Pairs)         //60f/p
+
+
+/*膨胀阀控制*/
+#define Pengzhangfa_CW                  (1)           //换相顺序,0:正序。1:反序
+#define Pengzhangfa_Contro_Mode         (0)           //控制逻辑,0:指令连续。1:指令不连续
+#define valvemotorsudu                  (30)          //电子膨胀阀换相时间ms
+#define valvemotorstime                 (500)         //电子膨胀阀停留时间ms
+
+
+#define Uart_MoNi                      (0)      //模拟串口
+#define Uart_Yingjian                  (1)      //硬件串口
+#define Uart_Select                    (Uart_Yingjian)    //  通信模式选择,380bps及其选择软件,否则硬件 
+
+
+#define Uart_COMMUNICATION             (1)    //  通信协议    0:格力   1;月兔
+
+
+
+
+#define Debugg                         (1)            //  调试工具选择   
+
+#define IFFDebugg                      (0)            //  强拖测试模式 
+#define IF_I_Value                     I_Value(10.0)   //  强拖测试电流
+
+#define VoltageCompensationEn           (0)//电压补偿使能位
+
+#define TempCtrol_Select                (0)//温控逻辑室内or室外  0室内  1室外
+
+
+//电压限频
+#define VAC_Min_F                         900
+#define VAC_Max_F                         900
+
+#define VAC_Min                           _Q15((290.0*1.414) / HW_L_VOLT_MAX)
+#define VAC_Max                           _Q15((360.0*1.414) / HW_L_VOLT_MAX)
+
+#define VAC_Max_K                        ((float)(VAC_Max_F-VAC_Min_F)/(float)(VAC_Max-VAC_Min))
 	
 
- #define Debugg                         (1)            //  调试工具选择   
- 
- #define IFFDebugg                      (0)            //  强拖测试模式 
- #define IF_I_Value                     I_Value(10.0)   //  强拖测试电流
- 
- #define VoltageCompensationEn           (0)//电压补偿使能位
- 
- #define TempCtrol_Select                (0)//温控逻辑室内or室外  0室内  1室外
- 
- 
-    //电压限频
- #define VAC_Min_F                         900                           
- #define VAC_Max_F                         900                                                          
-
- #define VAC_Min                           _Q15((290.0*1.414) / HW_L_VOLT_MAX)                
- #define VAC_Max                           _Q15((360.0*1.414) / HW_L_VOLT_MAX)                                    
- 
- #define VAC_Max_K                        ((float)(VAC_Max_F-VAC_Min_F)/(float)(VAC_Max-VAC_Min))
- 
+
+
 
 #endif

+ 0 - 24
User/source/Function/BEMFDetect.c

@@ -1,24 +0,0 @@
-/********************************************************************************
-
- **** Copyright (C), 2020, Fortior Technology Co., Ltd.                      ****
-
- ********************************************************************************
-    File Name     : BEMFDetect.c
-    Author        : Bruce HW&RD
-    Date          : 2020-10-15
-    Description   : .C file function description
-    Version       : 1.0
-    Function List :
-
-    Record        :
-    1.Date        : 2020-10-15
-     Author      : Bruce HW&RD
-     Modification: Created file
-
-********************************************************************************/
-
-#include "BEMFDetect.h"
-#include <Myproject.h>
-
-
-

+ 0 - 24
User/source/Function/FOCTailDect.c

@@ -1,24 +0,0 @@
-/********************************************************************************
-
- **** Copyright (C), 2018, Fortior Technology Co., Ltd.                      ****
-
- ********************************************************************************
-    File Name     : FOCTailDect.c
-    Author        : Bruce HW&RD
-    Date          : 2018-12-27
-    Description   : .C file function description
-    Version       : 1.0
-    Function List :
-
-    Record        :
-    1.Date        : 2018-12-27
-     Author      : Bruce HW&RD
-     Modification: Created file
-
-********************************************************************************/
-
-#include "FOCTailDect.h"
-#include <Myproject.h>
-
-
-//MotorTailWindTypeDef xdata  TailWindDetect;

+ 0 - 20
User/source/Function/RSDDetect.c

@@ -1,20 +0,0 @@
-/**************************** (C) COPYRIGHT 2018 Fortiortech shenzhen *****************************
-    File Name          : RSDDetect.c
-    Author             : Bruce,Fortiortech  RD
-    Version            : V1.0
-    Date               : 2018-07-01
-    Description        : This file contains init speed detection used for Motor Control.
-***************************************************************************************************
-    All Rights Reserved
-**************************************************************************************************/
-
-
-/* Includes -------------------------------------------------------------------------------------*/
-#include "RSDDetect.h"
-#include <Myproject.h>
-#include <FU68xx_5_MDU.h>
-
-
-
-
-

+ 0 - 28
User/source/Function/VoltageCompensation.h

@@ -1,28 +0,0 @@
-#ifndef __VoltageCompensation_H_
-#define __VoltageCompensation_H_
-
-typedef struct
-{
-    uint16 mcDcbusFlt1; // ????
-    uint16 AverageVoltageValue; // ????
-    uint32 mcDcbusFlt2Sum;
-    uint16 mcDcbusFlt2cnt;
-    
-    uint16 cpscnt;
-    
-    uint16 Uqcps;
-    uint16 Udcps;
-    uint16 testUq;
-    uint16 testUq1;
-    uint16 testUq2;
-    uint16 testUq3;
-    int16 testUq4;
-} VOLCOMP;
-
-
-extern VOLCOMP idata VoltageComp;
-
-extern void VoltageCompensation(void);   //VoltageCompensationEn????
-extern void BusAverageVoltage(void);              //VoltageCompensationEn????
-
-#endif

+ 0 - 1212
User/source/Function/commution.c

@@ -1,1212 +0,0 @@
-/**
-    @file     commution.c
-    @version  V1.0.0
-    @author   jaise
-    @date     2023-8-16 09:33:55
-    @brief    This file contains ...
-
-    @copyright Copyright(C) 2022 Fortior Technology Co., Ltd. All rights reserved.
-*/
-
-//#include “FU6815.h"
-
-#include <MyProject.h>
-
-MCUART    xdata  Uart;
-//发送数据
-ddatet00  xdata  Uart_DATA00;
-ddatet01  xdata  Uart_DATA01;
-ddatet02  xdata  Uart_DATA02;
-ddatet03  xdata  Uart_DATA03;
-ddatet04  xdata  Uart_DATA04;
-ddatet05  xdata  Uart_DATA05;
-ddatet06  xdata  Uart_DATA06;
-ddatet07  xdata  Uart_DATA07;
-ddatet08  xdata  Uart_DATA08;
-ddatet09  xdata  Uart_DATA09;
-ddatet10  xdata  Uart_DATA10;
-ddatet11  xdata  Uart_DATA11;
-ddatet12  xdata  Uart_DATA12;
-ddatet13  xdata  Uart_DATA13;
-ddatet14  xdata  Uart_DATA14;
-ddatet15  xdata  Uart_DATA15;
-//接收数据
-MCUART_Rec00 xdata Uart_Rec_DATA00;
-MCUART_Rec01 xdata Uart_Rec_DATA01;
-MCUART_Rec02 xdata Uart_Rec_DATA02;
-MCUART_Rec05 xdata Uart_Rec_DATA05;
-MCUART_Rec06 xdata Uart_Rec_DATA06;
-MCUART_Rec09 xdata Uart_Rec_DATA09;
-MCUART_Rec10 xdata Uart_Rec_DATA10;
-MCUART_Rec12 xdata Uart_Rec_DATA12;
-MCUART_Rec13 xdata Uart_Rec_DATA13;
-MCUART_Rec14 xdata Uart_Rec_DATA14;
-MCUART_Recother  xdata Uart_Rec_DATAo;
-
-
-
-
-/*数据接收函数*/
-void UartRecive1(void)
-{
-    //  Uart.uarttimejishu = 0;
-    Uart.UartReadTemp = UT2_DR;       // 读接收数据
-    Uart.R_DATA[Uart.UartReadCnt++] = Uart.UartReadTemp;
-}
-
-/*数据发送函数*/
-void UartSend1(void)
-{
-    if (Uart.TxCnt < (TX_LEN - 1))
-    {
-        Uart.TxCnt++;
-        UT2_DR = Uart.T_DATA[Uart.TxCnt];
-        UT2TB8 = even_or_odd(Uart.T_DATA[Uart.TxCnt], evnodd);
-        Uart.Uart_Recivetime = 0;
-    }
-    
-    //  if(Uart.TxCnt>=(TX_LEN - 1))
-    //  {Uart.Recive_Flag=0;}
-}
-
-////CRC16校验      u16CRC=Common_Func_CRC16_ModBus(&u8SendBuf[0], 3+RegisterNum*2);
-uint16 Common_Func_CRC16_ModBus(uint8 * puchMsg, uint8 usDataLen)
-{
-    uint16 uCRC = 0xffff;//CRC寄存器
-    uint8 num;
-    uint8 x;
-    
-    for (num = 0; num < usDataLen; num++)
-    {
-        uCRC = (*puchMsg++) ^ uCRC;//把数据与16位的CRC寄存器的低8位相异或,结果存放于CRC寄存器。
-        
-        for (x = 0; x < 8; x++)
-        {
-            //循环8次
-            if (uCRC & 0x0001)
-            {
-                //判断最低位为:“1”
-                uCRC = uCRC >> 1;   //先右移
-                uCRC = uCRC ^ 0xA001;   //再与0xA001异或
-            }
-            else
-            {
-                //判断最低位为:“0”
-                uCRC = uCRC >> 1;   //右移
-            }
-        }
-    }
-    
-    return uCRC;//返回CRC校验值 高位在前低位在后
-}
-////BBC校验
-uint8 BBC(uint8 * puchMsg, uint8 usDataLen)
-{
-    uint8 i;
-    uint8 bcc = 0;        // Initial value
-    #if 0
-    
-    while (usDataLen--)
-    {
-        bcc ^= *puchMsg++;
-    }
-    
-    #else
-    
-    for ( i = 0; i < usDataLen; i++ )
-    {
-        bcc += puchMsg[i];        // crc ^= *data;
-    }
-    
-    #endif
-    return bcc;
-}
-/*判断接收数据是否正确*/
-uint8 Modbus_Slave_Receive(void)
-{
-    uint8 u16CRC = 0;
-    
-    if ((Uart.uarttimejishu >= 15 ) && (Uart.UartReadCnt >= 10)) //Uart.uarttime每包数据的间隔
-    {
-        Uart.recive_lenth = Uart.UartReadCnt;
-        Uart.UartReadCnt = 0;
-        u16CRC = Uart.R_DATA[Uart.recive_lenth - 1];//接收到的的校验码
-        
-        if (u16CRC == BBC(&Uart.R_DATA[0], Uart.recive_lenth - 2))
-        {
-            Uart.recive_sussf_falg = 1;
-            Uart.send_start_falg = 1;
-        }
-        else
-        {
-            Uart.recive_sussf_falg = 0;
-        }
-    }
-    
-    return Uart.recive_sussf_falg;
-}
-
-
-
-
-void Uart_Int01(void)
-{
-    //参数清零因为复用问题
-    Uart_DATA00.DATA00 = 0; Uart_DATA01.DATA01 = 0; Uart_DATA02.DATA02 = 0; Uart_DATA03.DATA03 = 0;
-    Uart_DATA04.DATA04 = 0; Uart_DATA05.DATA05 = 0; Uart_DATA06.DATA06 = 0; Uart_DATA07.DATA07 = 0;
-    Uart_DATA08.DATA08 = 0; Uart_DATA09.DATA09 = 0; Uart_DATA10.DATA10 = 0; Uart_DATA11.DATA11 = 0;
-    Uart_DATA12.DATA12 = 0; Uart_DATA13.DATA13 = 0; Uart_DATA14.DATA14 = 0; Uart_DATA15.DATA15 = 0;
-    //第0个数据8位
-    Uart_DATA00.DATA00 = 0;
-    //第1个数据8位
-    Uart_DATA01.bf.DATA0 = 0; //0:变频,1:定频
-    Uart_DATA01.bf.DATA1 = 0; //0:冷暖,1:单冷
-    //  Uart_DATA01.bf.DATA2=0;//预留
-    //  Uart_DATA01.bf.DATA3=0;
-    Uart_DATA01.bf.DATA4 = 0; //通信速度    0001:600 bps  0010:1200bps
-    Uart_DATA01.bf.DATA5 = 1;
-    Uart_DATA01.bf.DATA6 = 0;
-    Uart_DATA01.bf.DATA7 = 0;
-    //第2个数据8位
-    //  Uart_DATA02.DATA02=35;  //外机能力代码 0.1kw/bit
-    //第3个数据8位
-    Uart_DATA03.bf.DATA0 = 0; //电源种类  001 :100~115V  010 :200~240V
-    Uart_DATA03.bf.DATA1 = 0;
-    Uart_DATA03.bf.DATA2 = 0;
-    Uart_DATA03.bf.DATA3 = 1; //供电方式选择   0:内机供电 1:外机供电
-    //  Uart_DATA03.bf.DATA4=0;//预留
-    //  Uart_DATA03.bf.DATA5=0;
-    //  Uart_DATA03.bf.DATA6=0;
-    //  Uart_DATA03.bf.DATA7=0;
-    //第4个数据8位
-    Uart_DATA04.DATA04 = 0;
-    //  Uart_DATA04.bf.DATA0=0;
-    //  Uart_DATA04.bf.DATA1=0;
-    //  Uart_DATA04.bf.DATA2=0;
-    //  Uart_DATA04.bf.DATA3=0;
-    //  Uart_DATA04.bf.DATA4=0;
-    //  Uart_DATA04.bf.DATA5=0;
-    //  Uart_DATA04.bf.DATA6=0;
-    //  Uart_DATA04.bf.DATA7=0;
-    //第5个数据8位
-    Uart_DATA05.DATA05 = 0;
-    //  Uart_DATA05.bf.DATA0=0;
-    //  Uart_DATA05.bf.DATA1=0;
-    //  Uart_DATA05.bf.DATA2=0;
-    //  Uart_DATA05.bf.DATA3=0;
-    //  Uart_DATA05.bf.DATA4=0;
-    //  Uart_DATA05.bf.DATA5=0;
-    //  Uart_DATA05.bf.DATA6=0;
-    //  Uart_DATA05.bf.DATA7=0;
-    //第6个数据8位
-    Uart_DATA06.bf.DATA0 = 0; //风机档数
-    Uart_DATA06.bf.DATA1 = 0;
-    Uart_DATA06.bf.DATA2 = 0;
-    Uart_DATA06.bf.DATA3 = 0; //风机个数  0:单风机  1:双风机
-    Uart_DATA06.bf.DATA4 = 0; //风机种类001 :交流电机  010 :直流电机
-    Uart_DATA06.bf.DATA5 = 0;
-    Uart_DATA06.bf.DATA6 = 0;
-    Uart_DATA06.bf.DATA7 = 0; //出风类型 0:侧出风 1:上出风
-    //第7个数据8位
-    Uart_DATA07.DATA07 = 0;
-    //  Uart_DATA07.bf.DATA0=0;
-    //  Uart_DATA07.bf.DATA1=0;
-    //  Uart_DATA07.bf.DATA2=0;
-    //  Uart_DATA07.bf.DATA3=0;
-    //  Uart_DATA07.bf.DATA4=0;
-    //  Uart_DATA07.bf.DATA5=0;
-    //  Uart_DATA07.bf.DATA6=0;
-    //  Uart_DATA07.bf.DATA7=0;
-    //      //第8个数据8位
-    //  Uart_DATA08.bf.DATA0=0;
-    //  Uart_DATA08.bf.DATA1=0;
-    //  Uart_DATA08.bf.DATA2=0;
-    //  Uart_DATA08.bf.DATA3=0;
-    //  Uart_DATA08.bf.DATA4=0;
-    //  Uart_DATA08.bf.DATA5=0;
-    //  Uart_DATA08.bf.DATA6=0;
-    //  Uart_DATA08.bf.DATA7=0;
-    //      //第9个数据8位
-    //  Uart_DATA09.bf.DATA0=0;
-    //  Uart_DATA09.bf.DATA1=0;
-    //  Uart_DATA09.bf.DATA2=0;
-    //  Uart_DATA09.bf.DATA3=0;
-    //  Uart_DATA09.bf.DATA4=0;
-    //  Uart_DATA09.bf.DATA5=0;
-    //  Uart_DATA09.bf.DATA6=0;
-    //  Uart_DATA09.bf.DATA7=0;
-    //      //第10个数据8位
-    //  Uart_DATA10.bf.DATA0=0;
-    //  Uart_DATA10.bf.DATA1=0;
-    //  Uart_DATA10.bf.DATA2=0;
-    //  Uart_DATA10.bf.DATA3=0;
-    //  Uart_DATA10.bf.DATA4=0;
-    //  Uart_DATA10.bf.DATA5=0;
-    //  Uart_DATA10.bf.DATA6=0;
-    //  Uart_DATA10.bf.DATA7=0;
-    //      //第11个数据8位
-    //  Uart_DATA11.bf.DATA0=0;
-    //  Uart_DATA11.bf.DATA1=0;
-    //  Uart_DATA11.bf.DATA2=0;
-    //  Uart_DATA11.bf.DATA3=0;
-    //  Uart_DATA11.bf.DATA4=0;
-    //  Uart_DATA11.bf.DATA5=0;
-    //  Uart_DATA11.bf.DATA6=0;
-    //  Uart_DATA11.bf.DATA7=0;
-    //      //第12个数据8位
-    //  Uart_DATA12.bf.DATA0=0;
-    //  Uart_DATA12.bf.DATA1=0;
-    //  Uart_DATA12.bf.DATA2=0;
-    //  Uart_DATA12.bf.DATA3=0;
-    //  Uart_DATA12.bf.DATA4=0;
-    //  Uart_DATA12.bf.DATA5=0;
-    //  Uart_DATA12.bf.DATA6=0;
-    //  Uart_DATA12.bf.DATA7=0;
-    //      //第13个数据8位
-    //  Uart_DATA13.bf.DATA0=0;
-    //  Uart_DATA13.bf.DATA1=0;
-    //  Uart_DATA13.bf.DATA2=0;
-    //  Uart_DATA13.bf.DATA3=0;
-    //  Uart_DATA13.bf.DATA4=0;
-    //  Uart_DATA13.bf.DATA5=0;
-    //  Uart_DATA13.bf.DATA6=0;
-    //  Uart_DATA13.bf.DATA7=0;
-    //      //第14个数据8位
-    //  Uart_DATA14.bf.DATA0=0;
-    //  Uart_DATA14.bf.DATA1=0;
-    //  Uart_DATA14.bf.DATA2=0;
-    //  Uart_DATA14.bf.DATA3=0;
-    //  Uart_DATA14.bf.DATA4=0;
-    //  Uart_DATA14.bf.DATA5=0;
-    //  Uart_DATA14.bf.DATA6=0;
-    //  Uart_DATA14.bf.DATA7=0;
-    //      //第15个数据8位
-    //  Uart_DATA15.bf.DATA0=0;
-    //  Uart_DATA15.bf.DATA1=0;
-    //  Uart_DATA15.bf.DATA2=0;
-    //  Uart_DATA15.bf.DATA3=0;
-    //  Uart_DATA15.bf.DATA4=0;
-    //  Uart_DATA15.bf.DATA5=0;
-    //  Uart_DATA15.bf.DATA6=0;
-    //  Uart_DATA15.bf.DATA7=0;
-}
-void Uart_Int02(void)
-{
-    //参数清零因为复用问题
-    Uart_DATA00.DATA00 = 0; Uart_DATA01.DATA01 = 0; Uart_DATA02.DATA02 = 0; Uart_DATA03.DATA03 = 0;
-    Uart_DATA04.DATA04 = 0; Uart_DATA05.DATA05 = 0; Uart_DATA06.DATA06 = 0; Uart_DATA07.DATA07 = 0;
-    Uart_DATA08.DATA08 = 0; Uart_DATA09.DATA09 = 0; Uart_DATA10.DATA10 = 0; Uart_DATA11.DATA11 = 0;
-    Uart_DATA12.DATA12 = 0; Uart_DATA13.DATA13 = 0; Uart_DATA14.DATA14 = 0; Uart_DATA15.DATA15 = 0;
-    //第0个数据8位
-    Uart_DATA00.DATA00 = 0;
-    //  Uart_DATA00.bf.DATA0=0;
-    //  Uart_DATA00.bf.DATA1=0;
-    //  Uart_DATA00.bf.DATA2=0;
-    //  Uart_DATA00.bf.DATA3=0;
-    //  Uart_DATA00.bf.DATA4=0;
-    //  Uart_DATA00.bf.DATA5=0;
-    //  Uart_DATA00.bf.DATA6=0;
-    //  Uart_DATA00.bf.DATA7=0;
-    //第1个数据8位
-    Uart_DATA01.DATA01 = 0;
-    //  Uart_DATA01.bf.DATA0=0;
-    //  Uart_DATA01.bf.DATA1=0;
-    //  Uart_DATA01.bf.DATA2=0;
-    //  Uart_DATA01.bf.DATA3=0;
-    //  Uart_DATA01.bf.DATA4=0;
-    //  Uart_DATA01.bf.DATA5=0;
-    //  Uart_DATA01.bf.DATA6=0;
-    //  Uart_DATA01.bf.DATA7=0;
-    //第2个数据8位
-    Uart_DATA02.DATA02 = 0;
-    //  Uart_DATA02.bf.DATA0=0;
-    //  Uart_DATA02.bf.DATA1=0;
-    //  Uart_DATA02.bf.DATA2=0;
-    //  Uart_DATA02.bf.DATA3=0;
-    //  Uart_DATA02.bf.DATA4=0;
-    //  Uart_DATA02.bf.DATA5=0;
-    //  Uart_DATA02.bf.DATA6=0;
-    //  Uart_DATA02.bf.DATA7=0;
-    //第3个数据8位
-    Uart_DATA03.DATA03 = 0;
-    //  Uart_DATA03.bf.DATA0=0;
-    //  Uart_DATA03.bf.DATA1=0;
-    //  Uart_DATA03.bf.DATA2=0;
-    //  Uart_DATA03.bf.DATA3=0;
-    //  Uart_DATA03.bf.DATA4=0;
-    //  Uart_DATA03.bf.DATA5=0;
-    //  Uart_DATA03.bf.DATA6=0;
-    //  Uart_DATA03.bf.DATA7=0;
-    //第4个数据8位
-    Uart_DATA04.DATA04 = 0;
-    //  Uart_DATA04.bf.DATA0=0;
-    //  Uart_DATA04.bf.DATA1=0;
-    //  Uart_DATA04.bf.DATA2=0;
-    //  Uart_DATA04.bf.DATA3=0;
-    //  Uart_DATA04.bf.DATA4=0;
-    //  Uart_DATA04.bf.DATA5=0;
-    //  Uart_DATA04.bf.DATA6=0;
-    //  Uart_DATA04.bf.DATA7=0;
-    //      //第5个数据8位
-    Uart_DATA05.DATA05 = 0;
-    //  Uart_DATA05.bf.DATA0=0;
-    //  Uart_DATA05.bf.DATA1=0;
-    //  Uart_DATA05.bf.DATA2=0;
-    //  Uart_DATA05.bf.DATA3=0;
-    //  Uart_DATA05.bf.DATA4=0;
-    //  Uart_DATA05.bf.DATA5=0;
-    //  Uart_DATA05.bf.DATA6=0;
-    //  Uart_DATA05.bf.DATA7=0;
-    //      //第6个数据8位
-    Uart_DATA06.DATA06 = 0;
-    //  Uart_DATA06.bf.DATA0=0;
-    //  Uart_DATA06.bf.DATA1=0;
-    //  Uart_DATA06.bf.DATA2=0;
-    //  Uart_DATA06.bf.DATA3=0;
-    //  Uart_DATA06.bf.DATA4=0;
-    //  Uart_DATA06.bf.DATA5=0;
-    //  Uart_DATA06.bf.DATA6=0;
-    //  Uart_DATA06.bf.DATA7=0;
-    //      //第7个数据8位
-    Uart_DATA07.DATA07 = 0;
-    //  Uart_DATA07.bf.DATA0=0;
-    //  Uart_DATA07.bf.DATA1=0;
-    //  Uart_DATA07.bf.DATA2=0;
-    //  Uart_DATA07.bf.DATA3=0;
-    //  Uart_DATA07.bf.DATA4=0;
-    //  Uart_DATA07.bf.DATA5=0;
-    //  Uart_DATA07.bf.DATA6=0;
-    //  Uart_DATA07.bf.DATA7=0;
-    //      //第8个数据8位
-    Uart_DATA08.DATA08 = 0;
-    //  Uart_DATA08.bf.DATA0=0;
-    //  Uart_DATA08.bf.DATA1=0;
-    //  Uart_DATA08.bf.DATA2=0;
-    //  Uart_DATA08.bf.DATA3=0;
-    //  Uart_DATA08.bf.DATA4=0;
-    //  Uart_DATA08.bf.DATA5=0;
-    //  Uart_DATA08.bf.DATA6=0;
-    //  Uart_DATA08.bf.DATA7=0;
-    //      //第9个数据8位
-    Uart_DATA09.DATA09 = 0;
-    //  Uart_DATA09.bf.DATA0=0;
-    //  Uart_DATA09.bf.DATA1=0;
-    //  Uart_DATA09.bf.DATA2=0;
-    //  Uart_DATA09.bf.DATA3=0;
-    //  Uart_DATA09.bf.DATA4=0;
-    //  Uart_DATA09.bf.DATA5=0;
-    //  Uart_DATA09.bf.DATA6=0;
-    //  Uart_DATA09.bf.DATA7=0;
-    //      //第10个数据8位
-    Uart_DATA10.DATA10 = 0;
-    //  Uart_DATA10.bf.DATA0=0;
-    //  Uart_DATA10.bf.DATA1=0;
-    //  Uart_DATA10.bf.DATA2=0;
-    //  Uart_DATA10.bf.DATA3=0;
-    //  Uart_DATA10.bf.DATA4=0;
-    //  Uart_DATA10.bf.DATA5=0;
-    //  Uart_DATA10.bf.DATA6=0;
-    //  Uart_DATA10.bf.DATA7=0;
-    //      //第11个数据8位
-    Uart_DATA11.DATA11 = 0;
-    //  Uart_DATA11.bf.DATA0=0;
-    //  Uart_DATA11.bf.DATA1=0;
-    //  Uart_DATA11.bf.DATA2=0;
-    //  Uart_DATA11.bf.DATA3=0;
-    //  Uart_DATA11.bf.DATA4=0;
-    //  Uart_DATA11.bf.DATA5=0;
-    //  Uart_DATA11.bf.DATA6=0;
-    //  Uart_DATA11.bf.DATA7=0;
-    //      //第12个数据8位
-    Uart_DATA12.DATA12 = 0;
-    //  Uart_DATA12.bf.DATA0=0;
-    //  Uart_DATA12.bf.DATA1=0;
-    //  Uart_DATA12.bf.DATA2=0;
-    //  Uart_DATA12.bf.DATA3=0;
-    //  Uart_DATA12.bf.DATA4=0;
-    //  Uart_DATA12.bf.DATA5=0;
-    //  Uart_DATA12.bf.DATA6=0;
-    //  Uart_DATA12.bf.DATA7=0;
-    //      //第13个数据8位
-    Uart_DATA13.DATA13 = 0;
-    //  Uart_DATA13.bf.DATA0=0;
-    //  Uart_DATA13.bf.DATA1=0;
-    //  Uart_DATA13.bf.DATA2=0;
-    //  Uart_DATA13.bf.DATA3=0;
-    //  Uart_DATA13.bf.DATA4=0;
-    //  Uart_DATA13.bf.DATA5=0;
-    //  Uart_DATA13.bf.DATA6=0;
-    //  Uart_DATA13.bf.DATA7=0;
-    //      //第14个数据8位
-    Uart_DATA14.DATA14 = 0;
-    //  Uart_DATA14.bf.DATA0=0;
-    //  Uart_DATA14.bf.DATA1=0;
-    //  Uart_DATA14.bf.DATA2=0;
-    //  Uart_DATA14.bf.DATA3=0;
-    //  Uart_DATA14.bf.DATA4=0;
-    //  Uart_DATA14.bf.DATA5=0;
-    //  Uart_DATA14.bf.DATA6=0;
-    //  Uart_DATA14.bf.DATA7=0;
-    //      //第15个数据8位
-    Uart_DATA15.DATA15 = 0;
-    //  Uart_DATA15.bf.DATA0=0;
-    //  Uart_DATA15.bf.DATA1=0;
-    //  Uart_DATA15.bf.DATA2=0;
-    //  Uart_DATA15.bf.DATA3=0;
-    //  Uart_DATA15.bf.DATA4=0;
-    //  Uart_DATA15.bf.DATA5=0;
-    //  Uart_DATA15.bf.DATA6=0;
-    //  Uart_DATA15.bf.DATA7=0;
-}
-
-void Uart_Int_Finsh(void)
-{
-    //参数清零因为复用问题
-    Uart_DATA00.DATA00 = 0; Uart_DATA01.DATA01 = 0; Uart_DATA02.DATA02 = 0; Uart_DATA03.DATA03 = 0;
-    Uart_DATA04.DATA04 = 0; Uart_DATA05.DATA05 = 0; Uart_DATA06.DATA06 = 0; Uart_DATA07.DATA07 = 0;
-    Uart_DATA08.DATA08 = 0; Uart_DATA09.DATA09 = 0; Uart_DATA10.DATA10 = 0; Uart_DATA11.DATA11 = 0;
-    Uart_DATA12.DATA12 = 0; Uart_DATA13.DATA13 = 0; Uart_DATA14.DATA14 = 0; Uart_DATA15.DATA15 = 0;
-    //第0个数据8位
-    Uart_DATA00.DATA00 = 0;
-    //  Uart_DATA00.bf.DATA0=0;
-    //  Uart_DATA00.bf.DATA1=0;
-    //  Uart_DATA00.bf.DATA2=0;
-    //  Uart_DATA00.bf.DATA3=0;
-    //  Uart_DATA00.bf.DATA4=0;
-    //  Uart_DATA00.bf.DATA5=0;
-    //  Uart_DATA00.bf.DATA6=0;
-    //  Uart_DATA00.bf.DATA7=0;
-    //第1个数据8位
-    Uart_DATA01.DATA01 = 0;
-    //  Uart_DATA01.bf.DATA0=0;
-    //  Uart_DATA01.bf.DATA1=0;
-    //  Uart_DATA01.bf.DATA2=0;
-    //  Uart_DATA01.bf.DATA3=0;
-    //  Uart_DATA01.bf.DATA4=0;
-    //  Uart_DATA01.bf.DATA5=0;
-    //  Uart_DATA01.bf.DATA6=0;
-    //  Uart_DATA01.bf.DATA7=0;
-    //第2个数据8位
-    Uart_DATA02.DATA02 = 0;
-    //  Uart_DATA02.bf.DATA0=0;
-    //  Uart_DATA02.bf.DATA1=0;
-    //  Uart_DATA02.bf.DATA2=0;
-    //  Uart_DATA02.bf.DATA3=0;
-    //  Uart_DATA02.bf.DATA4=0;
-    //  Uart_DATA02.bf.DATA5=0;
-    //  Uart_DATA02.bf.DATA6=0;
-    //  Uart_DATA02.bf.DATA7=0;
-    //第3个数据8位
-    Uart_DATA03.DATA03 = 0;
-    //  Uart_DATA03.bf.DATA0=0;
-    //  Uart_DATA03.bf.DATA1=0;
-    //  Uart_DATA03.bf.DATA2=0;
-    //  Uart_DATA03.bf.DATA3=0;
-    //  Uart_DATA03.bf.DATA4=0;
-    //  Uart_DATA03.bf.DATA5=0;
-    //  Uart_DATA03.bf.DATA6=0;
-    //  Uart_DATA03.bf.DATA7=0;
-    //第4个数据8位
-    Uart_DATA04.DATA04 = 0;
-    //  Uart_DATA04.bf.DATA0=0;
-    //  Uart_DATA04.bf.DATA1=0;
-    //  Uart_DATA04.bf.DATA2=0;
-    //  Uart_DATA04.bf.DATA3=0;
-    //  Uart_DATA04.bf.DATA4=0;
-    //  Uart_DATA04.bf.DATA5=0;
-    //  Uart_DATA04.bf.DATA6=0;
-    //  Uart_DATA04.bf.DATA7=0;
-    //      //第5个数据8位
-    Uart_DATA05.DATA05 = 0;
-    //  Uart_DATA05.bf.DATA0=0;
-    //  Uart_DATA05.bf.DATA1=0;
-    //  Uart_DATA05.bf.DATA2=0;
-    //  Uart_DATA05.bf.DATA3=0;
-    //  Uart_DATA05.bf.DATA4=0;
-    //  Uart_DATA05.bf.DATA5=0;
-    //  Uart_DATA05.bf.DATA6=0;
-    //  Uart_DATA05.bf.DATA7=0;
-    //      //第6个数据8位
-    Uart_DATA06.DATA06 = 0;
-    //  Uart_DATA06.bf.DATA0=0;
-    //  Uart_DATA06.bf.DATA1=0;
-    //  Uart_DATA06.bf.DATA2=0;
-    //  Uart_DATA06.bf.DATA3=0;
-    //  Uart_DATA06.bf.DATA4=0;
-    //  Uart_DATA06.bf.DATA5=0;
-    //  Uart_DATA06.bf.DATA6=0;
-    //  Uart_DATA06.bf.DATA7=0;
-    //      //第7个数据8位
-    Uart_DATA07.DATA07 = 0;
-    //  Uart_DATA07.bf.DATA0=0;
-    //  Uart_DATA07.bf.DATA1=0;
-    //  Uart_DATA07.bf.DATA2=0;
-    //  Uart_DATA07.bf.DATA3=0;
-    //  Uart_DATA07.bf.DATA4=0;
-    //  Uart_DATA07.bf.DATA5=0;
-    //  Uart_DATA07.bf.DATA6=0;
-    //  Uart_DATA07.bf.DATA7=0;
-    //      //第8个数据8位
-    Uart_DATA08.DATA08 = 0;
-    //  Uart_DATA08.bf.DATA0=0;
-    //  Uart_DATA08.bf.DATA1=0;
-    //  Uart_DATA08.bf.DATA2=0;
-    //  Uart_DATA08.bf.DATA3=0;
-    //  Uart_DATA08.bf.DATA4=0;
-    //  Uart_DATA08.bf.DATA5=0;
-    //  Uart_DATA08.bf.DATA6=0;
-    //  Uart_DATA08.bf.DATA7=0;
-    //      //第9个数据8位
-    Uart_DATA09.DATA09 = 0;
-    //  Uart_DATA09.bf.DATA0=0;
-    //  Uart_DATA09.bf.DATA1=0;
-    //  Uart_DATA09.bf.DATA2=0;
-    //  Uart_DATA09.bf.DATA3=0;
-    //  Uart_DATA09.bf.DATA4=0;
-    //  Uart_DATA09.bf.DATA5=0;
-    //  Uart_DATA09.bf.DATA6=0;
-    //  Uart_DATA09.bf.DATA7=0;
-    //      //第10个数据8位
-    Uart_DATA10.DATA10 = 0;
-    //  Uart_DATA10.bf.DATA0=0;
-    //  Uart_DATA10.bf.DATA1=0;
-    //  Uart_DATA10.bf.DATA2=0;
-    //  Uart_DATA10.bf.DATA3=0;
-    //  Uart_DATA10.bf.DATA4=0;
-    //  Uart_DATA10.bf.DATA5=0;
-    //  Uart_DATA10.bf.DATA6=0;
-    //  Uart_DATA10.bf.DATA7=0;
-    //      //第11个数据8位
-    Uart_DATA11.DATA11 = 0;
-    //  Uart_DATA11.bf.DATA0=0;
-    //  Uart_DATA11.bf.DATA1=0;
-    //  Uart_DATA11.bf.DATA2=0;
-    //  Uart_DATA11.bf.DATA3=0;
-    //  Uart_DATA11.bf.DATA4=0;
-    //  Uart_DATA11.bf.DATA5=0;
-    //  Uart_DATA11.bf.DATA6=0;
-    //  Uart_DATA11.bf.DATA7=0;
-    //      //第12个数据8位
-    Uart_DATA12.DATA12 = 0;
-    //  Uart_DATA12.bf.DATA0=0;
-    //  Uart_DATA12.bf.DATA1=0;
-    //  Uart_DATA12.bf.DATA2=0;
-    //  Uart_DATA12.bf.DATA3=0;
-    //  Uart_DATA12.bf.DATA4=0;
-    //  Uart_DATA12.bf.DATA5=0;
-    //  Uart_DATA12.bf.DATA6=0;
-    //  Uart_DATA12.bf.DATA7=0;
-    //      //第13个数据8位
-    Uart_DATA13.DATA13 = 0;
-    //  Uart_DATA13.bf.DATA0=0;
-    //  Uart_DATA13.bf.DATA1=0;
-    //  Uart_DATA13.bf.DATA2=0;
-    //  Uart_DATA13.bf.DATA3=0;
-    //  Uart_DATA13.bf.DATA4=0;
-    //  Uart_DATA13.bf.DATA5=0;
-    //  Uart_DATA13.bf.DATA6=0;
-    //  Uart_DATA13.bf.DATA7=0;
-    //      //第14个数据8位
-    Uart_DATA14.DATA14 = 0;
-    //  Uart_DATA14.bf.DATA0=0;
-    //  Uart_DATA14.bf.DATA1=0;
-    //  Uart_DATA14.bf.DATA2=0;
-    //  Uart_DATA14.bf.DATA3=0;
-    //  Uart_DATA14.bf.DATA4=0;
-    //  Uart_DATA14.bf.DATA5=0;
-    //  Uart_DATA14.bf.DATA6=0;
-    //  Uart_DATA14.bf.DATA7=0;
-    //      //第15个数据8位
-    Uart_DATA15.DATA15 = 0;
-    //  Uart_DATA15.bf.DATA0=0;
-    //  Uart_DATA15.bf.DATA1=0;
-    //  Uart_DATA15.bf.DATA2=0;
-    //  Uart_DATA15.bf.DATA3=0;
-    //  Uart_DATA15.bf.DATA4=0;
-    //  Uart_DATA15.bf.DATA5=0;
-    //  Uart_DATA15.bf.DATA6=0;
-    //  Uart_DATA15.bf.DATA7=0;
-}
-void Uart_Run01(void)
-{
-    uint16  Power = 0;
-    Power = P_PowerReal;
-    //参数清零因为复用问题
-    Uart_DATA00.DATA00 = 0; Uart_DATA01.DATA01 = 0; Uart_DATA02.DATA02 = 0; Uart_DATA03.DATA03 = 0;
-    Uart_DATA04.DATA04 = 0; Uart_DATA05.DATA05 = 0; Uart_DATA06.DATA06 = 0; Uart_DATA07.DATA07 = 0;
-    Uart_DATA08.DATA08 = 0; Uart_DATA09.DATA09 = 0; Uart_DATA10.DATA10 = 0; Uart_DATA11.DATA11 = 0;
-    Uart_DATA12.DATA12 = 0; Uart_DATA13.DATA13 = 0; Uart_DATA14.DATA14 = 0; Uart_DATA15.DATA15 = 0;
-    //第0个数据8位
-    //  Uart_DATA00.DATA00=0;
-    Uart_DATA00.bf.DATA0 = 0; //回送模式  收啥发啥
-    Uart_DATA00.bf.DATA1 = 0;
-    Uart_DATA00.bf.DATA2 = 0;
-    Uart_DATA00.bf.DATA3 = 0;
-    Uart_DATA00.bf.DATA4 = mcSpeedRamp.FlagONOFF; //压缩机开/关状态  0:压缩机关  1:压缩机开
-    //  Uart_DATA00.bf.DATA5=0;//预留
-    //  Uart_DATA00.bf.DATA6=0;
-    //  Uart_DATA00.bf.DATA7=0;
-    //第1个数据8位
-    Uart_DATA01.DATA01 = S_Value2; //压缩机运行转速  实际运行转速 单位:rps
-    //  Uart_DATA01.bf.DATA0=0;
-    //  Uart_DATA01.bf.DATA1=0;
-    //  Uart_DATA01.bf.DATA2=0;
-    //  Uart_DATA01.bf.DATA3=0;
-    //  Uart_DATA01.bf.DATA4=0;
-    //  Uart_DATA01.bf.DATA5=0;
-    //  Uart_DATA01.bf.DATA6=0;
-    //  Uart_DATA01.bf.DATA7=0;
-    //第2个数据8位
-    Uart_DATA02.DATA02 = 0; //外风机1转速  实际转速/10  单位:rpm
-    //  Uart_DATA02.bf.DATA0=0;
-    //  Uart_DATA02.bf.DATA1=0;
-    //  Uart_DATA02.bf.DATA2=0;
-    //  Uart_DATA02.bf.DATA3=0;
-    //  Uart_DATA02.bf.DATA4=0;
-    //  Uart_DATA02.bf.DATA5=0;
-    //  Uart_DATA02.bf.DATA6=0;
-    //  Uart_DATA02.bf.DATA7=0;
-    //第3个数据8位
-    Uart_DATA03.DATA03 = 0; //外风机2转速  实际转速/10  单位:rpm
-    //  Uart_DATA03.bf.DATA0=0;
-    //  Uart_DATA03.bf.DATA1=0;
-    //  Uart_DATA03.bf.DATA2=0;
-    //  Uart_DATA03.bf.DATA3=0;
-    //  Uart_DATA03.bf.DATA4=0;
-    //  Uart_DATA03.bf.DATA5=0;
-    //  Uart_DATA03.bf.DATA6=0;
-    //  Uart_DATA03.bf.DATA7=0;
-    //      //第4个数据8位
-    Uart_DATA04.DATA04 = Power >> 5; //压缩机运行功率  实际运行功率/32  单位:W
-    //  Uart_DATA04.bf.DATA0=0;
-    //  Uart_DATA04.bf.DATA1=0;
-    //  Uart_DATA04.bf.DATA2=0;
-    //  Uart_DATA04.bf.DATA3=0;
-    //  Uart_DATA04.bf.DATA4=0;
-    //  Uart_DATA04.bf.DATA5=0;
-    //  Uart_DATA04.bf.DATA6=0;
-    //  Uart_DATA04.bf.DATA7=0;
-    //      //第5个数据8位
-    Uart_DATA05.DATA05 = 0; //预留
-    //  Uart_DATA05.bf.DATA0=0;
-    //  Uart_DATA05.bf.DATA1=0;
-    //  Uart_DATA05.bf.DATA2=0;
-    //  Uart_DATA05.bf.DATA3=0;
-    //  Uart_DATA05.bf.DATA4=0;
-    //  Uart_DATA05.bf.DATA5=0;
-    //  Uart_DATA05.bf.DATA6=0;
-    //  Uart_DATA05.bf.DATA7=0;
-    //      //第6个数据8位
-    Uart_DATA06.DATA06 = 0; //电子膨胀阀开度
-    //  Uart_DATA06.bf.DATA0=0;
-    //  Uart_DATA06.bf.DATA1=0;
-    //  Uart_DATA06.bf.DATA2=0;
-    //  Uart_DATA06.bf.DATA3=0;
-    //  Uart_DATA06.bf.DATA4=0;
-    //  Uart_DATA06.bf.DATA5=0;
-    //  Uart_DATA06.bf.DATA6=0;
-    //  Uart_DATA06.bf.DATA7=0;
-    //      //第7个数据8位
-    Uart_DATA07.DATA07 = 0; //(((uint32)(mcFocCtrl.mcDcbusFlt * HW_BOARD_VOLT_MAX)) >> 15)>>2;//直流母线电压  实际直流母线电压值/4   单位:V
-    //  Uart_DATA07.bf.DATA0=0;
-    //  Uart_DATA07.bf.DATA1=0;
-    //  Uart_DATA07.bf.DATA2=0;
-    //  Uart_DATA07.bf.DATA3=0;
-    //  Uart_DATA07.bf.DATA4=0;
-    //  Uart_DATA07.bf.DATA5=0;
-    //  Uart_DATA07.bf.DATA6=0;
-    //  Uart_DATA07.bf.DATA7=0;
-    //      //第8个数据8位
-    //      Uart_DATA08.DATA08=0;
-    Uart_DATA08.bf.DATA0 = 0; //室外环境温度小数标志   00: 0℃标志  01: 0.25℃标志  10: 0.5℃标志  11: 0.75℃标志
-    Uart_DATA08.bf.DATA1 = 0;
-    Uart_DATA08.bf.DATA2 = 0; //室外冷凝器温度小数标志
-    Uart_DATA08.bf.DATA3 = 0;
-    Uart_DATA08.bf.DATA4 = 0; //室外排气温度小数标志
-    Uart_DATA08.bf.DATA5 = 0;
-    //      Uart_DATA08.bf.DATA6=0;//预留
-    //      Uart_DATA08.bf.DATA7=0;
-    //      //第9个数据8位
-    Uart_DATA09.DATA09 = 0; //室外环境温度  0h:-40℃,数据每增加1则温度增加1℃
-    //  Uart_DATA09.bf.DATA0=0;
-    //  Uart_DATA09.bf.DATA1=0;
-    //  Uart_DATA09.bf.DATA2=0;
-    //  Uart_DATA09.bf.DATA3=0;
-    //  Uart_DATA09.bf.DATA4=0;
-    //  Uart_DATA09.bf.DATA5=0;
-    //  Uart_DATA09.bf.DATA6=0;
-    //  Uart_DATA09.bf.DATA7=0;
-    //      //第10个数据8位
-    Uart_DATA10.DATA10 = 0; //室外冷凝器中间温度  0h:-40℃,数据每增加1则温度增加1℃
-    //  Uart_DATA10.bf.DATA0=0;
-    //  Uart_DATA10.bf.DATA1=0;
-    //  Uart_DATA10.bf.DATA2=0;
-    //  Uart_DATA10.bf.DATA3=0;
-    //  Uart_DATA10.bf.DATA4=0;
-    //  Uart_DATA10.bf.DATA5=0;
-    //  Uart_DATA10.bf.DATA6=0;
-    //  Uart_DATA10.bf.DATA7=0;
-    //      //第11个数据8位
-    Uart_DATA11.DATA11 = 0; //室外排气温度  0h:-40℃,数据每增加1则温度增加1℃
-    //  Uart_DATA11.bf.DATA0=0;
-    //  Uart_DATA11.bf.DATA1=0;
-    //  Uart_DATA11.bf.DATA2=0;
-    //  Uart_DATA11.bf.DATA3=0;
-    //  Uart_DATA11.bf.DATA4=0;
-    //  Uart_DATA11.bf.DATA5=0;
-    //  Uart_DATA11.bf.DATA6=0;
-    //  Uart_DATA11.bf.DATA7=0;
-    //      //第12个数据8位
-    //    Uart_DATA12.DATA12=0;
-    Uart_DATA12.bf.DATA0 = 0; //除霜要求  0:无要求  1:除霜要求
-    Uart_DATA12.bf.DATA1 = 0; //普通除霜状态 0:通常状态(default) 或特殊除霜状态  1:普通除霜中
-    Uart_DATA12.bf.DATA2 = 0; //回油状态  0:无需停内风机的制热回油或非回油状态  1:制冷回油 或 需要停内风机的制热回油
-    Uart_DATA12.bf.DATA3 = 0; //3分钟待机状态  0:通常状态   1:3分钟待机中
-    Uart_DATA12.bf.DATA4 = 0; //电子膨胀阀状态 0:通常状态  1:复位中
-    Uart_DATA12.bf.DATA5 = 0; //外机静音状态  0:通常状态  1:外机静音中
-    Uart_DATA12.bf.DATA6 = 0; //外机防凝露状态  0:通常状态 1:外机防凝露中
-    Uart_DATA12.bf.DATA7 = 0; //SAVE状态  0:通常状态   1:SAVE状态运行中
-    //      //第13个数据8位
-    //      Uart_DATA13.DATA13=0;
-    Uart_DATA13.bf.DATA0 = 0; //回送自测状态
-    Uart_DATA13.bf.DATA1 = 0;
-    Uart_DATA13.bf.DATA2 = mcFaultSource; //外机任意停机故障  0:正常  1:故障
-    Uart_DATA13.bf.DATA3 = 0; //特殊除霜状态  0:通常状态(default) 或普通除霜状态  1:特殊除霜中
-    //  Uart_DATA13.bf.DATA4=0;//预留
-    //  Uart_DATA13.bf.DATA5=0;
-    //  Uart_DATA13.bf.DATA6=0;
-    //  Uart_DATA13.bf.DATA7=0;
-    //      //第14个数据8位
-    Uart_DATA14.DATA14 = 0; //外机AC电流值  实际电流,单位0.5A
-    //  Uart_DATA14.bf.DATA0=0;
-    //  Uart_DATA14.bf.DATA1=0;
-    //  Uart_DATA14.bf.DATA2=0;
-    //  Uart_DATA14.bf.DATA3=0;
-    //  Uart_DATA14.bf.DATA4=0;
-    //  Uart_DATA14.bf.DATA5=0;
-    //  Uart_DATA14.bf.DATA6=0;
-    //  Uart_DATA14.bf.DATA7=0;
-    //      //第15个数据8位
-    //    Uart_DATA15.DATA15=0;
-    Uart_DATA15.bf.DATA0 = 0; //DRED模式运行状态
-    Uart_DATA15.bf.DATA1 = 0;
-    Uart_DATA15.bf.DATA2 = 0; //强制制冷  0:未执行;1:执行
-    Uart_DATA15.bf.DATA3 = 0; //强制制热
-    Uart_DATA15.bf.DATA4 = 0; //强制除霜
-    Uart_DATA15.bf.DATA5 = 0; //收氟模式
-    Uart_DATA15.bf.DATA6 = 0; //试运行
-    //  Uart_DATA15.bf.DATA7=0; //预留
-}
-void Uart_Run02(void)
-{
-    //参数清零因为复用问题
-    Uart_DATA00.DATA00 = 0; Uart_DATA01.DATA01 = 0; Uart_DATA02.DATA02 = 0; Uart_DATA03.DATA03 = 0;
-    Uart_DATA04.DATA04 = 0; Uart_DATA05.DATA05 = 0; Uart_DATA06.DATA06 = 0; Uart_DATA07.DATA07 = 0;
-    Uart_DATA08.DATA08 = 0; Uart_DATA09.DATA09 = 0; Uart_DATA10.DATA10 = 0; Uart_DATA11.DATA11 = 0;
-    Uart_DATA12.DATA12 = 0; Uart_DATA13.DATA13 = 0; Uart_DATA14.DATA14 = 0; Uart_DATA15.DATA15 = 0;
-    //第0个数据8位
-    //  Uart_DATA00.DATA00=0;
-    Uart_DATA00.bf.DATA0 = 0; //外机AC电流保护限/降频  0:正常            1:限/降频
-    Uart_DATA00.bf.DATA1 = 0; //排气保护限/降频
-    Uart_DATA00.bf.DATA2 = 0; //防冻结保护限/降频
-    Uart_DATA00.bf.DATA3 = 0; //过负荷保护限/降频
-    Uart_DATA00.bf.DATA4 = 0; //直流母线电压保护限/降频
-    Uart_DATA00.bf.DATA5 = 0; //模块温度保护限/降频
-    Uart_DATA00.bf.DATA6 = 0; //模块电流(压缩机相电流)保护限/降频
-    Uart_DATA00.bf.DATA7 = 0; //功率过高保护限/降频
-    //第1个数据8位
-    Uart_DATA01.DATA01 = 0;
-    //  Uart_DATA01.bf.DATA0=0;
-    //  Uart_DATA01.bf.DATA1=0;
-    //  Uart_DATA01.bf.DATA2=0;
-    //  Uart_DATA01.bf.DATA3=0;
-    //  Uart_DATA01.bf.DATA4=0;
-    //  Uart_DATA01.bf.DATA5=0;
-    //  Uart_DATA01.bf.DATA6=0;
-    //  Uart_DATA01.bf.DATA7=0;
-    //第2个数据8位
-    //  Uart_DATA02.DATA02=0;
-    Uart_DATA02.bf.DATA0 = 0; //功率过高保护 0:正常            1:故障
-    Uart_DATA02.bf.DATA1 = 0; //防冻结保护
-    Uart_DATA02.bf.DATA2 = 0; //模块温度保护
-    Uart_DATA02.bf.DATA3 = 0; //模块电流(Fo)保护
-    Uart_DATA02.bf.DATA4 = 0; //外机AC电流保护
-    Uart_DATA02.bf.DATA5 = 0; //过负荷保护
-    Uart_DATA02.bf.DATA6 = 0; //排气保护
-    Uart_DATA02.bf.DATA7 = 0; //压缩机热过载保护
-    //第3个数据8位
-    //      Uart_DATA03.DATA03=0;
-    Uart_DATA03.bf.DATA0 = 0; //一拖多内外机管路连接与通讯连接不匹配  0:正常        1:故障
-    Uart_DATA03.bf.DATA1 = 0; //室内外机型不匹配
-    Uart_DATA03.bf.DATA2 = 0; //模式冲突
-    Uart_DATA03.bf.DATA3 = 0; //缺氟保护
-    Uart_DATA03.bf.DATA4 = 0; //直流母线电压过低保护
-    Uart_DATA03.bf.DATA5 = 0; //直流母线电压过高保护
-    Uart_DATA03.bf.DATA6 = 0; //PFC过流故障
-    Uart_DATA03.bf.DATA7 = 0; //压缩机缺/逆相保护欠相,脱调(缺相)
-    //第4个数据8位
-    Uart_DATA04.DATA04 = 0;
-    //  Uart_DATA04.bf.DATA0=0;
-    //  Uart_DATA04.bf.DATA1=0;
-    //  Uart_DATA04.bf.DATA2=0;
-    //  Uart_DATA04.bf.DATA3=0;
-    //  Uart_DATA04.bf.DATA4=0;
-    //  Uart_DATA04.bf.DATA5=0;//四通阀换向异常  0:正常        1:故障
-    //  Uart_DATA04.bf.DATA6=0;
-    //  Uart_DATA04.bf.DATA7=0;
-    //      //第5个数据8位
-    //    Uart_DATA05.DATA05=0;
-    Uart_DATA05.bf.DATA0 = 0; //压缩机退磁保护  0:正常        1:故障
-    Uart_DATA05.bf.DATA1 = 0; //压缩机失步
-    Uart_DATA05.bf.DATA2 = 0; //压缩机相电流电路检测故障
-    Uart_DATA05.bf.DATA3 = 0; //电容充电故障
-    Uart_DATA05.bf.DATA4 = 0; //整机电流检测故障
-    Uart_DATA05.bf.DATA5 = 0; //直流母线电压跌落故障
-    Uart_DATA05.bf.DATA6 = 0; //系统高压保护
-    Uart_DATA05.bf.DATA7 = 0; //系统低压保护
-    //      //第6个数据8位
-    //      Uart_DATA06.DATA06=0;
-    Uart_DATA06.bf.DATA0 = 0; //温漂保护
-    Uart_DATA06.bf.DATA1 = 0; //交流接触器保护
-    Uart_DATA06.bf.DATA2 = 0; //驱动板环境感温包故障
-    Uart_DATA06.bf.DATA3 = 0; //压缩机拨码异常
-    Uart_DATA06.bf.DATA4 = 0; //超速
-    Uart_DATA06.bf.DATA5 = 0; //驱动模块复位
-    Uart_DATA06.bf.DATA6 = 0; //启动失败
-    Uart_DATA06.bf.DATA7 = 0; //压缩机堵转
-    //      //第7个数据8位
-    //    Uart_DATA07.DATA07=0;
-    //  Uart_DATA07.bf.DATA0=0;//预留
-    //  Uart_DATA07.bf.DATA1=0;
-    //  Uart_DATA07.bf.DATA2=0;
-    Uart_DATA07.bf.DATA3 = 0; //风机调速板通讯故障
-    Uart_DATA07.bf.DATA4 = 0; //交流输入电压异常
-    Uart_DATA07.bf.DATA5 = 0; //压缩机相电流过流
-    Uart_DATA07.bf.DATA6 = 0; //驱动板通讯故障
-    Uart_DATA07.bf.DATA7 = 0; //传感器连接保护(电流传感器没有接到对应的U相或V相)
-    //      //第8个数据8位
-    Uart_DATA08.DATA08 = 0;
-    //  Uart_DATA08.bf.DATA0=0;
-    //  Uart_DATA08.bf.DATA1=0;
-    //  Uart_DATA08.bf.DATA2=0;
-    //  Uart_DATA08.bf.DATA3=0;
-    //  Uart_DATA08.bf.DATA4=0;
-    //  Uart_DATA08.bf.DATA5=0;
-    //  Uart_DATA08.bf.DATA6=0;
-    //  Uart_DATA08.bf.DATA7=0;
-    //      //第9个数据8位
-    Uart_DATA09.DATA09 = 0; //IPM模块温度  0h:-40℃,数据每增加1则温度增加1℃
-    //  Uart_DATA09.bf.DATA0=0;
-    //  Uart_DATA09.bf.DATA1=0;
-    //  Uart_DATA09.bf.DATA2=0;
-    //  Uart_DATA09.bf.DATA3=0;
-    //  Uart_DATA09.bf.DATA4=0;
-    //  Uart_DATA09.bf.DATA5=0;
-    //  Uart_DATA09.bf.DATA6=0;
-    //  Uart_DATA09.bf.DATA7=0;
-    //      //第10个数据8位
-    Uart_DATA10.DATA10 = 0;
-    //  Uart_DATA10.bf.DATA0=0;
-    //  Uart_DATA10.bf.DATA1=0;
-    //  Uart_DATA10.bf.DATA2=0;
-    //  Uart_DATA10.bf.DATA3=0;
-    //  Uart_DATA10.bf.DATA4=0;
-    //  Uart_DATA10.bf.DATA5=0;
-    //  Uart_DATA10.bf.DATA6=0;
-    //  Uart_DATA10.bf.DATA7=0;
-    //      //第11个数据8位
-    Uart_DATA11.DATA11 = 0;
-    //  Uart_DATA11.bf.DATA0=0;
-    //  Uart_DATA11.bf.DATA1=0;
-    //  Uart_DATA11.bf.DATA2=0;
-    //  Uart_DATA11.bf.DATA3=0;
-    //  Uart_DATA11.bf.DATA4=0;
-    //  Uart_DATA11.bf.DATA5=0;
-    //  Uart_DATA11.bf.DATA6=0;
-    //  Uart_DATA11.bf.DATA7=0;
-    //      //第12个数据8位
-    Uart_DATA12.DATA12 = 0;
-    //  Uart_DATA12.bf.DATA0=0;
-    //  Uart_DATA12.bf.DATA1=0;
-    //  Uart_DATA12.bf.DATA2=0;
-    //  Uart_DATA12.bf.DATA3=0;
-    //  Uart_DATA12.bf.DATA4=0;
-    //  Uart_DATA12.bf.DATA5=0;
-    //  Uart_DATA12.bf.DATA6=0;
-    //  Uart_DATA12.bf.DATA7=0;
-    //      //第13个数据8位
-    Uart_DATA13.DATA13 = 0;
-    //  Uart_DATA13.bf.DATA0=0;
-    //  Uart_DATA13.bf.DATA1=0;
-    //  Uart_DATA13.bf.DATA2=0;
-    //  Uart_DATA13.bf.DATA3=0;
-    //  Uart_DATA13.bf.DATA4=0;
-    //  Uart_DATA13.bf.DATA5=0;
-    //  Uart_DATA13.bf.DATA6=0;
-    //  Uart_DATA13.bf.DATA7=0;
-    //      //第14个数据8位
-    Uart_DATA14.DATA14 = 0;
-    //  Uart_DATA14.bf.DATA0=0;
-    //  Uart_DATA14.bf.DATA1=0;
-    //  Uart_DATA14.bf.DATA2=0;
-    //  Uart_DATA14.bf.DATA3=0;
-    //  Uart_DATA14.bf.DATA4=0;
-    //  Uart_DATA14.bf.DATA5=0;
-    //  Uart_DATA14.bf.DATA6=0;
-    //  Uart_DATA14.bf.DATA7=0;
-    //      //第15个数据8位
-    Uart_DATA15.DATA15 = 0;
-    //  Uart_DATA15.bf.DATA0=0;
-    //  Uart_DATA15.bf.DATA1=0;
-    //  Uart_DATA15.bf.DATA2=0;
-    //  Uart_DATA15.bf.DATA3=0;
-    //  Uart_DATA15.bf.DATA4=0;
-    //  Uart_DATA15.bf.DATA5=0;
-    //  Uart_DATA15.bf.DATA6=0;
-    //  Uart_DATA15.bf.DATA7=0;
-}
-
-
-
-
-void Modbus_respond(void)
-{
-    uint8 u16CRC = 0;
-    Uart.T_DATA[0]  = Uart.Oder;                         //指令
-    Uart.T_DATA[1]  = 0x00;                              //地址   00一拖一
-    Uart.T_DATA[2]  = 0x00;                              //标志
-    Uart.T_DATA[3]  = Uart_DATA00.DATA00;        //数据第0位
-    Uart.T_DATA[4]  = Uart_DATA01.DATA01;            //数据第1位
-    Uart.T_DATA[5]  = Uart_DATA02.DATA02;        //数据第2位
-    Uart.T_DATA[6]  = Uart_DATA03.DATA03;        //数据第3位
-    Uart.T_DATA[7]  = Uart_DATA04.DATA04;        //数据第4位
-    Uart.T_DATA[8]  = Uart_DATA05.DATA05;        //数据第5位
-    Uart.T_DATA[9]  = Uart_DATA06.DATA06;        //数据第6位
-    Uart.T_DATA[10] = Uart_DATA07.DATA07;            //数据第7位
-    Uart.T_DATA[11] = Uart_DATA08.DATA08;          //数据第8位
-    Uart.T_DATA[12] = Uart_DATA09.DATA09;        //数据第9位
-    Uart.T_DATA[13] = Uart_DATA10.DATA10;        //数据第10位
-    Uart.T_DATA[14] = Uart_DATA11.DATA11;        //数据第11位
-    Uart.T_DATA[15] = Uart_DATA12.DATA12;        //数据第12位
-    Uart.T_DATA[16] = Uart_DATA13.DATA13;            //数据第13位
-    Uart.T_DATA[17] = Uart_DATA14.DATA14;          //数据第14位
-    Uart.T_DATA[18] = Uart_DATA15.DATA15;        //数据第15位
-    //          Uart.T_DATA[0]  = 0x31;//Uart.Oder;                          //指令
-    //          Uart.T_DATA[1]  = 0x00;                              //地址   00一拖一
-    //          Uart.T_DATA[2]  = 0x00;                              //标志
-    //          Uart.T_DATA[3]  =1; //Uart_DATA00.DATA00;        //数据第0位
-    //          Uart.T_DATA[4]  =0; //Uart_DATA01.DATA01;            //数据第1位
-    //          Uart.T_DATA[5]  =0; //Uart_DATA02.DATA02;        //数据第2位
-    //          Uart.T_DATA[6]  =0; //Uart_DATA03.DATA03;        //数据第3位
-    //          Uart.T_DATA[7]  =0; //Uart_DATA04.DATA04;        //数据第4位
-    //          Uart.T_DATA[8]  =0; //Uart_DATA05.DATA05;        //数据第5位
-    //          Uart.T_DATA[9]  =0; //Uart_DATA06.DATA06;        //数据第6位
-    //          Uart.T_DATA[10] =0; //Uart_DATA07.DATA07;            //数据第7位
-    //          Uart.T_DATA[11] =0; //Uart_DATA08.DATA08;          //数据第8位
-    //          Uart.T_DATA[12] =0; //Uart_DATA09.DATA09;        //数据第9位
-    //          Uart.T_DATA[13] =0; //Uart_DATA10.DATA10;        //数据第10位
-    //          Uart.T_DATA[14] =0; //Uart_DATA11.DATA11;        //数据第11位
-    //          Uart.T_DATA[15] =0; //Uart_DATA12.DATA12;        //数据第12位
-    //          Uart.T_DATA[16] =0; //Uart_DATA13.DATA13;            //数据第13位
-    //          Uart.T_DATA[17] =0; //Uart_DATA14.DATA14;          //数据第14位
-    //          Uart.T_DATA[18] =0; //Uart_DATA15.DATA15;        //数据第15位
-    u16CRC = BBC(&Uart.T_DATA[0], TX_LEN - 2);
-    Uart.T_DATA[19] = u16CRC;                    //CRC
-    Uart.send_start_falg = 1;
-    
-    if (Uart.send_start_falg == 1)
-    {
-        Uart.Recive_Flag = 1;
-        UT2_DR = Uart.T_DATA[0];
-        UT2TB8 = even_or_odd(Uart.T_DATA[0], evnodd);
-        Uart.send_start_falg = 0;
-        Uart.TxCnt = 0;
-    }
-}
-
-void Modbus_task00(void)
-{
-    if (Uart.Uart_Tmreset >= (T_mreset + T_mwtchg)) //T_mreset
-    {
-        Uart_Int01();
-        Modbus_respond();
-        Uart.Uart_Tmreset = 0;
-    }
-}
-void Modbus_task01(void)
-{
-    if (Uart.Uart_Tmcomcyc >= (T_mcomcyc + T_mwtchg)) //(T_mcomcyc+T_mwtchg)
-    {
-        Uart_Int02();
-        Modbus_respond();
-        Uart.Uart_Tmcomcyc = 0;
-    }
-}
-void Modbus_task02(void)
-{
-    if (Uart.Uart_Tmcomcyc >= (T_mcomcyc + T_mwtchg))
-    {
-        Uart_Int_Finsh();
-        Modbus_respond();
-        Uart.Uart_Tmcomcyc = 0;
-    }
-}
-void Modbus_task03(void)
-{
-    if (Uart.Uart_Tmcomcyc >= (T_mcomcyc + T_mwtchg))
-    {
-        Uart_Run01();
-        Modbus_respond();
-        Uart.Uart_Tmcomcyc = 0;
-    }
-}
-void Modbus_task04(void)
-{
-    if (Uart.Uart_Tmcomcyc >= (T_mcomcyc + T_mwtchg))
-    {
-        Uart_Run02();
-        Modbus_respond();
-        Uart.Uart_Tmcomcyc = 0;
-    }
-}
-void Modbus_task06(void)
-{
-    Uart.YaJI_Speed   = (Uart.R_DATA[4] << 8) | Uart.R_DATA[5];
-    ConTrolCmd.yajispeed = Uart.YaJI_Speed;
-    mcFaultDect.commu_time = 0;
-    Modbus_respond();
-}
-
-/**任务机发送**/
-void Modbus_task(void)
-{
-    switch (Uart.Oder)//判断功能码
-    {
-        case 0x11:            //初始状态1
-            Modbus_task00();
-            break;
-            
-        case 0x12:            //初始状态2
-            Modbus_task01();
-            break;
-            
-        case 0x2F:            //复位结束
-            Modbus_task02();
-            break;
-            
-        case 0x31:            //运转信息1
-            Modbus_task03();
-            break;
-            
-        case 0x32:            //运转信息2
-            Modbus_task04();
-            break;
-            
-        default:
-            break;
-    }
-}
-
-
-
-void Modbus_Recive_task0(void)
-{
-}
-void Modbus_Recive_task1(void)
-{
-}
-void Modbus_Recive_task2(void)
-{
-}
-void Modbus_Recive_task3(void)
-{
-    Uart_Rec_DATA00.DATAT00 = Uart.R_DATA[0];
-    Uart_Rec_DATA01.DATAT01 = Uart.R_DATA[1];
-    //      Uart_Rec_DATA02.DATAT02=Uart.R_DATA[2];
-    //    Uart_Rec_DATAo.DATAT3  =Uart.R_DATA[3];
-    //    Uart_Rec_DATAo.DATAT4  =Uart.R_DATA[4];
-    Uart_Rec_DATA05.DATAT05 = Uart.R_DATA[5];
-    //      Uart_Rec_DATA06.DATAT06=Uart.R_DATA[6];
-    //    Uart_Rec_DATAo.DATAT7  =Uart.R_DATA[7];
-    //    Uart_Rec_DATAo.DATAT8  =Uart.R_DATA[8];
-    Uart_Rec_DATA09.DATAT09 = Uart.R_DATA[9];
-    //      Uart_Rec_DATA10.DATAT10=Uart.R_DATA[10];
-    Uart_Rec_DATAo.DATAT11 = Uart.R_DATA[11];
-    Uart_Rec_DATA12.DATAT12 = Uart.R_DATA[12];
-    Uart_Rec_DATA13.DATAT13 = Uart.R_DATA[13];
-    Uart_Rec_DATA14.DATAT14 = Uart.R_DATA[14];
-    Uart_Rec_DATAo.DATAT15 = Uart.R_DATA[15];
-    
-    //压缩机转速提取
-    if (Uart_Rec_DATA00.bf.DATA4 == 1)
-    {
-        ConTrolCmd.yajispeed = ((int16)Uart_Rec_DATAo.DATAT11) * 60;
-    }
-    else
-    {
-        ConTrolCmd.yajispeed  = 0;
-    }
-    
-    //运行模式提取
-    ConTrolCmd.RunMode1 = Uart_Rec_DATA00.bf.DATA0 | Uart_Rec_DATA00.bf.DATA1 | Uart_Rec_DATA00.bf.DATA2 | Uart_Rec_DATA00.bf.DATA3;
-    ConTrolCmd.RunMode2 = Uart_Rec_DATA05.bf.DATA0 | Uart_Rec_DATA05.bf.DATA1 | Uart_Rec_DATA05.bf.DATA2 | Uart_Rec_DATA05.bf.DATA3;
-    ConTrolCmd.fengjispeed = ((int16)Uart_Rec_DATAo.DATAT15) * 10;
-    mcFaultDect.commu_time = 0;
-}
-void Modbus_Recive_task4(void)
-{
-}
-/**任务机接收**/
-void Modbus_Recive_task(void)
-{
-    switch (Uart.R_DATA[0])//判断功能码
-    {
-        case 0x11:            //初始状态1
-            Modbus_Recive_task0();
-            break;
-            
-        case 0x12:            //初始状态2
-            Modbus_Recive_task1();
-            break;
-            
-        case 0x2F:            //复位结束
-            Modbus_Recive_task2();
-            break;
-            
-        case 0x31:            //运转信息1
-            Modbus_Recive_task3();
-            break;
-            
-        case 0x32:            //运转信息2
-            Modbus_Recive_task4();
-            break;
-            
-        default:
-            break;
-    }
-}
-
-/*串口数据处理,处理接收到的串口数据,运行于大循环中*/
-void UartDealResponse1(void)
-{
-    if (Modbus_Slave_Receive() == 1)//接收数据
-    {
-        Modbus_Recive_task();
-        
-        if (Uart.R_DATA[0] == 0x11)
-        {Uart.Oder = 0x12;}
-        else if (Uart.R_DATA[0] == 0x12)
-        {Uart.Oder = 0x2F;}
-        else if (Uart.R_DATA[0] == 0x2F)
-        {Uart.Oder = 0x31;}
-        else if (Uart.R_DATA[0] == 0x31)
-        {Uart.Oder = 0x32;}
-        else if (Uart.R_DATA[0] == 0x32)
-        {Uart.Oder = 0x31;}
-        
-        Uart.recive_sussf_falg = 0;
-    }
-    
-    Modbus_task();//发送数据
-}
-

+ 0 - 61
User/source/Hardware/ADC.c

@@ -1,61 +0,0 @@
-/********************************************************************************
-
- **** Copyright (C), 2019, Fortior Technology Co., Ltd.                      ****
-
- ********************************************************************************
- * File Name     : ADC.c
- * Author        : Bruce HW&RD
- * Date          : 2019-09-11
- * Description   : .C file function description
- * Version       : 1.0
- * Function List :
- * 
- * Record        :
- * 1.Date        : 2019-09-11
- *   Author      : Bruce HW&RD
- *   Modification: Created file
-
-********************************************************************************/
-
-#include "ADC.h"
-#include "FU68xx_5_MCU.h"
-
-void ADC_Init(void)
-{
-	
-    /*************ADC PIN Analog Function Config*********************/
-    SetBit(P2_AN , PIN0);	//AD0 P20 CH open--IU-->FOC Trigger mode
-    SetBit(P2_AN , PIN3);	//AD1 P23 CH open--IV-->FOC Trigger mode
-    SetBit(P2_AN , PIN4);	//AD2 P24 CH open--DCBUS-->FOC Trigger mode
-    SetBit(P2_AN , PIN5);	//AD3 P25 CH open
-    SetBit(P2_AN , PIN6);	//AD4 P27 CH open--IBUS/IW-->FOC Trigger mode
-		SetBit(P2_AN , PIN6);	//AD4 P27 CH open--IBUS/IW-->FOC Trigger mode
-		SetBit(P1_AN , PIN3);	//AD12 P27 CH open--IBUS/IW-->FOC Trigger mode
-	  SetBit(P1_AN , PIN6);	//AD9 P16 CH open--  盘管温度
-	  SetBit(P2_AN , PIN0); //AD0 P20 CH open--  环温
-	  SetBit(P2_AN , PIN1);	//AD8 P21 CH open--  排气温度
-	  SetBit(P3_AN , PIN4);	//AD7 P34 CH open--  压机外壳温度
-	  SetBit(P3_AN , PIN3);	//AD6 P33 CH open--  FORCE_AD
-	  SetBit(P2_AN , PIN6);	//AD11 P26 CH open-- IPM温度
-	  SetBit(P1_AN , PIN5);	//AD12 P27 CH open--IBUS/IW-->FOC Trigger mode
-   // SetBit(P1_AN , PIN4);	//AD12 P27 CH open--IBUS/IW-->FOC Trigger mode
-
-
-
-    /***********************ADC Channel Enable***********************/
-    SetBit(ADC_MASK ,  CH0EN | CH1EN |CH2EN | CH4EN| CH3EN);//
-    SetBit(ADC_MASK ,  CH5EN | CH6EN | CH11EN| CH13EN|CH12EN);//
-		SetBit(ADC_MASK ,  CH7EN | CH8EN | CH9EN| CH10EN);//
-
-
-    /******************ADC Result Alignment***************************
-    0:Right Alignment eg:max:0x0fff;
-    1:Left-Second MSB Alignment eg:max:0x7ff8;
-    *****************************************************************/
-    SetBit(ADC_CR , ADCALIGN);  
-    /***********************ADC Interrupt Enable*********************/
-    ClrBit(ADC_CR , ADCIE);     
-    /***************************ADC Enable***************************/
-    SetBit(ADC_CR , ADCEN);    
-}
-

+ 0 - 221
User/source/Hardware/CMP.c

@@ -1,221 +0,0 @@
-/********************************************************************************
-
- **** Copyright (C), 2019, Fortior Technology Co., Ltd.                      ****
-
- ********************************************************************************
- * File Name     : CMP.c
- * Author        : Bruce HW&RD
- * Date          : 2019-09-11
- * Description   : .C file function description
- * Version       : 1.0
- * Function List :
- * 
- * Record        :
- * 1.Date        : 2019-09-11
- *   Author      : Bruce HW&RD
- *   Modification: Created file
-
-********************************************************************************/
-
-#include "CMP.h"
-#include "FU68xx_5_MCU.h"
-#include "Customer.h"
-#include "Parameter.h"
-
-void CMP0_Init(void)
-{
-	/******CMP0/1/2 端口模拟功能设置*******/
-	SetBit(P1_AN , PIN4);	//CMP0 Pin设置为模拟模式  +
-	SetBit(P1_AN , PIN6);	//CMP1 Pin设置为模拟模式  +
-	SetBit(P2_AN , PIN1);	//CMP2 Pin设置为模拟模式  +
-	ClrBit(P1_PU , PIN4);	//P14上拉关闭
-		
-	ClrBit(CMP_CR0 , CMP2IM1);//CMP2中断模式
-	ClrBit(CMP_CR0 , CMP2IM0);//00-->No Interrupt  01-->Rising  10-->Falling   11-->Rising/Falling
-	ClrBit(CMP_CR0 , CMP1IM1);//CMP1中断模式
-	ClrBit(CMP_CR0 , CMP1IM0);//00-->No Interrupt  01-->Rising  10-->Falling   11-->Rising/Falling
-	ClrBit(CMP_CR0 , CMP0IM1);//CMP0中断模式
-	ClrBit(CMP_CR0 , CMP0IM0);//00-->No Interrupt  01-->Rising  10-->Falling   11-->Rising/Falling
-	
-	SetBit(CMP_CR1 , CMP0HYS2);//CMP0迟滞电压配置
-	ClrBit(CMP_CR1 , CMP0HYS1);//111-->±12mV   110-->+12mV   101-->-12mV   100-->±6mV
-	ClrBit(CMP_CR1 , CMP0HYS0);//011-->+6mV    010-->-6mV    001-->±3mV    000-->No HYS
-	
-	ClrBit(CMP_CR2 , CMP0MOD1);//00-->无内置电阻3比较器     		01-->有内置电阻3比较器模式
-	SetBit(CMP_CR2 , CMP0MOD0);//10-->3差分比较器				11-->2比较器
-	
-	ClrBit(CMP_CR2 , CMP0SEL1);//00-->3比较器轮询				01-->P14+固定选择CMP0OUT
-	ClrBit(CMP_CR2 , CMP0SEL0);//10-->P16+固定选择CMP1OUT		11-->P21+固定选择CMP2OUT
-	
-	ClrBit(CMP_CR2 , CMP0CSEL1);//00-->正常轮询(0.66us)		01-->快速轮询(0.33us)
-	ClrBit(CMP_CR2 , CMP0CSEL0);//10-->低速轮询(2.67us)		11-->偏低速轮询(1.33us)
-	
-	ClrBit(CMP_CR3 , CMPSEL2);	//011-->P07作为CMP2输出
-	SetBit(CMP_CR3 , CMPSEL1);	//010-->P07作为CMP1输出
-	SetBit(CMP_CR3 , CMPSEL0);	//001-->P07作为CMP0输出
-	
-	ClrBit(CMP_CR4 , CMP0_FS);	//CMP1/2功能转移	仅CMP0_MOD=01时有效
-	
-	SetBit(CMP_CR2 , CMP0EN);	//CMP0 Enable
-	/****************************************************************/
-    ClrBit(IP1 , PCMP1);
-    ClrBit(IP1 , PCMP0);
-	/***********************比较器采样设置***************************/
-	CMP_SAMR = 0x42;	//延迟开启采样时间[7:4]&关闭采样时间[3:0]
-						//延迟时间= CSOND x 41.67 x 8ns CSOND 必须>= CSOFFD
-	
-	SetBit(CMP_CR3 , SAMSEL1);	//CMP0/1/2 & ADC 采样时机配置
-	ClrBit(CMP_CR3 , SAMSEL0);	//00-->0N&0FF采样,无延迟   01-->0FF采样,延迟CMP_SAMR
-								//10-->0N采样,延迟CMP_SAMR	11-->0N&0FF采样,延迟CMP_SAMR
-	
-	ClrBit(CMP_CR3 , CMPDTEN);	//比较器死区采样使能 0-->Disable 1-->Enable
-		
-	ClrBit(CMP_CR3 , DBGSEL1);	//DEBUG信号选择-->输出至P01
-	SetBit(CMP_CR3 , DBGSEL0);	//00-->Disable			01-->方波屏蔽续流结束和检测到过零点信号
-								//10-->ADC trigger信号	11-->比较器采样区间
-	/****************************************************************/
-}
-
-/*****************************************************************************
- * Function      : CMP3_Init
- * Description   : CMP3_INIT
- * Input         : void  
- * Output        : None
- * Return        : 
- * Others        : 
- * Record
- * 1.Date        : 20190320
- *   Author      : Bruce HW&RD
- *   Modification: Created function
-
-*****************************************************************************/
-
-void CMP3_Init(void)
-{
-
-    /******CMP3 端口模拟功能设置*******/    
-    #if (Shunt_Resistor_Mode == Single_Resistor)
-    {
-        SetBit(P2_AN , P27);	    //CMP3 Pin设置为模拟模式  + 
-        ClrBit(CMP_CR1 , CMP3MOD1); //00-->P27-单比较器模式    01-->P20/P23-双比较器模式
-        ClrBit(CMP_CR1 , CMP3MOD0); //1X-->P20/P23/P27-三比较器模式
-    }
-    #elif (Shunt_Resistor_Mode == Double_Resistor)
-    {
-        SetBit(P2_AN , P27);	    //CMP3 Pin设置为模拟模式  + 
-        ClrBit(CMP_CR1 , CMP3MOD1); //00-->P27-单比较器模式    01-->P20/P23-双比较器模式
-        ClrBit(CMP_CR1 , CMP3MOD0); //1X-->P20/P23/P27-三比较器模式
-    }
-    #elif (Shunt_Resistor_Mode == Three_Resistor)
-    {
-        SetBit(P2_AN , P27 | P23 | P20);//CMP3 Pin设置为模拟模式  + 
-        SetBit(CMP_CR1 , CMP3MOD1); //00-->P27-单比较器模式    01-->P20/P23-双比较器模式
-        ClrBit(CMP_CR1 , CMP3MOD0); //1X-->P20/P23/P27-三比较器模式
-    }
-    #endif	//end Shunt_Resistor_Mode
-    
-    #if (Compare_Mode == Compare_Hardware)
-    {
-        /**P2.6使能其模拟功能,使能数字输出**/
-        SetBit(P2_AN , P26);
-        ClrBit(P2_OE , P26); 
-        ClrBit(DAC_CR , DAC0_1EN);
-    }
-    #else
-    {
-        /**P2.6使能其模拟功能,使能数字输出**/
-        ClrBit(P2_AN , P26);
-        ClrBit(P2_OE , P26); 
-        /******************************
-        0: 正常模式,DAC输出电压范围为0到VREF
-        1: 半电压转换模式,DAC输出电压范围为VHALF到VREF
-        ****************************/
-        ClrBit(DAC_CR , DACMOD);
-        /**********设置DAC过流值*****************/				
-        if (DAC_OvercurrentValue < 255)
-        {
-            DAC0_DR = (uint8)DAC_OvercurrentValue;
-        }
-        else
-        {
-            DAC0_DR = 255;
-        }
-        /**********DAC0 Enable******************/
-        SetBit(DAC_CR , DAC0_1EN);
-    }
-    #endif	//end Compare_Mode
-    
-    SetBit(CMP_CR1 , CMP3HYS);  // CMP3 Hysteresis voltage Disable
-
-    /*---------------------------------------------------------------------------------
-	  触发硬件保护后硬件关闭驱动输出MOE配置
-	  00--MOE不自动清零
-	  01--MOE自动清零
-    ----------------------------------------------------------------------------------*/
-    ClrBit(EVT_FILT , MOEMD1);
-    SetBit(EVT_FILT , MOEMD0);
-    /*----------------------------------------------------------------------------------
-    母线电流保护时间滤波宽度
-    00-不滤波    
-    01-6cpu clock    
-    10-12cpu clock    
-    11-24cpu clock
-    -----------------------------------------------------------------------------------*/
-    SetBit(EVT_FILT , EFDIV1);
-    SetBit(EVT_FILT , EFDIV0);
-
-    SetBit(CMP_CR1 , CMP3EN);   //CMP3 Enable
-}
-
-/*****************************************************************************
- * Function      : CMP3_Interrupt_Init
- * Description   : CMP3中断配置
- * Input         : void  
- * Output        : None
- * Return        : 
- * Others        : 
- * Record
- * 1.Date        : 20190320
- *   Author      : Bruce HW&RD
- *   Modification: Created function
-
-*****************************************************************************/
-void CMP3_Interrupt_Init(void)
-{
-    ClrBit(CMP_SR , CMP3IF);
-    /*------------------------------------------------------------------------
-    比较器中断模式配置
-    00: 不产生中断  
-    01: 上升沿产生中断  
-    10: 下降沿产生中断  
-    11: 上升/下降沿产生中断
-    ------------------------------------------------------------------------*/
-    ClrBit(CMP_CR0 , CMP3IM1);
-    SetBit(CMP_CR0 , CMP3IM0);
-
-    SetBit(IP3 , PCMP31);
-    SetBit(IP3 , PCMP30);   // 中断优先级别3
-	
-
-}
-
-void CMP5_Init(void)
-{
-    SetBit(P1_AN, P13);                                 // CMP3
-    
-    /*-------------------------------------------------------------------------------------------------
-      电流保护时间滤波宽度
-      00-不滤波    01-4cpu clock    10-8cpu clock    11-16cpu clock
-    -------------------------------------------------------------------------------------------------*/
-    SetReg(PFC_CR0, CMP5DIV1 | CMP5DIV0, CMP5DIV0);     // 限流滤波选择10  330US
-
-    /**********使能DAC******************/
-    SetBit(DAC_CR, DAC2EN );
-    /**********设置DAC过流值*****************/
-    DAC2_DR = DAC_PFCOvercurrentValue;
-    
-    /*比较器使能-------------------------------------------------------------------------------------*/
-    SetBit(CMP_CR4, CMP5EN);	
-}
-
-

+ 0 - 242
User/source/Hardware/DMA.c

@@ -1,242 +0,0 @@
-#include "DMA.h"
-#include <FU68xx_5_DMA.h>
-
-
-//#define DMALENT 128
-
-unsigned char xdata sg_ucUartDbgData[DMALENT] = {0xaa, 0xbb};
-char                sg_cUartDataLen;
-unsigned char       sg_ucUartDataSum;
-
-void DMA0_XRAMToUART_Init(void)
-{
-    /* -----DMACFG2:DMACFG1: DMACFG0-->001  传输方向XRAMToUART----- */
-    SetReg(DMA0_CR0, DMAEN | DMACFG2 | DMACFG1 | DMACFG0 | DMAIE, DMACFG0 );  // DMAIE和DMACFG0为1
-    DMA0_LEN =  DMALENT;                                                                   // 设置传输长度为7,每传输7字节产生一次中断
-    DMA0_BA  =  (uint16)GetAddr_UARTDBG();                                                              // 设置RAM中的首地址
-    SetBit(DMA0_CR0, DMAEN);                                                         // 使能DMA1
-}
-
-/**
-    获取缓存区的地址
-
-    @return  缓存区地址
-*/
-unsigned char * GetAddr_UARTDBG(void)
-{
-    return &sg_ucUartDbgData;
-}
-
-
-/**
- * 配置DMA
- *
- * @param DMAx      DMA通道
- * @param DMAPipe   DMA管道,可选参数如下
- *                      UART1_XDATA    UART1-->XDATA
- *                      XDATA_UART1    UART1<--XDATA
- *                      I2C_XDATA      I2C  -->XDATA
- *                      XDATA_I2C      I2C  <--XDATA
- *                      SPI_XDATA      SPI  -->XDATA
- *                      XDATA_SPI      SPI  <--XDATA
- *                      UART2_XDATA    UART2-->XDATA
- *                      XDATA_UART2    UART2<--XDATA
- * @param DMAAddr   传输首地址,可取地址范围:0x0000~0x0317
- * @param DMALen    数据包大小(1~64)
- */
-void Conf_DMA(uint8 DMAx, uint8 DMAPipe, uint16 DMAAddr, uint8 DMALen)
-{
-    Wait_DMA(DMAx);                                                   // 等待DMAx传输结束
-    ClrBit(*(&DMA0_CR0 + DMAx), DMAEN);                               // 禁止DMAx的传输
-
-    SetReg(*(&DMA0_CR0 + DMAx), DMA_PIPE, DMAPipe);                   // 设置DMAx的传输管道
-
-    *(&DMA0_LEN + DMAx) = DMALen - 1;                                 // 设置DMAx传输数量
-    *(&DMA0_BA + DMAx) = DMAAddr & 0x07ff;                           // 设置DMAx传输首地址   
-}
-
-
-
-
-void SetPipe_DMA0(eType_DMA_PIPE ePipe)
-{
-    bool bTmp = false;
-
-    if (ReadBit(DMA0_CR0 , DMAEN))
-    {
-        bTmp = true;
-        while (ReadBit(DMA0_CR0 , DMABSY));
-        ClrBit(DMA0_CR0 , DMAEN);
-    }
-
-    SetReg(DMA0_CR0 , DMACFG2 | DMACFG1 | DMACFG0 , ePipe);
-
-    if (bTmp) SetBit(DMA0_CR0 , DMAEN);
-}
-
-void SetPipe_DMA1(eType_DMA_PIPE ePipe)
-{
-    bool bTmp = false;
-
-    if (ReadBit(DMA1_CR0 , DMAEN))
-    {
-        bTmp = true;
-        while (ReadBit(DMA1_CR0 , DMABSY));
-        ClrBit(DMA1_CR0 , DMAEN);
-    }
-
-    SetReg(DMA1_CR0 , DMACFG2 | DMACFG1 | DMACFG0 , ePipe);
-
-    if (bTmp) SetBit(DMA1_CR0 , DMAEN);
-}
-
-void SetDataPackage_DMA0(unsigned short ulAddr , char cLen)
-{
-    bool bTmp = false;
-
-    if (ReadBit(DMA0_CR0 , DMAEN))
-    {
-        bTmp = true;
-
-        while (ReadBit(DMA0_CR0 , DMABSY));
-        ClrBit(DMA0_CR0 , DMAEN);
-    }
-
-    DMA0_LEN =  cLen;
-    DMA0_BA  =  ulAddr;
-
-    if (bTmp) SetBit(DMA0_CR0, DMAEN);
-}
-
-void SetDataPackage_DMA1(unsigned short ulAddr, char cLen)
-{
-    bool bTmp = false;
-
-    if (ReadBit(DMA1_CR0 , DMAEN))
-    {
-        bTmp = true;
-
-        while (ReadBit(DMA1_CR0 , DMABSY));
-        ClrBit(DMA1_CR0 , DMAEN);
-    }
-
-    DMA1_LEN = cLen;
-    DMA1_BA  = ulAddr;
-
-    if (bTmp) SetBit(DMA1_CR0 , DMAEN);
-}
-
-void SetEndian_DMA(eType_DMA_Endian eEndian)
-{
-    bool bTmp = false, bTmp1;
-
-    if (ReadBit(DMA0_CR0 , DMAEN))
-    {
-        bTmp = true;
-
-        while (ReadBit(DMA0_CR0 , DMABSY));
-        ClrBit(DMA0_CR0 , DMAEN);
-    }
-
-    if (ReadBit(DMA1_CR0 , DMAEN))
-    {
-        bTmp1 = true;
-
-        while (ReadBit(DMA1_CR0 , DMABSY));
-        ClrBit(DMA1_CR0 , DMAEN);
-    }
-
-    SetReg(DMA0_CR0, ENDIAN, eEndian);
-
-    if (bTmp)  SetBit(DMA0_CR0 , DMAEN);
-    if (bTmp1) SetBit(DMA1_CR0 , DMAEN);
-}
-
-void SetIRQ_DMA(ebool eIRQ, eType_DMA_IRQ eIP)
-{
-    SetReg(DMA0_CR0, DMAIE, eIRQ ? DMAIE : 0);
-
-    if (!EA) EA = 1;
-
-    if (eIRQ) SetReg(IP1 , PDMA1 | PDMA0 , eIP);
-}
-
-void SetDbgMod_DMA(void)
-{
-    bool bTmp = false;
-
-    if (ReadBit(DMA1_CR0 , DMAEN))
-    {
-        bTmp = true;
-
-        while (ReadBit(DMA1_CR0 , DMABSY));
-        ClrBit(DMA1_CR0 , DMAEN);
-    }
-
-    SetBit(DMA1_CR0 , DBGEN);
-    SetBit(DMA1_CR0 , ((eType_DMA_PIPE)DRAM_SPI));
-    DMA1_LEN = 4;
-
-    if (bTmp) SetBit(DMA1_CR0, DMAEN);
-}
-
-/**
- * 设置DMA1的DBG模式
- *
- * @param Addr   要DBG输出的地址
- */
-uint16 xdata spidebug[4] = { 0 };
-void Set_DBG_DMA(uint16 DMAAddr)
-{
-	//	SPI_Init();
-	
-    ClrBit(DMA1_CR0, DMAEN);                                // 禁止DMA1传输
-    SetBit(DMA1_CR0, DBGEN | DRAM_SPI);                     // 设置DMA1使用DBG模式,XDATA发送数据到SPI
-    if (!ReadBit(DMAAddr, 0x4000)) SetBit(DMA1_CR0, DBGSW); //根据DMAAddr判断是否在XRAM区,如果是则开启DBGSW
-
-    DMA1_LEN = 7;                                           // 设置DMA1发送数量为8
-//		DMA1_BA = (uint16)spidebug & 0x07ff; 
-    DMA1_BA = DMAAddr & 0x07ff;                             // 设置DMA1发送首地址
-		SetBit(*(&DMA0_CR0 + 1), DMAEN | DMABSY);
-//    Switch_DMA(1);                                       // 启动DMA1
-}
-
-
-void SetDbgData_DMA(unsigned short ulAddr)
-{
-    bool bTmp = false;
-
-    if (ReadBit(DMA1_CR0, DMAEN))
-    {
-        bTmp = true;
-
-        while (ReadBit(DMA1_CR0, DMABSY));
-        ClrBit(DMA1_CR0, DMAEN);
-    }
-
-    if (ulAddr <= 0xfff) ulAddr += 0x70000000;
-    DMA1_BA = ulAddr;
-
-    if (bTmp) SetBit(DMA1_CR0, DMAEN);
-}
-
-void EnableRun_DMA0(void)
-{
-    SetBit(DMA0_CR0 , DMAEN | DMABSY);
-}
-
-void EnableRun_DMA1(void)
-{
-    SetBit(DMA1_CR0 , DMAEN | DMABSY);
-}
-
-bool GetStatus_DMA0(eType_DMA_Statu eStatu)
-{
-    return ReadBit(DMA0_CR0 , eStatu);
-}
-
-bool GetStatus_DMA1(eType_DMA_Statu eStatu)
-{
-    return ReadBit(DMA1_CR0 , eStatu);
-}
-

+ 0 - 102
User/source/Hardware/DRIVER.c

@@ -1,102 +0,0 @@
-/********************************************************************************
-
- **** Copyright (C), 2019, Fortior Technology Co., Ltd.                      ****
-
- ********************************************************************************
- * File Name     : DRIVER.c
- * Author        : Bruce HW&RD
- * Date          : 2019-03-29
- * Description   : .C file function description
- * Version       : 1.0
- * Function List :
- * 
- * Record        :
- * 1.Date        : 2019-03-29
- *   Author      : Bruce HW&RD
- *   Modification: Created file
-
-********************************************************************************/
-#include "AddFunction.h"
-#include "Driver.h"
-#include "Parameter.h"
-#include "customer.h"
-#include "FU68xx_5_MCU.h"
-
-/*****************************************************************************
- * Function      : Driver_Init
- * Description   : Driver初始化
- * Input         : void  
- * Output        : None
- * Return        : 
- * Others        : 
- * Record
- * 1.Date        : 20190329
- *   Author      : Bruce HW&RD
- *   Modification: Created function
-
-*****************************************************************************/
-void Driver_Init(void)
-{
-	
-    DRV_ARR = PWM_VALUE_LOAD ;     	// 载波频率的周期值
-    DRV_DTR = PWM_LOAD_DEADTIME;	// 死区时间
-    DRV_DR  = 0;
-    DRV_CMR = 0x0abf;              //UH/VH/WH UL/VL/WL 互补
-    DRV_OUT = 0x00;                //空闲电平,默认高电平有效
-
-		/*驱动有效电平和空闲电平*/
-		#if (PWM_Level_Mode == High_Level)
-		{
-					ClrBit(PI_CR , HINV);  // 反相关闭
-					ClrBit(PI_CR , LINV);  // 反相关闭
-		}
-		#elif (PWM_Level_Mode == Low_Level)
-		{
-					SetBit(PI_CR , HINV);  // 反相打开
-					SetBit(PI_CR , LINV);  // 反相打开
-		}
-		#elif (PWM_Level_Mode == UP_H_DOWN_L)
-		{
-					ClrBit(PI_CR , HINV);  // 反相关闭
-					SetBit(PI_CR , LINV);  // 反相打开
-		}
-		#elif (PWM_Level_Mode == UP_L_DOWN_H)
-		{
-					SetBit(PI_CR , HINV);  // 反相打开
-					ClrBit(PI_CR , LINV);  // 反相关闭
-		}
-		#endif //end PWM_Level_Mode  
-
-
-//    SetBit(DRV_SR , FGIE);  //FG中断使能			0-->Disable		1-->Enable
-
-    /*清中断标志位,使能中断,配置比较值,设置中断优先级*/
-    ClrBit(DRV_SR , DCIF);  //清除DRV中断标志位
-    /**************************************************
-    DRV比较匹配中断模式
-    当计数值等于DRV_COMR时,根据DCIM的设置判断是否产生中断标记
-    00:不产生中断        01:上升方向
-    10:下降方向         11:上升/下降方向
-    *************************************************/
-    SetBit(DRV_SR , DCIM1);
-    ClrBit(DRV_SR , DCIM0);
-
-    /*设置DRV计数器的比较匹配值,当DRV计数值与COMR相等时,根据DRV_SR寄存器的DCIM是否产生比较匹配事件*/
-    DRV_COMR = (PWM_VALUE_LOAD >> 3);
-
-    SetBit(IP0 , PDRV1);
-    SetBit(IP0 , PDRV0);
-
-
-    ClrBit(DRV_SR , DCIP);	//0-->1个计数周期产生中断  1-->2个计数周期产生中断
-
-    ClrBit(DRV_CR , FOCEN);
-    /*MESEL为0,ME模块工作在BLDC模式
-    MESEL为1,ME模块工作在FOC/SVPWM/SPWM模式*/
-    SetBit(DRV_CR , MESEL);
-
-    SetBit(DRV_CR , DRVEN);	//计数器使能		0-->Disable		1-->Enable
-    ClrBit(DRV_CR , DRPE);	//计数器比较值预装载使能 0-->Disable		        1-->Enable
-    SetBit(DRV_CR , DRVOE);	//Driver输出使能0-->Disable		1-->Enable
-}
-

+ 0 - 211
User/source/Hardware/FLASH.c

@@ -1,211 +0,0 @@
-//////////////////////////////////////////////////////////////////////////////////
-//文件名:FU6813_FLASH.c                                                          //
-//说明:FU6812系列芯片的DAM底层驱动                                             //
-//Log                                                                           //
-//Timer         Writer      Thing                                           Ver //
-//2018-06-07    Any         优化、重做                                      V1.8//
-//////////////////////////////////////////////////////////////////////////////////
-
-#include <FLASH.h>
-
-/**
- * 预编程一个FLASH扇区
- *
- * @param  FlashAddress 要擦除的扇区内的任一地址
- * @return              执行结果:
- *                      FLASH_FAIL_FROZEN FLASH操作被冻结
- *                      FLASH_FAIL_UNLOCK FLASH编程未解锁
- *                      FLASH_FAIL_ERASE  FLASH擦除失败
- *                      FLASH_SUCCESS     FLASH操作成功
- */
-uint8 PreProgram_Flash(uint16 FlashAddress)
-{
-    bool bEA;
-
-    bEA = EA;
-    EA  = 0;                                                          //关闭总中断
-
-    if (FlashAddress <= 0x7f00)
-    {
-				FLA_CR                         = FLAEN | FLAPRE;							//扇区预编程使能
-        FLA_KEY                        = 0x5a;
-        FLA_KEY                        = 0x1f;                        //FLASH解锁
-				if(ReadBit(RST_SR,RSTFED) == RSTFED)
-				{
-					GP10 = 0;
-					GP11 = 1;
-				}
-		
-        if ((FLA_KEY & (FLAKSTA0 | FLAKSTA1)) == FLAKSTA1)            //检测FLASH是否被冻结
-        {
-            EA = bEA;                                                 //恢复总中断
-            return FLASH_FAIL_FROZEN;
-        }
-
-        *(uint8 xdata *)FlashAddress = 0xff;                         //写任意数据
-
-        FLA_CR                         = FLAACT;                      //开始预编程,完成后FLASH再次上锁
-    }
-
-    EA = bEA;                                                         //恢复总中断
-
-    if(ReadBit(FLA_CR, FLAERR)) return FLASH_FAIL_ERASE;              //读取操作结果
-
-    return FLASH_SUCCESS;
-}
-
-/**
- * 擦除一个FLASH扇区
- *
- * @param  FlashAddress 要擦除的扇区内的任一地址
- * @return              执行结果:
- *                      FLASH_FAIL_FROZEN FLASH操作被冻结
- *                      FLASH_FAIL_UNLOCK FLASH编程未解锁
- *                      FLASH_FAIL_ERASE  FLASH擦除失败
- *                      FLASH_SUCCESS     FLASH操作成功
- */
-uint8 Erase_Flash(uint16 FlashAddress)
-{
-    bool bEA;
-
-    bEA = EA;
-    EA  = 0;                                                           //关闭总中断
-
-    if (FlashAddress <= 0x7f00)
-    {
-				FLA_CR                         = FLAEN | FLAERS;							 //扇区擦除使能
-        FLA_KEY                        = 0x5a;
-        FLA_KEY                        = 0x1f;                         //FLASH解锁
-				if(ReadBit(RST_SR,RSTFED) == RSTFED)
-				{
-					GP10 = 0;
-					GP11 = 1;
-				}
-		
-        if ((FLA_KEY & (FLAKSTA0 | FLAKSTA1)) == FLAKSTA1)             //检测FLASH是否被冻结
-        {
-            EA = bEA;                                                  //恢复总中断
-            return FLASH_FAIL_FROZEN;
-        }
-
-        *(uint8 xdata *)FlashAddress = 0xff;                         	 //写任意数据
-
-        FLA_CR                         = FLAACT;                       //开始擦除,完成后FLASH再次上锁
-    }
-
-    EA = bEA;                                                          //恢复总中断
-
-    if(ReadBit(FLA_CR, FLAERR)) return FLASH_FAIL_ERASE;               //读取操作结果
-
-    return FLASH_SUCCESS;
-}
-
-/**
- * 单字节写FLASH
- *
- * @param  FlashAddress 要操作的FLASH地址
- * @param  FlashData    要写入的数据
- * @return              执行结果:
- *                      FLASH_FAIL_FROZEN FLASH操作被冻结
- *                      FLASH_FAIL_UNLOCK FLASH编程未解锁
- *                      FLASH_FAIL_WRITE  FLASH写入失败
- *                      FLASH_SUCCESS     FLASH操作成功
- */
-uint8 WriteByte_Flash(uint16 FlashAddress, uint8 FlashData)
-{
-    bool bEA;
-
-    bEA = EA;
-    EA  = 0;                                                           //关闭总中断
-
-    if (FlashAddress <= 0x7f00)
-    {
-        FLA_CR                         = FLAEN;                        //使能写入
-			
-        FLA_KEY                        = 0x5a;
-        FLA_KEY                        = 0x1f;                         //FLASH预编程解锁
-        if ((FLA_KEY & (FLAKSTA0 | FLAKSTA1)) == FLAKSTA1)             //检测FLASH是否被冻结
-        {
-            EA = bEA;                                                  //恢复总中断
-            return FLASH_FAIL_FROZEN;
-        }
-
-        *(uint8 xdata *)FlashAddress = FlashData;                    //写任意数据
-
-        FLA_CR                         = FLAACT;                       //开始预编程,完成后FLASH再次上锁
-    }
-
-    EA = bEA;                                                          //恢复总中断
-
-    if(ReadBit(FLA_CR, FLAERR)) return FLASH_FAIL_WRITE;               //读取操作结果
-
-    return FLASH_SUCCESS;
-}
-
-/**
- * 向FLASH写数据
- *
- * @param  FlashAddress 要操作的FLASH地址
- * @param  FlashData    要写入的数据
- * @return              执行结果:
- *                      FLASH_FAIL_FROZEN FLASH操作被冻结
- *                      FLASH_FAIL_UNLOCK FLASH编程未解锁
- *                      FLASH_FAIL_WRITE  FLASH写入失败
- *                      FLASH_SUCCESS     FLASH操作成功
- */
-uint8 Write_Flash(uint16 FlashAddress, uint8* FlashData, uint16 sizes)
-{
-    bool bEA;
-    uint8 WriteByte;
-
-    bEA = EA;
-    EA  = 0;                                                           //关闭总中断
-
-    while (sizes)
-    {
-        if (FlashAddress <= 0x7f00)
-        {
-            WriteByte                      = *FlashData;
-
-            FLA_CR                         = FLAEN;
-
-            FLA_KEY                        = 0x5a;
-            FLA_KEY                        = 0x1f;
-            if ((FLA_KEY & (FLAKSTA0 | FLAKSTA1)) == FLAKSTA1)
-            {
-                EA = bEA;                                              //恢复总中断
-                return FLASH_FAIL_FROZEN;
-            }
-
-            *(uint8 xdata *)FlashAddress = WriteByte;
-
-            FLA_CR                         = FLAACT;
-
-            if(ReadBit(FLA_CR, FLAERR))
-            {
-                EA = bEA;                                              //恢复总中断
-                return FLASH_FAIL_WRITE;
-            }
-        }
-
-        FlashAddress++;
-        FlashData++;
-        sizes--;
-    }
-
-    EA = bEA;                                                          //恢复总中断
-
-    return FLASH_SUCCESS;
-
-}
-
-/**
- * 读取指定FLASH地址的内容
- *
- * @param  FlashAddress 要读取的FLASH的地址
- * @return              该地址的内容
- */
-uint8 Read_Flash(uint16 FlashAddress)
-{
-    return *(uint8 code *)FlashAddress;
-}

+ 0 - 153
User/source/Hardware/GPIO.c

@@ -1,153 +0,0 @@
-/********************************************************************************
-
- **** Copyright (C), 2020, Fortior Technology Co., Ltd.                      ****
-
- ********************************************************************************
- * File Name     : GPIO.c
- * Author        : Bruce HW&RD
- * Date          : 2020-10-15
- * Description   : .C file function description
- * Version       : 1.0
- * Function List :
- * 
- * Record        :
- * 1.Date        : 2020-10-15
- *   Author      : Bruce HW&RD
- *   Modification: Created file
-
-********************************************************************************/
-
-#include "FU68xx_5.h"
-#include <Myproject.h>
-
-void GPIO_Init(void)
-{  
-
-
-    SetBit(P4_OE , P42);//电子膨胀阀驱动IO-A  P4_OE = P42;
-	  GP42 = 0;
- 
-			/*交流风机--输出*/
-//	  GP44 = 0;
-    SetBit(P4_OE , P44);//电子膨胀阀驱动IO-A  P4_OE = P42;??
-    GP44 = 0;
-		
-		/*继电器相关 --  输出*/
-	  /*PTC_RELAY*/
-//	  GP51 = 0;
-    SetBit(P5_OE , P51);
-    GP51 = 0;
-		
-		/*DJR*/
-//		GP04 = 0;
-    SetBit(P0_OE , P04);
-		SetBit(P0_PU , P04);
-    GP04 = 0;
-		
-		/*4WAY*/
-//		GP01 = 0;
-    SetBit(P0_OE , P01);
-    GP01 = 0;
-		SetBit(P0_OE , P07);//电子膨胀阀驱动IO-D  P0_OE = P07;
-		GP07 = 0;
-		SetBit(P0_OE , P00);//电子膨胀阀驱动IO-D  P0_OE = P07;
-		GP00 = 0;
-		SetBit(P1_OE , P10);//电子膨胀阀驱动IO-C  P1_OE = P10;
-		GP10 = 0;
-		SetBit(P4_OE , P41);//电子膨胀阀驱动IO-B  P4_OE = P41;
-		GP41 = 0;
-		SetBit(P1_OE , P11);//电子膨胀阀驱动IO-C  P1_OE = P10;
-		GP11 = 0;
-		/*LED*/
-//		GP22 = 0;
-    SetBit(P0_OE , P03);
-    GP03 = 0;
-
-    
-}
-
-
-
-
-
-/*****************************************************************************
- * Function      : INT0_Init
- * Description   : INT0初始化
- * Input         : void  
- * Output        : None
- * Return        : 
- * Others        : 
- * Record
- * 1.Date        : 20201015
- *   Author      : Bruce HW&RD
- *   Modification: Created function
-
-*****************************************************************************/
-void INT0_Init(void)
-{
-    /*EXTI Input Pin 配置 ---------------------------------------- */
-    ClrBit(P0_OE , PIN2);  // config P00 as input,配置P0.0为硬件过流FO端口
-    ClrBit(P0_PU , PIN2);  // 0:disable pull up, 1:enable P10 pull up
-
-    SetReg(LVSR , EXT0CFG0 | EXT0CFG1 | EXT0CFG2 , EXT0CFG1); //外部中断0配置
-
-    IF0	 = 0; // clear P00 interrupt flag
-
-    // 00: rising edge interrupt,01: failing edge interrupt,1x: edge-change mode interrupt
-    IT01 = 0;
-    IT00 = 1;
-    
-    SetBit(EVT_FILT , INT0_MOE_EN); //INT0中断关闭MOE使能
-    
-    /*----------------------------------------------------------------------------------
-    母线电流保护时间滤波宽度
-    00-不滤波    
-    01-6cpu clock    
-    10-12cpu clock    
-    11-24cpu clock
-    -----------------------------------------------------------------------------------*/
-    SetBit(EVT_FILT , EFDIV1);
-    ClrBit(EVT_FILT , EFDIV0);
-    /*---------------------------------------------------------------------------
-    外部中断优先级配置及芯片中断总使能
-    PX01-PX00,中断优先级控制值从0-3依次表示优先级从最低到最高,共4级优化级控制
-    EX0,外部中断0使能
-    EA,芯片中断总使能
-    外部中断是否有滤波的配置,决定于选择硬件保护触发信号源,外部中断0或者比较器3中断。
-    若选择了比较器3中断,则外部中断无法进行滤波配置
-    --------------------------------------------------------------------------*/
-		SetBit(IP0 , PX01);//优先级
-		SetBit(IP0 , PX00); 
-    
-    EX0 = 1;		// 使能外部中断0, POO位外部中断输入硬件
-    
-    EA = 1;			// 使能全局中断
-}
-
-void INT1_Init(void)
-{
-   ClrBit(P1_OE, P12);  // config P11 as input
-	 ClrBit(P1_PU, P12);  // diasable P11 Pull Up
-
-	 SetBit(P1_IE, P12);  // config P11 as input
-	 ClrBit(P1_IF, P12);
-	 
-	 
-   IT11 = 0;
-   IT10 = 1;                               // 00: rising edge interrupt,01: failing edge interrupt,1x: edge-change mode interrupt
-
-	 SetBit(IP0 , PX11);//优先级
-	 SetBit(IP0 , PX10); 
-
-   EX1 = 1;                                // 使能外部中断1, P11位外部中断输入硬件
-}
-
-/*Value--定时时间,单位ms,最小定时时间8ms,最大定时1800ms*/
-void WatchDogConfig(uint32 value, uint8 Status)
-{
-    SetReg(CCFG1, WDT_EN, (Status ? WDT_EN : 0x00));
-    WDT_ARR = ((uint16)(65532-value*32768/1000) >> 8);
-    ClrBit(WDT_CR, WDTF);
-    SetBit(WDT_CR, WDTRF);
-}
-

+ 0 - 80
User/source/Hardware/I2C.c

@@ -1,80 +0,0 @@
-/********************************************************************************
-
- **** Copyright (C), 2019, Fortior Technology Co., Ltd.                      ****
-
- ********************************************************************************
- * File Name     : I2C.c
- * Author        : Bruce HW&RD
- * Date          : 2019-03-27
- * Description   : .C file function description
- * Version       : 1.0
- * Function List :
- * 
- * Record        :
- * 1.Date        : 2019-03-27
- *   Author      : Bruce HW&RD
- *   Modification: Created file
-
-********************************************************************************/
-
-#include "I2C.h"
-
-/*
-void I2C_Init_Master(void)
-{
-    SetBit(P0_PU , P00);
-    SetBit(P0_PU , P01);
-   // I2C initial
-    SetBit(I2C_CR , I2CMS);	    //主从模式选择	0-->Slave Mode  1-->Host Mode
-    ClrBit(I2C_CR , I2CSPD1);	//00-->100kHz		01-->400kHz
-    SetBit(I2C_CR , I2CSPD0);	//10-->1MHz			11-->RSV
-    ClrBit(I2C_CR , I2CIE);	    //中断使能		   0-->Disable 1-->Enable
-    I2C_ID = 0xD0;   
-    SetBit(I2C_ID , GC);	//广播呼叫使能	0-->Disable 1-->Enable
-    SetBit(I2C_CR , I2CEN);	//I2C使能		0-->Disable 1-->Enable
-}
-
-void I2C_ID_Start(bool rw)
-{
-    if(rw)
-        SetBit(I2C_SR , DMOD);	
-    else
-        ClrBit(I2C_SR , DMOD);	
-    SetBit(I2C_SR , I2CSTA);	//1-->发送START或RESTART和地址字节
-    while(!ReadBit(I2C_SR , STR));
-    ClrBit(I2C_SR , STR);    
-}
-
-void I2C_Addr_Write(unsigned char addr,unsigned char wdata)
-{
-    I2C_ID_Start(0);    // ID write
-
-    I2C_DR = addr;      // Slave reg addr.
-    while(!ReadBit(I2C_SR , STR));	
-    ClrBit(I2C_SR , STR);
-
-    I2C_DR = wdata;     // Slave reg data.
-    while(!ReadBit(I2C_SR , STR));	
-    ClrBit(I2C_SR , STR);
-    SetBit(I2C_SR , I2CSTP);	//1-->发送STOP
-}
-
-unsigned char I2C_Addr_Read(char addr)
-{
-    unsigned char rd_data;
-    //write process  
-    I2C_ID_Start(0);  // write+ID
-    I2C_DR = addr;   // write reg. addr
-    while(!ReadBit(I2C_SR , STR));	
-    ClrBit(I2C_SR , STR);
-//    SetBit(I2C_SR , I2CSTP);	//1-->发送STOP
-
-    //read process
-    I2C_ID_Start(1);  // read+ID
-    while(!ReadBit(I2C_SR , STR));	 
-    ClrBit(I2C_SR , STR);
-    rd_data = (unsigned char)(I2C_DR); // read data
-    SetBit(I2C_SR , NACK);      //第9位发送NACK 
-    SetBit(I2C_SR , I2CSTP);    //1-->发送STOP
-    return(rd_data);
-}*/

+ 0 - 77
User/source/Hardware/SPI.c

@@ -1,77 +0,0 @@
-/********************************************************************************
-
- **** Copyright (C), 2020, Fortior Technology Co., Ltd.                      ****
-
- ********************************************************************************
- * File Name     : SPI.c
- * Author        : Bruce HW&RD
- * Date          : 2020-10-15
- * Description   : .C file function description
- * Version       : 1.0
- * Function List :
- * 
- * Record        :
- * 1.Date        : 2020-10-15
- *   Author      : Bruce HW&RD
- *   Modification: Created file
-
-********************************************************************************/
-
-#include "SPI.h"
-#include "FU68xx_5_MCU.h"
-
-/*****************************************************************************
- * Function      : SPI_Init
- * Description   : SPI初始化
- * Input         : void  
- * Output        : None
- * Return        : 
- * Others        : 
- * Record
- * 1.Date        : 20190402
- *   Author      : Bruce HW&RD
- *   Modification: Created function
-
-*****************************************************************************/
-void SPI_Init(void)
-{
-	ClrBit(SPI_CR1 , SPIEN);// 0,disable SPI;1 enable
-
-/*-------------------------------------------------------------------------------------------------
-  SPI管脚配置
-	1、禁止UART复用,P06配置为MISO,P05配置为MOSI
-	2、禁止比较器输出复用,P07配置为SCLK
--------------------------------------------------------------------------------------------------*/
-    ClrBit(PH_SEL , UART1EN);// 0,P06 as GPIO or SPI_MISO,P05 as GPIO or SPI_MOSI;1,P06 and p07 as USART
-    ClrBit(PH_SEL1 , SPICT); // 0:P05/P06 1:P00/P01
-/*-------------------------------------------------------------------------------------------------
-	SPI时钟相位/极性配置
-	CPHA = 0, CPOL = 0:上升沿接收,下降沿发送,空闲电平为低
-	CPHA = 0, CPOL = 1:上升沿发送,下降沿接收,空闲电平为高
-	CPHA = 1, CPOL = 0:上升沿发送,下降沿接收,空闲电平为低
-	CPHA = 1, CPOL = 1:上升沿接收,下降沿发送,空闲电平为高
--------------------------------------------------------------------------------------------------*/
-	SetReg(SPI_CR0 , CPHA | CPOL , CPOL);
-/*-------------------------------------------------------------------------------------------------
-	SPI从方式选择配置
-	00:3线从方式或3线主方式,NSS信号不连到端口管脚
-	01:4线从方式或4线多主方式,NSS配置为输入
-	1x:4线单主方式,NSS配置为输出,NSS信号输出x电平
--------------------------------------------------------------------------------------------------*/
-//	SetReg(SPI_CR1 , NSSMOD0 | NSSMOD1 , NSSMOD0 | NSSMOD1);    //三线DBG模式
-    SetReg(SPI_CR1 , NSSMOD0 | NSSMOD1 , NSSMOD0|NSSMOD1);  // 11:三线制     01:单线制(P05)
-    SetBit(SPI_CR0 , SPIMS);                        // 0:Slave, 1:Master
-
-/*-------------------------------------------------------------------------------------------------
-	SPI中断配置
-	SPIF:SPI字节传输完成中断标志,硬件置位,软件清零
-	WCOL:SPI写冲突中断(发送缓冲器非空时写操作),硬件置位,软件清零
-	MODF:SPI方式错误中断(多主方式NSS被拉低,MSTEN和SPIEN被清零)硬件置位,软件清零
-	RXOVRN:SPI接收溢出中断(SPI接收缓冲器接收溢出),硬件置位,软件清零
--------------------------------------------------------------------------------------------------*/
-    SetReg(SPI_CR1 , SPIIF|WCOL|MODF|RXOVRN , 0x00);// SPI所有中断清除
-    SPIIE = 0;                                  // SPI中断使能
-    SPI_CLK = 0;		// Fspi = Fcpu / (2*(SPI_CLK + 1)) = 6MHz
-    SetBit(SPI_CR1 , SPIEN);					// Enable SPI
-}
-

+ 0 - 82
User/source/Hardware/TIMER.c

@@ -1,82 +0,0 @@
-#include "TIMER.h"
-#include "FU68xx_5_MCU.h"
-
-void Timer2_Init(void)
-{
-    SetBit(PH_SEL , T2SEL);	    //P10
-    SetBit(PH_SEL , T2SSEL);	//P07	
-    ClrBit(TIM2_CR0 , T2PSC2);	//计数器时钟分频选择
-    ClrBit(TIM2_CR0 , T2PSC1);	//000-->24M		001-->12M		010-->6M	011-->3M
-    ClrBit(TIM2_CR0 , T2PSC0);	//100-->1.5M	101-->750K		110-->375K	111-->187.5K
-    ClrBit(TIM2_CR0 , T2OCM);
-    SetBit(TIM2_CR0 , T2IRE);	//比较匹配中断/脉宽检测中断0-->Disable  1-->Enable
-    ClrBit(TIM2_CR0 , T2CES);	
-
-    ClrBit(TIM2_CR1 , T2IPE);	//输入Timer PWM周期检测中断使能 0-->Disable  1-->Enable
-    ClrBit(TIM2_CR1 , T2IFE);	//计数器上溢中断使能 0-->Disable  1-->Enable
-    ClrBit(TIM2_CR1 , T2FE);	//输入噪声滤波使能,小于4个时钟周期脉宽滤除
-    ClrBit(TIM2_CR1 , T2DIR);	//QEP&ISD&步进模式专用:当前的方向 0-->正向	1-->反向	
-
-    TIM2__DR = 1200;
-    TIM2__ARR = 2400;
-    ClrBit(TIM2_CR0 , T2MOD1);	//00-->输入Timer模式  			01-->输出模式
-    SetBit(TIM2_CR0 , T2MOD0);	//10-->输入Counter模式  		11-->QEP&ISD&步进模式
-    SetBit(TIM2_CR1 , T2CEN);	//TIM2使能	0-->Disable  1-->Enable
-}
-
-void Timer3_Init(void)
-{
-    SetBit(PH_SEL , T3SEL);     //Timer3端口使能
-	  ClrBit(PH_SEL1 , T3CT0);     //默认端口为P11,功能转移后为P01,需TIMER4转移到P00
-    ClrBit(PH_SEL1 , T3CT1);     //默认端口为P11,功能转移后为P01,需TIMER4转移到P00
-	  ClrBit(TIM3_CR0 , T3PSC2);	//计数器时钟分频选择
-	  SetBit(TIM3_CR0 , T3PSC1);	//000-->24M		001-->12M		010-->6M	011-->3M
-	  SetBit(TIM3_CR0 , T3PSC0);	//100-->1.5M	101-->750K		110-->375K	111-->187.5K
-//    SetReg(TIM3_CR0 , T3PSC2 | T3PSC1 | T3PSC0 , T3PSC2 | T3PSC1 | T3PSC0);
-    SetBit(TIM3_CR0 , T3OCM);
-    ClrBit(TIM3_CR0 , T3IRE);	//比较匹配中断/脉宽检测中断0-->Disable  1-->Enable
-    ClrBit(TIM3_CR0 , T3OPM);	//0-->计数器不停止		1-->单次模式	
-
-    ClrBit(TIM3_CR1 , T3IPE);	//输入Timer PWM周期检测中断使能 0-->Disable  1-->Enable
-    ClrBit(TIM3_CR1 , T3IFE);	//计数器上溢中断使能 0-->Disable  1-->Enable
-    ClrBit(TIM3_CR1 , T3NM1);	//输入噪声脉宽选择
-    SetBit(TIM3_CR1 , T3NM0);	//00-->不滤波	01-->4cycles    10-->8cycles  11-->16cycles
-
-    SetBit(TIM3_CR0 , T3MOD);   //0-->Timer模式       1-->输出模式
-		TIM3__CNTR = 0;
-    TIM3__DR = 0;           //分子,给定输出PWM占空比
-    TIM3__ARR = 1000;     //分母周期值,给定输出PWM周期,频率1000  3k   2000  1.5k
-		
-		
-    SetBit(TIM3_CR1 , T3EN);    //TIM3使能    0-->Disable  1-->Enable
-}
-
-void Timer4_Init(void)
-{
-    ClrBit(TIM4_CR1, T4EN);     //0-停止计数;1-使能计数
-    SetBit(PH_SEL ,  T4SEL);	    //Timer4端口使能
-    SetBit(PH_SEL1 , T4CT0);	    //默认端口为P01,功能转移后为P00
-	  SetBit(PH_SEL1 , T4CT1);	    //默认端口为P01,功能转移后为P00
-	  SetBit(TIM4_CR0 , T4PSC2);	//计数器时钟分频选择
-	  SetBit(TIM4_CR0 , T4PSC1);	//000-->24M		001-->12M		010-->6M	011-->3M
-	  ClrBit(TIM4_CR0 , T4PSC0);	//100-->1.5M	101-->750K		110-->375K	111-->187.5K
-	
-	  
-    SetBit(TIM4_CR0 , T4OCM);
-    ClrBit(TIM4_CR0 , T4IRE);	//比较匹配中断/脉宽检测中断0-->Disable  1-->Enable
-    ClrBit(TIM4_CR0 , T4OPM);	//0-->计数器不停止		1-->单次模式	
-
-//	  ClrBit(TIM4_CR1, T4IR | T4IF | T4IP); // 清除中断标志位
-    ClrBit(TIM4_CR1 , T4IPE);	//输入Timer PWM周期检测中断使能 0-->Disable  1-->Enable
-    ClrBit(TIM4_CR1 , T4IFE);	//计数器上溢中断使能 0-->Disable  1-->Enable
-    ClrBit(TIM4_CR1 , T4NM1);	//输入噪声脉宽选择
-    ClrBit(TIM4_CR1 , T4NM0);	//00-->不滤波	01-->4cycles  10-->8cycles  11-->16cycles
-	
-    ClrBit(TIM4_CR0 , T4MOD);	//0-->Timer模式  1-->输出模式
-	  TIM4__CNTR = 0;
-	  TIM4__DR = 0;
-	  TIM4__ARR = 0;
-
-    SetBit(TIM4_CR1 , T4EN);	//TIM4使能	0-->Disable  1-->Enable
-		
-}

+ 0 - 457
User/source/Hardware/UART.c

@@ -1,457 +0,0 @@
-/********************************************************************************
-
- **** Copyright (C), 2019, Fortior Technology Co., Ltd.                      ****
-
- ********************************************************************************
- * File Name     : UART.c
- * Author        : Bruce HW&RD
- * Date          : 2019-09-11
- * Description   : .C file function description
- * Version       : 1.0
- * Function List :
- * 
- * Record        :
- * 1.Date        : 2019-09-11
- *   Author      : Bruce HW&RD
- *   Modification: Created file
-
-********************************************************************************/
-#include "FU68xx_5.h"
-#include <Myproject.h>
-
-//MCUART   xdata  Uart;
-ddatet1  xdata  DATA1;
-DATE_HUI xdata  DATA2_Hui;
-
-uint8   FaultCommuMonCt=0;
-
-extern int8 xdata UART1_RX_flag;
-extern int8 xdata UART1_TX_flag;
-extern int8 xdata  UART1_Rec_S;
-extern int8 UART1_rx_rat_time,UART1_rx_count;
-extern uint8 xdata UART1_In_L,UART1_In_H;	  //
-extern int8  xdata UART1_Rx_dat[12];//Á¬ÊÕ8×Ö½Ú
-
-void UART2_Init(void)
-{
-	  uint16  bps=0;
-	  #if (Uart_COMMUNICATION==0)
-		{
-			 bps=1200;
-		}
-		#elif (Uart_COMMUNICATION==1)
-		{
-       bps=9600;
-    }
-		#endif
-    SetBit(PH_SEL,UART2EN);      
-    /* UART模式 UT2_MOD1,UT2_MOD0为: 
-    00  模式0,移位寄存器波特率为 系统时钟 /12
-    01  模式1,8-bit UART 波特率为 fcpu_clk / ( (16 / (1+ UT2_BAUD[BAUD2_SEL]) ) / (UT2_BAUD+1) )
-    10  模式2,9-bit UART 波特率为 fcpu_clk / ( 32 – 16* UT2_BAUD[BAUD2_SEL])
-    11  模式3,9-bit UART 波特率为 fcpu_clk / ( (16 / (1+ UT2_BAUD[BAUD2_SEL])) / (UT2_BAUD+1) )   */
-    
-    UT2MOD1 = 0;                // 9位模式    01
-    UT2MOD0 = 1;
-    /* Does not allow multi-thread cpu operation */
-    /* UT2_SM2 为 0 - 单机通讯为 1 - 多机通讯 */
-    UT2SM2 = 0;    
-    /* UT2_REN 为 0 - 禁止接收为 1 - 使能接收 */ 
-    UT2REN = 1;
-    UT2RI = 0; 
-    /* Uart2设置中断优先级 */
-    
-    SetBit(IP3, PSPI_UT21);
-    ClrBit(IP3, PSPI_UT20);
-    
-    // UART2CH1, UART2CH0
-    // 00:P3.6 为 RXD、P3.7 为 TXD(P3.6 为单线模式的输入输出)
-    // 01:P4.7 为 RXD、P1.2 为 TXD(P1.2 为单线模式的输入输出)
-    // 1X:P0.1 为 RXD、P0.0 为 TXD(P0.1 为单线模式的输入输出)
-    
-    ClrBit(PH_SEL1,UART2CH1);
-    ClrBit(PH_SEL1,UART2CH0);
-
-
-    // 设置波特率 根据 fcpu_clk / ( (16 / (1+ UT2_BAUD[BAUD2_SEL]) ) / (UT2_BAUD+1) )计算
-    
-    UT2_BAUD = 0;
-//    if (bps > 600)
-    {
-        UT2_BAUD |= 1500000 / bps - 1;
-    }
-//    else
-//    {
-//        SetBit(UT2_BAUD,BAUD2_SEL);
-//        
-//        UT2_BAUD |= 750000 / bps - 1;
-//    }
-
-    
-    /* Enable UART2 interrupt */
-    
-    SetBit(UT2_BAUD,UART2IEN);
-}
-
-void UART1_Init(void)
-{
-        #if (Debugg==1)
-				{
-					 /*工具程序*/
-					    /*工具*/
-					SetBit(PH_SEL, UART1EN);     //p0[6]as UART_RXD; p0[5]as UART_TXD
-					UT_MOD1 = 0;
-					UT_MOD0 = 1;                //8bit?????UART??
-					SM2 = 0;                    //??Mode2?Mode3????
-					REN = 1;                    //????
-					ES0 = 0;                    //????	
-					SetBit(IP3 , PI2C_UT11);
-					ClrBit(IP3 , PI2C_UT10);   // 中断优先级别3	
-//					SetBit(UT_BAUD , UART_2xBAUD);  //????0-->Disable  1-->Enable
-					UT_BAUD = 0x9B;             //default baudrate:9600-0x9b,1200-0x4E1  00  150000      1D =50000
-					ES0 = 1;                    //??/??????
-
-				}
-				#else
-				{
-				//    /*自己串口*/
-						SetBit(PH_SEL, UART1EN);     //p0[6]as UART_RXD; p0[5]as UART_TXD
-						UT_MOD1 = 0;
-						UT_MOD0 = 1;                //8bit?????UART??
-						SM2 = 0;                    //??Mode2?Mode3????
-						REN = 1;                    //????
-						ES0 = 0;                    //????
-            ClrBit(IP3 , PI2C_UT11);
-					  ClrBit(IP3 , PI2C_UT10);   // 中断优先级别3	
-					  SetBit(UT_BAUD , UART_2xBAUD);  //????0-->Disable  1-->Enable
-						UT_BAUD = 0x00;             //default baudrate:9600-0x9b,1200-0x4E1  00  150000      1D =50000
-						ES0 = 0;                    //??/??????
-        }
-				#endif		
-}
-
-char putchar(char c)
-{
-    UT_DR = c;
-	  while (TI==0){};TI=0;
-    return c;
-}
-
-/*P是PSW程序状态字的一个位,表示奇偶校验位:它用来表示ALU运算结果中二进制数位“1”的个数的奇偶性。
-若为奇数,则P=1,否则为0。 运算结果有奇数个1,P=1;运算结果有偶数个1,P=0。*/
-//奇校验(odd parity):让传输的数据(包含校验位)中1的个数为奇数。
-//偶校验(even parity):让传输的数据(包含校验位)中1的个数为偶数。
-
-
-//  Buf  校验的数据  o_or_e   奇偶方式选择
-
-uint8 even_or_odd(uint8 Buf,uint8 o_or_e)
-{
-
-	  uint8  even_odd=0,tmpP=0; 
-		ACC  = Buf;
-		tmpP = P;             
-	
-	  if(o_or_e == 0)       //偶校验
-		{
-				even_odd = (tmpP==1)?1:0;			
-    }
-		else                 //奇校验
-		{
-				even_odd = (tmpP==1)?0:1;
-    }
-		return even_odd;
-}
-
-#if (Uart_Select==Uart_MoNi)
-
-/*数据接收函数*/
-void UartRecive(void)
-{	  
-	  Uart.UartReadTemp =RX_BUF ;       // 读接收数据
-	  Uart.R_DATA[Uart.UartReadCnt++]= Uart.UartReadTemp;
-} 
-
-/*数据发送函数*/
-void UartSend(void)
-{
-		if (Uart.TxCnt < (TX_LEN1-1))	
-    {
-				Uart.TxCnt++;
-				TX_BUF =Uart.T_DATA[Uart.TxCnt];
-    }
-		else
-		{   Uart.TxCnt=0;
-				Uart.sendflag=0;
-    }
-} 
-
-
-/*串口数据处理,处理接收到的串口数据,运行于大循环中*/
-void UartDealResponse(void)
-{
-	 uint8 i;
-	
-	 Uart_Check();//判断接收的数据是否正确
-	
-	 if(Uart.sussf_falg==1)//数据接收正确且成功
-	 {
-
-			 Uart.ResponseFlag=1;//发送延时计时标志位
-			 Uart.UartReadCnt=0;
-			 Uart.time_shuju=0;
-			 mcFaultDect.commu_time=0;
-			 /*提取并转换串口接收数据*/
-			 /*压机速度获取*/
-			 DATA1.DATA12=Uart.R_DATA[1];
-			 if(DATA1.bf.DATA1_0==1)
-			 {
-					Uart.YaJI_Speed          =(uint16) Uart.R_DATA[2]*60;
-					if(Uart.R_DATA[2]==0)
-					{
-						 Uart.YaJI_Speed         = 0;
-					}							
-			 }
-			 else
-			 {
-					Uart.YaJI_Speed  =0;
-			 }
-			 ConTrolCmd.yajispeed=Uart.YaJI_Speed;
-			 /*4通阀控制*/
-			 if(DATA1.bf.DATA1_1==1)
-			 {
-				 ConTrolCmd.sitongfa=1;
-			 }
-			 else//4通阀关闭
-			 {
-				 ConTrolCmd.sitongfa=0;
-			 }
-			 
-			 /*风机速度获取*/
-			 if(DATA1.bf.DATA1_2==1)//室外风机
-			 {
-				 Uart.FengSpeed      = (uint16)Uart.R_DATA[3]*10;
-			 }
-			 else
-			 {
-				 Uart.FengSpeed      = 0;
-			 }
-			 ConTrolCmd.fengjispeed=Uart.FengSpeed;
-			 
-			 
-			/*电子膨胀阀开度获取*/
-			 if(DATA1.bf.DATA1_6==1)//电子膨胀阀
-			 {
-					Uart.PengZhangFa    = Uart.R_DATA[4] +256;						 
-			 }
-			 else
-			 {
-					Uart.PengZhangFa    = Uart.R_DATA[4];						 
-			 }
-       ConTrolCmd.dianzifakaidu=Uart.PengZhangFa;
-
-				/*回传数据*/
-			 for(i=0;i<=TX_LEN1;i++)  //赋值之前先清零
-			 {
-					 Uart.T_DATA[i]=0;
-			 }
-			 DATA2_Hui.DATA_HUI=0;   //先清零
-			 
-			 if(mcSpeedRamp.FlagONOFF ==1)
-			 {
-				 DATA2_Hui.bf.DATA2_0=1;
-			 }
-			 if(ConTrolCmd.sitongfa ==1)
-			 {
-				 DATA2_Hui.bf.DATA2_1=1;
-			 } 
-			 if( Uart.FengSpeed)
-			 {
-				 DATA2_Hui.bf.DATA2_2=1;
-			 }
-			 
-			 Uart.PengZhangFa_ACT=bujindianji.Act;
-			 if(bujindianji.Act>500)
-			 {
-				  DATA2_Hui.bf.DATA2_6=1;
-				 	Uart.PengZhangFa_ACT  =500-256 ;      //电子膨胀阀开度
-			 }
-			 else if(bujindianji.Act>255)
-			 {
-				  DATA2_Hui.bf.DATA2_6=1;
-				 	Uart.PengZhangFa_ACT  =bujindianji.Act-256 ;      //电子膨胀阀开度
-			 }
-			 else
-			 {
-				  DATA2_Hui.bf.DATA2_6=0;
-				 	Uart.PengZhangFa_ACT  =(uint8)bujindianji.Act ;      //电子膨胀阀开度
-			 }
-			 
-			  cumfault_6();
-			 
-			  Uart.T_DATA[0]  =  TX_ZHENTOU1;
-			  Uart.T_DATA[1]  =  DATA2_Hui.DATA_HUI;
-				Uart.T_DATA[2]  =  S_Value2;                                                           //压机速度(rps)
-				Uart.T_DATA[3]  =  Fengji_FG.FENJIPINLV2/10;                                           //风机转速
-				Uart.T_DATA[4]  =  Uart.PengZhangFa_ACT ;                                              //电子膨胀阀开度
-				Uart.T_DATA[5]  =  (uint8)(Huan_temp/5+100);//(uint8)(RealTempjisuan(AdcSampleValue.ADC_huan_temp>>3,3)/5+100) ;   //环境温度
-				Uart.T_DATA[6]  =  (uint8)(Guan_temp/5+100);//(uint8)(RealTempjisuan(AdcSampleValue.ADC_guan_temp>>3,2)/5+100) ;   //交换器温度
-				Uart.T_DATA[7]  =  (uint8)(Paiqi_temp/10+50);//(uint8)(RealTempjisuan(AdcSampleValue.ADC_paiqi_temp>>3,1)/10+50) ;  //排气温度
-				Uart.T_DATA[8]  =  0x00 ;	                                                             //预留
-				Uart.T_DATA[9]  =  FaultCommuMonCt ;                                                      //预留
-				Uart.T_DATA[10] =  checkAdd1(Uart.T_DATA,0,TX_LEN1-1);
-			 
-				Uart.TxCnt=0;
-			 	Uart.sussf_falg=0;
-	 }
-			
-			
-	   if((Uart.time_cnt>500||Uart.time_shuju>2000)&&Uart.sendflag==0)//16s内读取不到数据清零或2s内校验不成功
-		 {
-			 
-			  Uart.UartReadCnt=0;
-			  Uart.time_shuju=0;
-				for(i=0;i<RX_LEN1;i++)
-				{
-					 Uart.R_DATA[i]=0;
-				}
-				UART1_RX_flag=0;
-				UART1_TX_flag=0;
-				UART1_Rec_S = 0;
-			  UART1_rx_count=0;
-			  UART1_rx_rat_time=0;
-			  UART1_In_L=0;
-			  UART1_In_H=0;
-			  RX_BUF=0;
-			  for(i=0;i<11;i++)
-			  {
-				   UART1_Rx_dat[i] =0;
-			  }
-		 }
-	 
-	 
-	    if(Uart.send_delay_time>=160)//延时160ms发送
-			{
-					TX_BUF=Uart.T_DATA[0];
-					Uart.sendflag=1;
-					Uart.TxCnt=0;
-					Uart.send_delay_time=0;
-					Uart.ResponseFlag=0;  
-			}	 
-} 
-
-/*SUM1求和检验*/
-uint8 checkAdd1(uint8 *chCheckAdrr, uint8 chStartAddr,uint8 iCheckCnt)  
-{
-	 uint8 i;
-	 uint8 iCheckResult = 0;
-
-	chCheckAdrr += chStartAddr;
-	for(i=0; i<iCheckCnt; i++)
-	{
-		iCheckResult += *chCheckAdrr;
-		chCheckAdrr++;
-	}
-	iCheckResult &=0xff;
-	return (iCheckResult);
-}	
-
-
-/*SUM2求和检验*/
-uint8 checkAdd2(uint8 *chCheckAdrr, uint8 chStartAddr,uint8 iCheckCnt)  
-{
-	 uint8 i;
-	 uint8 iCheckResult = 0;
-
-	chCheckAdrr += chStartAddr;
-	for(i=0; i<iCheckCnt; i++)
-	{
-		iCheckResult += *chCheckAdrr;
-		chCheckAdrr++;
-	}
-	iCheckResult &=0xff;
-	return (iCheckResult);
-}
-
-void Uart_Check(void)
-{
-     uint8 i=0;
-	
-	   if(Uart.R_DATA[0]!=RX_ZHENTOU1)//针头错误清零
-		 {
-			  UART1_RX_flag=0;
-				UART1_TX_flag=0;
-			 	Uart.UartReadCnt=0;
-				for(i=0;i<RX_LEN1;i++)
-				{
-					 Uart.R_DATA[i]=0;
-				}
-			}
-			
-		 if(Uart.UartReadCnt>=RX_LEN1)
-		 {
-				Uart.UartReadCnt=0;
-				if((Uart.R_DATA[0]==RX_ZHENTOU1)&&(checkAdd2(Uart.R_DATA,0,(RX_LEN1-1))==Uart.R_DATA[RX_LEN1-1]))//将读取的正确数据转换为所用数据,并将所需数据给Uart.T_DATA赋值
-				{
-						Uart.sussf_falg=1;
-				}				
-				if((Uart.R_DATA[0]!=RX_ZHENTOU1)||(checkAdd2(Uart.R_DATA,0,RX_LEN1-1)!=Uart.R_DATA[RX_LEN1-1])) //检验不对清零	
-				{
-						Uart.sussf_falg=0;
-					  UART1_RX_flag=0;
-					  UART1_TX_flag=0;
-						Uart.UartReadCnt=0;
-						for(i=0;i<RX_LEN1;i++)
-						{
-							 Uart.R_DATA[i]=0;
-						}
-				 }
-		 }
-}
-
-void cumfault_6(void)
-{
-		if(((mcFaultSource==FaultHardOVCurrent)||(mcFaultSource==FaultSoftOVCurrent))&&(mcProtectTime.CurrentPretectTimes>=CurrentProtectRestartTimes))
-		{
-				FaultCommuMonCt=4;
-		}
-		else if((mcFaultSource==FaultLossPhase)&&(mcProtectTime.LossPHTimes >= PhaseProtectRestartTimes))
-		{
-				FaultCommuMonCt=3;
-		}
-		else if((mcFaultSource==FaultStall)&&(mcProtectTime.StallTimes >= StallProtectRestartTimes))
-		{
-				FaultCommuMonCt=3;
-		}
-		else if((mcFaultSource==FaultIbusOffset)&&(mcProtectTime.IbusOffsetProtectTimes >= IbusOffsetRestartTimes))
-		{
-				FaultCommuMonCt=4;
-		}
-		else if(mcFaultSource==FaultIpmTemp)
-		{
-				FaultCommuMonCt=27;
-		}
-		else if(mcFaultSource==FaultUnderVoltage)
-		{
-				FaultCommuMonCt=2;
-		}
-		else if(mcFaultSource==FaultOverVoltage)
-		{
-				FaultCommuMonCt=1;
-		}
-		else if(mcFaultSource==FaultGuanTempSensor)
-		{
-				FaultCommuMonCt=19;
-		}
-		else if(mcFaultSource==FaultHuanTempSensor)
-		{
-				FaultCommuMonCt=20;
-		}
-		else
-		{
-				FaultCommuMonCt=0;
-		}
-}
-
-#endif
-

+ 0 - 58
User/source/Hardware/UART_4800.C

@@ -1,58 +0,0 @@
-
-
-#include "UART_4800.h"
-#include <Myproject.h>
-#include "FU68xx_5_MCU.h"
-
-
-// 1 个起始位(低电平)
-// 8 个数据位
-// 1 个校验位(偶校验:9位数据位里保证1的个数为偶数)。可以奇校验
-// 1 个停止位(高电平)
-// 1 个空闲位(高电平)
-
-
-
-int8 xdata UART1_Tx_len=0;//发送字节数
-
-int8 xdata  UART1_Tx_index=0;    //字节计数
-int8 xdata UART1_Tx_dat[10]=0;//发送8字节
-
-int8  xdata UART1_Rx_dat[12]=0;//连收8字节
-
-int8 xdata  UART1_Rec_S=0;	  //接收状态
-int8 xdata  UART1_rx_count=0; //顺控步骤
-
-int8 xdata  UART1_TX_S=0;       //发送状态
-int8 xdata  UART1_TX_BUF=0;     //发送 8位
-int8 xdata  UART1_TX_count=0;	//顺控步骤
-uint8 xdata UART1_In_L = 0;
-uint8 xdata UART1_In_H = 0;
-
-
-int8 xdata UART1_rx_rat_time=0;
-int8 xdata UART1_tx_rat_time=0;
-
-int8 xdata UART1_RX_flag=0,RX_Start=0;
-int8 xdata UART1_TX_flag=0;
-
-uint8 RX_BUF=0,TX_BUF=0;
- 
-#if (Uart_Select==Uart_MoNi)
-
-void MONI_UART1_Init(void)
-{
-		SetBit(P3_OE , P37);    //tx  
-		ClrBit(P3_OE , P36);    //rx  
-		ClrBit(P3_PU , P36);    //上拉
-    SetBit(P3_PU , P37);    //上拉 	
-		GP37=1;
-//	  GP36=1;
-	
-		UART1_TX_flag=0;
-		UART1_rx_count=0;
-		UART1_Rec_S = df_stop_bit_rec;
-}
-
-
-#endif

+ 0 - 93
User/source/UART_Debug.c

@@ -1,93 +0,0 @@
-/**************************** (C) COPYRIGHT 2018 Fortiortech Shenzhen ******************************
-* File Name          : UART_Debug.c
-* Author             : Any Lin
-* Version            : V1.0
-* Date               : 2018-07-01
-* Description        : Based on ANOT
-****************************************************************************************************
-* All Rights Reserved
-***************************************************************************************************/
-
-
-
-/**************************************************************************************************///Including Header Files
-#include <UART_Debug.h>
-/**************************************************************************************************///Define Macro
-#define BUFFLEN                         128
-/**************************************************************************************************///Define Global Symbols
-static unsigned char xdata sg_ucUartDbgData[BUFFLEN] = {0xaa, 0xaa};
-static char                sg_cUartDataLen;
-static unsigned char       sg_ucUartDataSum;
-/**************************************************************************************************///Function Subject
-/**
- * 初始化缓存区内容
- *
- * @param Type 输出的指令
- */
-void InitBuff_UARTDBG(unsigned char Type)
-{
-    sg_ucUartDbgData[2] = Type;
-
-    sg_cUartDataLen = 4;
-
-    sg_ucUartDataSum = 0x54 + Type;
-}
-
-/**
- * 装载16位数据
- *
- * @param Data 要装载的数据
- */
-void LoadBuff16_UARTDBG(unsigned short Data)
-{
-    union
-    {
-        unsigned short m_w;
-        unsigned char  m_uc[2];
-    }uChange;
-
-    uChange.m_w = Data;
-
-    sg_ucUartDbgData[sg_cUartDataLen++] = uChange.m_uc[0];
-    sg_ucUartDbgData[sg_cUartDataLen++] = uChange.m_uc[1];
-
-    sg_ucUartDataSum += uChange.m_uc[0] + uChange.m_uc[1];
-}
-
-/**
- * 装载8位数据
- *
- * @param Data 要装载数据
- */
-void LoadBuff8_UARTDBG(unsigned char Data)
-{
-    sg_ucUartDbgData[sg_cUartDataLen++] = Data;
-
-    sg_ucUartDataSum += Data;
-}
-
-/**
- * 发送前的准备
- *
- * @return  将要发送的字节数
- */
-unsigned char SendReady_UARTDBG(void)
-{
-    sg_ucUartDbgData[3] = sg_cUartDataLen - 4;
-
-    sg_ucUartDataSum += sg_ucUartDbgData[3];
-
-    sg_ucUartDbgData[sg_cUartDataLen] = sg_ucUartDataSum;
-
-    return sg_cUartDataLen;
-}
-
-/**
- * 获取缓存区的地址
- *
- * @return  缓存区地址
- */
-unsigned char* GetAddr_UARTDBG(void)
-{
-    return &sg_ucUartDbgData;
-}