Browse Source

update swm320 libraries

yanmowudi 4 years ago
parent
commit
22513fe86c
38 changed files with 4993 additions and 5003 deletions
  1. 3345 3287
      bsp/swm320/libraries/CMSIS/DeviceSupport/SWM320.h
  2. 222 204
      bsp/swm320/libraries/CMSIS/DeviceSupport/system_SWM320.c
  3. 16 12
      bsp/swm320/libraries/CMSIS/DeviceSupport/system_SWM320.h
  4. 149 149
      bsp/swm320/libraries/SWM320_StdPeriph_Driver/SWM320_adc.c
  5. 39 39
      bsp/swm320/libraries/SWM320_StdPeriph_Driver/SWM320_adc.h
  6. 6 90
      bsp/swm320/libraries/SWM320_StdPeriph_Driver/SWM320_can.c
  7. 23 29
      bsp/swm320/libraries/SWM320_StdPeriph_Driver/SWM320_can.h
  8. 15 15
      bsp/swm320/libraries/SWM320_StdPeriph_Driver/SWM320_crc.h
  9. 7 7
      bsp/swm320/libraries/SWM320_StdPeriph_Driver/SWM320_dma.h
  10. 11 11
      bsp/swm320/libraries/SWM320_StdPeriph_Driver/SWM320_exti.h
  11. 41 25
      bsp/swm320/libraries/SWM320_StdPeriph_Driver/SWM320_flash.c
  12. 1 1
      bsp/swm320/libraries/SWM320_StdPeriph_Driver/SWM320_flash.h
  13. 1 1
      bsp/swm320/libraries/SWM320_StdPeriph_Driver/SWM320_gpio.c
  14. 9 9
      bsp/swm320/libraries/SWM320_StdPeriph_Driver/SWM320_gpio.h
  15. 11 11
      bsp/swm320/libraries/SWM320_StdPeriph_Driver/SWM320_i2c.h
  16. 55 64
      bsp/swm320/libraries/SWM320_StdPeriph_Driver/SWM320_lcd.c
  17. 1 8
      bsp/swm320/libraries/SWM320_StdPeriph_Driver/SWM320_lcd.h
  18. 5 5
      bsp/swm320/libraries/SWM320_StdPeriph_Driver/SWM320_norflash.h
  19. 15 15
      bsp/swm320/libraries/SWM320_StdPeriph_Driver/SWM320_port.c
  20. 4 4
      bsp/swm320/libraries/SWM320_StdPeriph_Driver/SWM320_port.h
  21. 115 115
      bsp/swm320/libraries/SWM320_StdPeriph_Driver/SWM320_pwm.c
  22. 37 37
      bsp/swm320/libraries/SWM320_StdPeriph_Driver/SWM320_pwm.h
  23. 142 142
      bsp/swm320/libraries/SWM320_StdPeriph_Driver/SWM320_rtc.c
  24. 7 7
      bsp/swm320/libraries/SWM320_StdPeriph_Driver/SWM320_rtc.h
  25. 82 82
      bsp/swm320/libraries/SWM320_StdPeriph_Driver/SWM320_sdio.c
  26. 8 8
      bsp/swm320/libraries/SWM320_StdPeriph_Driver/SWM320_sdio.h
  27. 23 23
      bsp/swm320/libraries/SWM320_StdPeriph_Driver/SWM320_sdram.c
  28. 8 8
      bsp/swm320/libraries/SWM320_StdPeriph_Driver/SWM320_sdram.h
  29. 203 203
      bsp/swm320/libraries/SWM320_StdPeriph_Driver/SWM320_spi.c
  30. 21 21
      bsp/swm320/libraries/SWM320_StdPeriph_Driver/SWM320_spi.h
  31. 13 13
      bsp/swm320/libraries/SWM320_StdPeriph_Driver/SWM320_sram.c
  32. 2 2
      bsp/swm320/libraries/SWM320_StdPeriph_Driver/SWM320_sram.h
  33. 91 91
      bsp/swm320/libraries/SWM320_StdPeriph_Driver/SWM320_timr.c
  34. 14 14
      bsp/swm320/libraries/SWM320_StdPeriph_Driver/SWM320_timr.h
  35. 184 184
      bsp/swm320/libraries/SWM320_StdPeriph_Driver/SWM320_uart.c
  36. 16 16
      bsp/swm320/libraries/SWM320_StdPeriph_Driver/SWM320_uart.h
  37. 44 44
      bsp/swm320/libraries/SWM320_StdPeriph_Driver/SWM320_wdt.c
  38. 7 7
      bsp/swm320/libraries/SWM320_StdPeriph_Driver/SWM320_wdt.h

File diff suppressed because it is too large
+ 3345 - 3287
bsp/swm320/libraries/CMSIS/DeviceSupport/SWM320.h


+ 222 - 204
bsp/swm320/libraries/CMSIS/DeviceSupport/system_SWM320.c

@@ -1,262 +1,280 @@
-/******************************************************************************************************************************************
-* 文件�称:	system_SWM320.c
-* 功能说明:	SWM320�片机的时钟设置
-* 技术支�:	http://www.synwit.com.cn/e/tool/gbook/?bid=1
-* 注�事项:
-* 版本日期: V1.1.0		2017年10月25日
-* �级记录:
+/****************************************************************************************************************************************** 
+* ÎļþÃû³Æ:	system_SWM320.c
+* ¹¦ÄÜ˵Ã÷:	SWM320µ¥Æ¬»úµÄʱÖÓÉèÖÃ
+* ¼¼ÊõÖ§³Ö:	http://www.synwit.com.cn/e/tool/gbook/?bid=1
+* ×¢ÒâÊÂÏî:
+* °æ±¾ÈÕÆÚ: V1.1.0		2017Äê10ÔÂ25ÈÕ
+* Éý¼¶¼Ç¼: 
 *
 *
 *******************************************************************************************************************************************
 * @attention
 *
-* THE PRESENT FIRMWARE WHICH IS FOR GUIDANCE ONLY AIMS AT PROVIDING CUSTOMERS WITH CODING INFORMATION
-* REGARDING THEIR PRODUCTS IN ORDER FOR THEM TO SAVE TIME. AS A RESULT, SYNWIT SHALL NOT BE HELD LIABLE
-* FOR ANY DIRECT, INDIRECT OR CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY CLAIMS ARISING FROM THE CONTENT
+* THE PRESENT FIRMWARE WHICH IS FOR GUIDANCE ONLY AIMS AT PROVIDING CUSTOMERS WITH CODING INFORMATION 
+* REGARDING THEIR PRODUCTS IN ORDER FOR THEM TO SAVE TIME. AS A RESULT, SYNWIT SHALL NOT BE HELD LIABLE 
+* FOR ANY DIRECT, INDIRECT OR CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY CLAIMS ARISING FROM THE CONTENT 
 * OF SUCH FIRMWARE AND/OR THE USE MADE BY CUSTOMERS OF THE CODING INFORMATION CONTAINED HEREIN IN CONN-
 * -ECTION WITH THEIR PRODUCTS.
 *
 * COPYRIGHT 2012 Synwit Technology
-*******************************************************************************************************************************************/
+*******************************************************************************************************************************************/ 
 #include <stdint.h>
 #include "SWM320.h"
 
+
 /******************************************************************************************************************************************
- * 系统时钟设定
+ * ϵͳʱÖÓÉ趨
  *****************************************************************************************************************************************/
-#define SYS_CLK_20MHz 0 //0 内部高频20MHz RC振�器
-#define SYS_CLK_40MHz 1 //1 内部高频40MHz RC振�器
-#define SYS_CLK_32KHz 2 //2 内部低频32KHz RC振�器
-#define SYS_CLK_XTAL 3  //3 外部晶体振�器(2-30MHz)
-#define SYS_CLK_PLL 4   //4 片内�相环输出
+#define SYS_CLK_20MHz	0	 	//0 ÄÚ²¿¸ßƵ20MHz RCÕñµ´Æ÷
+#define SYS_CLK_40MHz	1		//1 ÄÚ²¿¸ßƵ40MHz RCÕñµ´Æ÷
+#define SYS_CLK_32KHz	2		//2 ÄÚ²¿µÍƵ32KHz RCÕñµ´Æ÷
+#define SYS_CLK_XTAL	3		//3 Íⲿ¾§ÌåÕñµ´Æ÷£¨2-30MHz£©
+#define SYS_CLK_PLL		4		//4 ƬÄÚËøÏà»·Êä³ö
 
-#define SYS_CLK SYS_CLK_PLL
+#define SYS_CLK   SYS_CLK_PLL
 
-#define SYS_CLK_DIV_1 0
-#define SYS_CLK_DIV_2 1
 
-#define SYS_CLK_DIV SYS_CLK_DIV_1
+#define SYS_CLK_DIV_1	0
+#define SYS_CLK_DIV_2	1
 
-#define __HSI (20000000UL) //高速内部时钟
-#define __LSI (32000UL)    //低速内部时钟
-#define __HSE (20000000UL) //高速外部时钟
+#define SYS_CLK_DIV   	SYS_CLK_DIV_1
 
-/********************************** PLL 设定 **********************************************
- * VCO输出频率 = PLL输入时钟 / INDIV * 4 * FBDIV
- * PLL输出频率 = PLL输入时钟 / INDIV * 4 * FBDIV / OUTDIV = VCO输出频率 / OUTDIV
- *****************************************************************************************/
-#define SYS_PLL_SRC SYS_CLK_20MHz //��值SYS_CLK_20MHz�SYS_CLK_XTAL
 
-#define PLL_IN_DIV 5
+#define __HSI		(20000000UL)		//¸ßËÙÄÚ²¿Ê±ÖÓ
+#define __LSI		(   32000UL)		//µÍËÙÄÚ²¿Ê±ÖÓ
+#define __HSE		(20000000UL)		//¸ßËÙÍⲿʱÖÓ
 
-#define PLL_FB_DIV 60
 
-#define PLL_OUT_DIV8 0
-#define PLL_OUT_DIV4 1
-#define PLL_OUT_DIV2 2
+/********************************** PLL É趨 **********************************************
+ * VCOÊä³öƵÂÊ = PLLÊäÈëʱÖÓ / INDIV * 4 * FBDIV
+ * PLLÊä³öƵÂÊ = PLLÊäÈëʱÖÓ / INDIV * 4 * FBDIV / OUTDIV = VCOÊä³öƵÂÊ / OUTDIV         
+ *****************************************************************************************/ 
+#define SYS_PLL_SRC   	SYS_CLK_20MHz	//¿ÉȡֵSYS_CLK_20MHz¡¢SYS_CLK_XTAL
 
-#define PLL_OUT_DIV PLL_OUT_DIV8
+#define PLL_IN_DIV		5
 
-uint32_t SystemCoreClock = __HSI;         //System Clock Frequency (Core Clock)
-uint32_t CyclesPerUs = (__HSI / 1000000); //Cycles per micro second
+#define PLL_FB_DIV		60
 
-/******************************************************************************************************************************************
-* 函数�称:
-* 功能说明: This function is used to update the variable SystemCoreClock and must be called whenever the core clock is changed
-* 输    入:
-* 输    出:
-* 注�事项:
-******************************************************************************************************************************************/
-void SystemCoreClockUpdate(void)
-{
-    if (SYS->CLKSEL & SYS_CLKSEL_SYS_Msk) //SYS_CLK  <= HFCK
-    {
-        if (SYS->CLKSEL & SYS_CLKSEL_HFCK_Msk) //HFCK <= XTAL
-        {
-            SystemCoreClock = __HSE;
-        }
-        else //HFCK <= HRC
-        {
-            if (SYS->HRCCR & SYS_HRCCR_DBL_Msk) //HRC = 40MHz
-            {
-                SystemCoreClock = __HSI * 2;
-            }
-            else //HRC = 20MHz
-            {
-                SystemCoreClock = __HSI;
-            }
-        }
-    }
-    else //SYS_CLK  <= LFCK
-    {
-        if (SYS->CLKSEL & SYS_CLKSEL_LFCK_Msk) //LFCK <= PLL
-        {
-            if (SYS->PLLCR & SYS_PLLCR_INSEL_Msk) //PLL_SRC <= HRC
-            {
-                SystemCoreClock = __HSI;
-            }
-            else //PLL_SRC <= XTAL
-            {
-                SystemCoreClock = __HSE;
-            }
 
-            SystemCoreClock = SystemCoreClock / PLL_IN_DIV * PLL_FB_DIV * 4 / (2 << (2 - PLL_OUT_DIV));
-        }
-        else //LFCK <= LRC
-        {
-            SystemCoreClock = __LSI;
-        }
-    }
+#define PLL_OUT_DIV8	0
+#define PLL_OUT_DIV4	1
+#define PLL_OUT_DIV2	2
 
-    if (SYS->CLKDIV & SYS_CLKDIV_SYS_Msk)
-        SystemCoreClock /= 2;
+#define PLL_OUT_DIV		PLL_OUT_DIV8
 
-    CyclesPerUs = SystemCoreClock / 1000000;
-}
-
-/******************************************************************************************************************************************
-* 函数�称:
-* 功能说明: The necessary initializaiton of systerm
-* 输    入:
-* 输    出:
-* 注�事项:
-******************************************************************************************************************************************/
-void SystemInit(void)
-{
-    SYS->CLKEN |= (1 << SYS_CLKEN_ANAC_Pos);
 
-    switch (SYS_CLK)
-    {
-    case SYS_CLK_20MHz: //0 内部高频20MHz RC振�器
-        switchCLK_20MHz();
-        break;
 
-    case SYS_CLK_40MHz: //1 内部高频40MHz RC振�器
-        switchCLK_40MHz();
-        break;
+uint32_t SystemCoreClock  = __HSI;   				//System Clock Frequency (Core Clock)
+uint32_t CyclesPerUs      = (__HSI / 1000000); 		//Cycles per micro second
 
-    case SYS_CLK_32KHz: //2 内部低频32KHz RC振�器
-        switchCLK_32KHz();
-        break;
 
-    case SYS_CLK_XTAL: //3 外部晶体振�器(2-30MHz)
-        switchCLK_XTAL();
-        break;
-
-    case SYS_CLK_PLL: //4 片内�相环输出
-        switchCLK_PLL();
-        break;
-    }
-
-    SYS->CLKDIV &= ~SYS_CLKDIV_SYS_Msk;
-    SYS->CLKDIV |= (SYS_CLK_DIV << SYS_CLKDIV_SYS_Pos);
+/****************************************************************************************************************************************** 
+* º¯ÊýÃû³Æ: 
+* ¹¦ÄÜ˵Ã÷: This function is used to update the variable SystemCoreClock and must be called whenever the core clock is changed
+* Êä    Èë: 
+* Êä    ³ö: 
+* ×¢ÒâÊÂÏî: 
+******************************************************************************************************************************************/
+void SystemCoreClockUpdate(void)    
+{
+	if(SYS->CLKSEL & SYS_CLKSEL_SYS_Msk)			//SYS_CLK  <= HFCK
+	{
+		if(SYS->CLKSEL & SYS_CLKSEL_HFCK_Msk)			//HFCK <= XTAL
+		{
+			SystemCoreClock =  __HSE;
+		}
+		else											//HFCK <= HRC
+		{
+			if(SYS->HRCCR & SYS_HRCCR_DBL_Msk)				//HRC = 40MHz
+			{
+				SystemCoreClock = __HSI*2;
+			}
+			else											//HRC = 20MHz
+			{
+				SystemCoreClock = __HSI;
+			}
+		}
+	}
+	else											//SYS_CLK  <= LFCK
+	{
+		if(SYS->CLKSEL & SYS_CLKSEL_LFCK_Msk)			//LFCK <= PLL
+		{
+			if(SYS->PLLCR & SYS_PLLCR_INSEL_Msk)			//PLL_SRC <= HRC
+			{
+				SystemCoreClock = __HSI;
+			}
+			else											//PLL_SRC <= XTAL
+			{
+				SystemCoreClock = __HSE;
+			}
+			
+			SystemCoreClock = SystemCoreClock / PLL_IN_DIV * PLL_FB_DIV * 4 / (2 << (2 - PLL_OUT_DIV));
+		}
+		else											//LFCK <= LRC
+		{
+			SystemCoreClock = __LSI;
+		}
+	}
+	
+	if(SYS->CLKDIV & SYS_CLKDIV_SYS_Msk) SystemCoreClock /= 2;
+	
+	CyclesPerUs = SystemCoreClock / 1000000;
+}
 
-    SystemCoreClockUpdate();
+/****************************************************************************************************************************************** 
+* º¯ÊýÃû³Æ: 
+* ¹¦ÄÜ˵Ã÷: The necessary initializaiton of systerm
+* Êä    Èë: 
+* Êä    ³ö: 
+* ×¢ÒâÊÂÏî: 
+******************************************************************************************************************************************/
+void SystemInit(void)
+{	
+	SYS->CLKEN |= (1 << SYS_CLKEN_ANAC_Pos);
+	
+	Flash_Param_at_xMHz(120);
+	
+	switch(SYS_CLK)
+	{
+		case SYS_CLK_20MHz:			//0 ÄÚ²¿¸ßƵ20MHz RCÕñµ´Æ÷
+			switchCLK_20MHz();
+			break;
+		
+		case SYS_CLK_40MHz:			//1 ÄÚ²¿¸ßƵ40MHz RCÕñµ´Æ÷
+			switchCLK_40MHz();
+			break;
+		
+		case SYS_CLK_32KHz:			//2 ÄÚ²¿µÍƵ32KHz RCÕñµ´Æ÷
+			switchCLK_32KHz();
+			break;
+		
+		case SYS_CLK_XTAL:			//3 Íⲿ¾§ÌåÕñµ´Æ÷£¨2-30MHz£©
+			switchCLK_XTAL();
+			break;
+		
+		case SYS_CLK_PLL:			//4 ƬÄÚËøÏà»·Êä³ö
+			switchCLK_PLL();
+			break;
+	}
+	
+	SYS->CLKDIV &= ~SYS_CLKDIV_SYS_Msk;
+	SYS->CLKDIV |= (SYS_CLK_DIV << SYS_CLKDIV_SYS_Pos);
+	
+	SystemCoreClockUpdate();
+	
+	if(SystemCoreClock > 80000000)
+	{
+		Flash_Param_at_xMHz(120);
+	}
+	else if(SystemCoreClock > 40000000)
+	{
+		Flash_Param_at_xMHz(80);
+	}
+	else if(SystemCoreClock > 30000000)
+	{
+		Flash_Param_at_xMHz(40);
+	}
+	else
+	{
+		Flash_Param_at_xMHz(30);
+	}
 }
 
 void switchCLK_20MHz(void)
 {
-    uint32_t i;
-
-    SYS->HRCCR = (0 << SYS_HRCCR_OFF_Pos) |
-                 (0 << SYS_HRCCR_DBL_Pos); //HRC = 20MHz
-
-    for (i = 0; i < 1000; i++)
-        __NOP();
-
-    SYS->CLKSEL &= ~SYS_CLKSEL_HFCK_Msk;      //HFCK  <=  HRC
-    SYS->CLKSEL |= (1 << SYS_CLKSEL_SYS_Pos); //SYS_CLK  <= HFCK
+	uint32_t i;
+	
+	SYS->HRCCR = (0 << SYS_HRCCR_OFF_Pos) |
+				 (0 << SYS_HRCCR_DBL_Pos);			//HRC = 20MHz
+	
+	for(i = 0; i < 1000; i++) __NOP();
+	
+	SYS->CLKSEL &= ~SYS_CLKSEL_HFCK_Msk;			//HFCK  <=  HRC
+	SYS->CLKSEL |= (1 << SYS_CLKSEL_SYS_Pos);		//SYS_CLK  <= HFCK
 }
 
 void switchCLK_40MHz(void)
 {
-    uint32_t i;
-
-    SYS->HRCCR = (0 << SYS_HRCCR_OFF_Pos) |
-                 (1 << SYS_HRCCR_DBL_Pos); //HRC = 40MHz
-
-    for (i = 0; i < 1000; i++)
-        __NOP();
-
-    SYS->CLKSEL &= ~SYS_CLKSEL_HFCK_Msk;      //HFCK  <=  HRC
-    SYS->CLKSEL |= (1 << SYS_CLKSEL_SYS_Pos); //SYS_CLK  <= HFCK
+	uint32_t i;
+	
+	SYS->HRCCR = (0 << SYS_HRCCR_OFF_Pos) |
+				 (1 << SYS_HRCCR_DBL_Pos);			//HRC = 40MHz		
+	
+	for(i = 0; i < 1000; i++) __NOP();
+	
+	SYS->CLKSEL &= ~SYS_CLKSEL_HFCK_Msk;			//HFCK  <=  HRC
+	SYS->CLKSEL |= (1 << SYS_CLKSEL_SYS_Pos);		//SYS_CLK  <= HFCK
 }
 
 void switchCLK_32KHz(void)
 {
-    uint32_t i;
-
-    SYS->CLKEN |= (1 << SYS_CLKEN_RTCBKP_Pos);
-
-    SYS->LRCCR &= ~(1 << SYS_LRCCR_OFF_Pos);
-
-    for (i = 0; i < 100; i++)
-        __NOP();
-
-    SYS->CLKSEL &= ~SYS_CLKSEL_LFCK_Msk; //LFCK  <=  LRC
-    SYS->CLKSEL &= ~SYS_CLKSEL_SYS_Msk;  //SYS_CLK  <= LFCK
+	uint32_t i;
+	
+	SYS->CLKEN |= (1 << SYS_CLKEN_RTCBKP_Pos);
+			
+	SYS->LRCCR &= ~(1 << SYS_LRCCR_OFF_Pos);
+	
+	for(i = 0; i < 100; i++) __NOP();
+	
+	SYS->CLKSEL &= ~SYS_CLKSEL_LFCK_Msk;			//LFCK  <=  LRC
+	SYS->CLKSEL &= ~SYS_CLKSEL_SYS_Msk;				//SYS_CLK  <= LFCK
 }
 
 void switchCLK_XTAL(void)
 {
-    uint32_t i;
-
-    SYS->XTALCR = (1 << SYS_XTALCR_EN_Pos);
-
-    for (i = 0; i < 1000; i++)
-        __NOP();
-
-    SYS->CLKSEL |= (1 << SYS_CLKSEL_HFCK_Pos); //HFCK  <=  XTAL
-    SYS->CLKSEL |= (1 << SYS_CLKSEL_SYS_Pos);  //SYS_CLK  <= HFCK
+	uint32_t i;
+	
+	SYS->XTALCR = (1 << SYS_XTALCR_EN_Pos);
+		
+	for(i = 0; i < 1000; i++) __NOP();
+	
+	SYS->CLKSEL |= (1 << SYS_CLKSEL_HFCK_Pos);		//HFCK  <=  XTAL
+	SYS->CLKSEL |= (1 << SYS_CLKSEL_SYS_Pos);		//SYS_CLK  <= HFCK
 }
 
 void switchCLK_PLL(void)
 {
-    uint32_t i;
-
-    PLLInit();
-    SYS->PLLCR |= (1 << SYS_PLLCR_OUTEN_Pos);
-
-    for (i = 0; i < 10000; i++)
-        __NOP();
-
-    SYS->CLKSEL |= (1 << SYS_CLKSEL_LFCK_Pos); //LFCK  <=  PLL
-    SYS->CLKSEL &= ~SYS_CLKSEL_SYS_Msk;        //SYS_CLK  <= LFCK
+	uint32_t i;
+	
+	PLLInit();
+	SYS->PLLCR |= (1 << SYS_PLLCR_OUTEN_Pos);
+	
+	for(i = 0; i < 10000; i++) __NOP();
+	
+	SYS->CLKSEL |= (1 << SYS_CLKSEL_LFCK_Pos);		//LFCK  <=  PLL
+	SYS->CLKSEL &= ~SYS_CLKSEL_SYS_Msk;				//SYS_CLK  <= LFCK
 }
 
 void PLLInit(void)
 {
-    uint32_t i;
-
-    if (SYS_PLL_SRC == SYS_CLK_20MHz)
-    {
-        SYS->HRCCR = (0 << SYS_HRCCR_OFF_Pos) |
-                     (0 << SYS_HRCCR_DBL_Pos); //HRC = 20MHz
-
-        for (i = 0; i < 1000; i++)
-            __NOP();
-
-        SYS->PLLCR |= (1 << SYS_PLLCR_INSEL_Pos); //PLL_SRC <= HRC
-    }
-    else if (SYS_PLL_SRC == SYS_CLK_XTAL)
-    {
-        SYS->XTALCR = (1 << SYS_XTALCR_EN_Pos);
-
-        for (i = 0; i < 20000; i++)
-            ;
-
-        SYS->PLLCR &= ~(1 << SYS_PLLCR_INSEL_Pos); //PLL_SRC <= XTAL
-    }
-
-    SYS->PLLDIV &= ~(SYS_PLLDIV_INDIV_Msk |
-                     SYS_PLLDIV_FBDIV_Msk |
-                     SYS_PLLDIV_OUTDIV_Msk);
-    SYS->PLLDIV |= (PLL_IN_DIV << SYS_PLLDIV_INDIV_Pos) |
-                   (PLL_FB_DIV << SYS_PLLDIV_FBDIV_Pos) |
-                   (PLL_OUT_DIV << SYS_PLLDIV_OUTDIV_Pos);
-
-    SYS->PLLCR &= ~(1 << SYS_PLLCR_OFF_Pos);
-
-    while (SYS->PLLLOCK == 0)
-        ; //等待PLL�定
+	uint32_t i;
+	
+	if(SYS_PLL_SRC == SYS_CLK_20MHz)
+	{
+		SYS->HRCCR = (0 << SYS_HRCCR_OFF_Pos) |
+					 (0 << SYS_HRCCR_DBL_Pos);		//HRC = 20MHz
+		
+		for(i = 0; i < 1000; i++) __NOP();
+		
+		SYS->PLLCR |= (1 << SYS_PLLCR_INSEL_Pos);	//PLL_SRC <= HRC
+	}
+	else if(SYS_PLL_SRC == SYS_CLK_XTAL)
+	{
+		SYS->XTALCR = (1 << SYS_XTALCR_EN_Pos);
+		
+		for(i = 0; i < 20000; i++);
+		
+		SYS->PLLCR &= ~(1 << SYS_PLLCR_INSEL_Pos);	//PLL_SRC <= XTAL
+	}
+	
+	SYS->PLLDIV &= ~(SYS_PLLDIV_INDIV_Msk |
+					 SYS_PLLDIV_FBDIV_Msk |
+					 SYS_PLLDIV_OUTDIV_Msk);
+	SYS->PLLDIV |= (PLL_IN_DIV << SYS_PLLDIV_INDIV_Pos) |
+				   (PLL_FB_DIV << SYS_PLLDIV_FBDIV_Pos) |
+				   (PLL_OUT_DIV<< SYS_PLLDIV_OUTDIV_Pos);
+	
+	SYS->PLLCR &= ~(1 << SYS_PLLCR_OFF_Pos);
+	
+	while(SYS->PLLLOCK == 0);		//µÈ´ýPLLËø¶¨
 }

+ 16 - 12
bsp/swm320/libraries/CMSIS/DeviceSupport/system_SWM320.h

@@ -2,24 +2,28 @@
 #define __SYSTEM_SWM320_H__
 
 #ifdef __cplusplus
-extern "C"
-{
+ extern "C" {
 #endif
 
-    extern uint32_t SystemCoreClock; // System Clock Frequency (Core Clock)
-    extern uint32_t CyclesPerUs;     // Cycles per micro second
 
-    extern void SystemInit(void);
+extern uint32_t SystemCoreClock;		// System Clock Frequency (Core Clock)
+extern uint32_t CyclesPerUs;			// Cycles per micro second
 
-    extern void SystemCoreClockUpdate(void);
 
-    extern void switchCLK_20MHz(void);
-    extern void switchCLK_40MHz(void);
-    extern void switchCLK_32KHz(void);
-    extern void switchCLK_XTAL(void);
-    extern void switchCLK_PLL(void);
+extern void SystemInit(void);
+
+extern void SystemCoreClockUpdate (void);
+	 
+	 
+	 
+extern void switchCLK_20MHz(void);
+extern void switchCLK_40MHz(void);
+extern void switchCLK_32KHz(void);
+extern void switchCLK_XTAL(void);
+extern void switchCLK_PLL(void);
+
+extern void PLLInit(void);
 
-    extern void PLLInit(void);
 
 #ifdef __cplusplus
 }

+ 149 - 149
bsp/swm320/libraries/SWM320_StdPeriph_Driver/SWM320_adc.c

@@ -1,10 +1,10 @@
 /****************************************************************************************************************************************** 
-* 恅璃靡備:	SWM320_adc.c
-* 髡夔佽隴:	SWM320等⑵儂腔ADC杅耀蛌遙け髡夔Й雄踱
-* 撮扲盓厥:	http://www.synwit.com.cn/e/tool/gbook/?bid=1
-* 蛁砩岈砐:
-* 唳掛゜ヽ: V1.1.0		2017爛10堎25゜
-* 汔撰暮翹: 
+* ��辣�滨妍:	SWM320_adc.c
+* �蠘�霂湔�:	SWM320�閧��箇�ADC�唳芋頧祆揢�典��賡店�典�
+* ���舀𣈲��:	http://www.synwit.com.cn/e/tool/gbook/?bid=1
+* 瘜冽�鈭钅★:
+* ��𧋦�交�: V1.1.0		2017撟�10��25��
+* ��漣霈啣�: 
 *******************************************************************************************************************************************
 * @attention
 *
@@ -21,12 +21,12 @@
 
 
 /****************************************************************************************************************************************** 
-* 滲杅靡備: ADC_Init()
-* 髡夔佽隴:	ADC耀杅蛌遙け場宎趙
-* 怀    ⻌: ADC_TypeDef * ADCx		硌隅猁掩扢离腔ADCㄛ衄虴硉婦嬤ADC0﹜ADC1
-*			ADC_InitStructure * initStruct		婦漪ADC跪眈壽隅硉腔賦凳极
-* 怀    堤: 拸
-* 蛁砩岈砐: 拸
+* �賣㺭�滨妍: ADC_Init()
+* �蠘�霂湔�:	ADC璅⊥㺭頧祆揢�典�憪见�
+* 颲�    ��: ADC_TypeDef * ADCx		���閬�◤霈曄蔭��DC嚗峕����澆��括DC0��DC1
+*			ADC_InitStructure * initStruct		��鉄ADC��㮾�喳��潛�蝏𤘪�雿�
+* 颲�    ��: ��
+* 瘜冽�鈭钅★: ��
 ******************************************************************************************************************************************/
 void ADC_Init(ADC_TypeDef * ADCx, ADC_InitStructure * initStruct)
 {
@@ -41,7 +41,7 @@ void ADC_Init(ADC_TypeDef * ADCx, ADC_InitStructure * initStruct)
 		break;
 	}
 	
-	ADC_Close(ADCx);		//珨虳壽瑩敵湔け硐夔婓ADC壽敕奀扢离
+	ADC_Close(ADCx);		//銝�鈭𥕦��桀�摮睃膥�芾��杗DC�喲𡡒�嗉挽蝵�
 	
 	if(initStruct->clk_src == ADC_CLKSRC_HRC)
 	{
@@ -80,7 +80,7 @@ void ADC_Init(ADC_TypeDef * ADCx, ADC_InitStructure * initStruct)
 				  (initStruct->trig_src << ADC_CTRL_TRIG_Pos) |
 				  (initStruct->Continue << ADC_CTRL_CONT_Pos);
 	
-	ADCx->IF = 0xFFFFFFFF;	//ラ壺笢剿梓祩
+	ADCx->IF = 0xFFFFFFFF;	//皜�膄銝剜鱏���
 	
 	ADCx->IE &= ~(ADC_IE_CH0EOC_Msk | ADC_IE_CH1EOC_Msk | ADC_IE_CH2EOC_Msk | ADC_IE_CH3EOC_Msk |
 				  ADC_IE_CH4EOC_Msk | ADC_IE_CH5EOC_Msk | ADC_IE_CH6EOC_Msk | ADC_IE_CH7EOC_Msk);
@@ -153,11 +153,11 @@ void ADC_Init(ADC_TypeDef * ADCx, ADC_InitStructure * initStruct)
 }
 
 /****************************************************************************************************************************************** 
-* 滲杅靡備:	ADC_Open()
-* 髡夔佽隴:	ADC羲ぎㄛ褫眕⻏璃ぎ雄﹜麼茞璃揖楷ADC蛌遙
-* 怀    ⻌: ADC_TypeDef * ADCx		硌隅猁掩扢离腔ADCㄛ褫龰硉婦嬤ADC
-* 怀    堤: 拸
-* 蛁砩岈砐: 拸
+* �賣㺭�滨妍:	ADC_Open()
+* �蠘�霂湔�:	ADC撘��荔��臭誑頧臭辣�臬𢆡���蝖砌辣閫血�ADC頧祆揢
+* 颲�    ��: ADC_TypeDef * ADCx		���閬�◤霈曄蔭��DC嚗�虾�硋�澆��括DC
+* 颲�    ��: ��
+* 瘜冽�鈭钅★: ��
 ******************************************************************************************************************************************/
 void ADC_Open(ADC_TypeDef * ADCx)
 {
@@ -165,11 +165,11 @@ void ADC_Open(ADC_TypeDef * ADCx)
 }
 
 /****************************************************************************************************************************************** 
-* 滲杅靡備:	ADC_Close()
-* 髡夔佽隴:	ADC壽敕ㄛ拸楊⻏璃ぎ雄﹜麼茞璃揖楷ADC蛌遙
-* 怀    ⻌: ADC_TypeDef * ADCx		硌隅猁掩扢离腔ADCㄛ褫龰硉婦嬤ADC
-* 怀    堤: 拸
-* 蛁砩岈砐: 拸
+* �賣㺭�滨妍:	ADC_Close()
+* �蠘�霂湔�:	ADC�喲𡡒嚗峕�瘜閗蔓隞嗅鍳�具���蝖砌辣閫血�ADC頧祆揢
+* 颲�    ��: ADC_TypeDef * ADCx		���閬�◤霈曄蔭��DC嚗�虾�硋�澆��括DC
+* 颲�    ��: ��
+* 瘜冽�鈭钅★: ��
 ******************************************************************************************************************************************/
 void ADC_Close(ADC_TypeDef * ADCx)
 {
@@ -177,11 +177,11 @@ void ADC_Close(ADC_TypeDef * ADCx)
 }
 
 /****************************************************************************************************************************************** 
-* 滲杅靡備:	ADC_Start()
-* 髡夔佽隴:	⻏璃揖楷耀宒狟ぎ雄ADC蛌遙
-* 怀    ⻌: ADC_TypeDef * ADCx		硌隅猁掩扢离腔ADCㄛ褫龰硉婦嬤ADC
-* 怀    堤: 拸
-* 蛁砩岈砐: 拸
+* �賣㺭�滨妍:	ADC_Start()
+* �蠘�霂湔�:	頧臭辣閫血�璅∪�銝见鍳�杗DC頧祆揢
+* 颲�    ��: ADC_TypeDef * ADCx		���閬�◤霈曄蔭��DC嚗�虾�硋�澆��括DC
+* 颲�    ��: ��
+* 瘜冽�鈭钅★: ��
 ******************************************************************************************************************************************/
 void ADC_Start(ADC_TypeDef * ADCx)
 {
@@ -189,11 +189,11 @@ void ADC_Start(ADC_TypeDef * ADCx)
 }
 
 /****************************************************************************************************************************************** 
-* 滲杅靡備:	ADC_Stop()
-* 髡夔佽隴:	⻏璃揖楷耀宒狟礿砦ADC蛌遙
-* 怀    ⻌: ADC_TypeDef * ADCx		硌隅猁掩扢离腔ADCㄛ褫龰硉婦嬤ADC
-* 怀    堤: 拸
-* 蛁砩岈砐: 拸
+* �賣㺭�滨妍:	ADC_Stop()
+* �蠘�霂湔�:	頧臭辣閫血�璅∪�銝见�甇∕DC頧祆揢
+* 颲�    ��: ADC_TypeDef * ADCx		���閬�◤霈曄蔭��DC嚗�虾�硋�澆��括DC
+* 颲�    ��: ��
+* 瘜冽�鈭钅★: ��
 ******************************************************************************************************************************************/
 void ADC_Stop(ADC_TypeDef * ADCx)
 {									 
@@ -220,12 +220,12 @@ static uint32_t chn2idx(uint32_t chn)
 }
 
 /****************************************************************************************************************************************** 
-* 滲杅靡備:	ADC_Read()
-* 髡夔佽隴:	植硌隅籵耋黍龰蛌遙賦彆
-* 怀    ⻌: ADC_TypeDef * ADCx		硌隅猁掩扢离腔ADCㄛ褫龰硉婦嬤ADC
-*			uint32_t chn			猁黍龰蛌遙賦彆腔籵耋ㄛ衄虴硉ADC_CH0﹜ADC_CH1﹜... ... ﹜ADC_CH7		
-* 怀    堤: uint32_t				黍龰善腔蛌遙賦彆
-* 蛁砩岈砐: 拸
+* �賣㺭�滨妍:	ADC_Read()
+* �蠘�霂湔�:	隞擧�摰𡁻�𡁻�霂餃�頧祆揢蝏𤘪�
+* 颲�    ��: ADC_TypeDef * ADCx		���閬�◤霈曄蔭��DC嚗�虾�硋�澆��括DC
+*			uint32_t chn			閬�粉�𤥁蓮�Y��𦦵��𡁻�嚗峕����劈DC_CH0��DC_CH1��... ... ��DC_CH7		
+* 颲�    ��: uint32_t				霂餃��啁�頧祆揢蝏𤘪�
+* 瘜冽�鈭钅★: ��
 ******************************************************************************************************************************************/
 uint32_t ADC_Read(ADC_TypeDef * ADCx, uint32_t chn)
 {
@@ -234,18 +234,18 @@ uint32_t ADC_Read(ADC_TypeDef * ADCx, uint32_t chn)
 	
 	dat = ADCx->CH[idx].DATA;
 	
-	ADCx->CH[idx].STAT = 0x01;		//ラ壺EOC梓祩
+	ADCx->CH[idx].STAT = 0x01;		//皜�膄EOC���
 	
 	return dat;
 }
 
 /****************************************************************************************************************************************** 
-* 滲杅靡備:	ADC_IsEOC()
-* 髡夔佽隴:	硌隅籵耋岆瘁End Of Conversion
-* 怀    ⻌: ADC_TypeDef * ADCx		硌隅猁掩扢离腔ADCㄛ褫龰硉婦嬤ADC
-*			uint32_t chn			猁脤戙袨怓腔籵耋ㄛ衄虴硉ADC_CH0﹜ADC_CH1﹜... ... ﹜ADC_CH7		
-* 怀    堤: uint32_t				1 蜆籵耋俇傖賸蛌遙    0 蜆籵耋帤俇傖蛌遙
-* 蛁砩岈砐: 拸
+* �賣㺭�滨妍:	ADC_IsEOC()
+* �蠘�霂湔�:	����𡁻��臬炏End Of Conversion
+* 颲�    ��: ADC_TypeDef * ADCx		���閬�◤霈曄蔭��DC嚗�虾�硋�澆��括DC
+*			uint32_t chn			閬�䰻霂Y𠶖����𡁻�嚗峕����劈DC_CH0��DC_CH1��... ... ��DC_CH7		
+* 颲�    ��: uint32_t				1 霂仿�𡁻�摰峕�鈭�蓮��    0 霂仿�𡁻��芸��鞱蓮��
+* 瘜冽�鈭钅★: ��
 ******************************************************************************************************************************************/
 uint32_t ADC_IsEOC(ADC_TypeDef * ADCx, uint32_t chn)
 {
@@ -255,12 +255,12 @@ uint32_t ADC_IsEOC(ADC_TypeDef * ADCx, uint32_t chn)
 }
 
 /****************************************************************************************************************************************** 
-* 滲杅靡備:	ADC_ChnSelect()
-* 髡夔佽隴:	ADC籵耋恁籵ㄛ耀杅蛌遙頗婓恁籵腔籵耋奻甡棒粒欴蛌遙
-* 怀    ⻌: ADC_TypeDef * ADCx		硌隅猁掩扢离腔ADCㄛ褫龰硉婦嬤ADC
-*			uint32_t chns			猁恁籵腔籵耋ㄛ衄虴硉ADC_CH0﹜ADC_CH1﹜... ... ﹜ADC_CH7摯[郪磁ㄗ撈※偌弇麼§堍呾ㄘ
-* 怀    堤: 拸
-* 蛁砩岈砐: 拸
+* �賣㺭�滨妍:	ADC_ChnSelect()
+* �蠘�霂湔�:	ADC�𡁻��厰�𡄯�璅⊥㺭頧祆揢隡𡁜銁�厰�𡁶��𡁻�銝𠹺�甈⊿��瑁蓮��
+* 颲�    ��: ADC_TypeDef * ADCx		���閬�◤霈曄蔭��DC嚗�虾�硋�澆��括DC
+*			uint32_t chns			閬��厰�𡁶��𡁻�嚗峕����劈DC_CH0��DC_CH1��... ... ��DC_CH7�𠰴�蝏��嚗�朖�𨀣�雿齿��肽�蝞梹�
+* 颲�    ��: ��
+* 瘜冽�鈭钅★: ��
 ******************************************************************************************************************************************/
 void ADC_ChnSelect(ADC_TypeDef * ADCx, uint32_t chns)
 {
@@ -270,12 +270,12 @@ void ADC_ChnSelect(ADC_TypeDef * ADCx, uint32_t chns)
 
 
 /****************************************************************************************************************************************** 
-* 滲杅靡備:	ADC_IntEOCEn()
-* 髡夔佽隴:	蛌遙俇傖笢剿妏夔
-* 怀    ⻌: ADC_TypeDef * ADCx		硌隅猁掩扢离腔ADCㄛ褫龰硉婦嬤ADC
-*			uint32_t chn			猁扢离腔籵耋ㄛ衄虴硉ADC_CH0﹜ADC_CH1﹜... ... ﹜ADC_CH7		
-* 怀    堤: 拸
-* 蛁砩岈砐: 拸
+* �賣㺭�滨妍:	ADC_IntEOCEn()
+* �蠘�霂湔�:	頧祆揢摰峕�銝剜鱏雿輯�
+* 颲�    ��: ADC_TypeDef * ADCx		���閬�◤霈曄蔭��DC嚗�虾�硋�澆��括DC
+*			uint32_t chn			閬�挽蝵桃��𡁻�嚗峕����劈DC_CH0��DC_CH1��... ... ��DC_CH7		
+* 颲�    ��: ��
+* 瘜冽�鈭钅★: ��
 ******************************************************************************************************************************************/
 void ADC_IntEOCEn(ADC_TypeDef * ADCx, uint32_t chn)
 {
@@ -285,12 +285,12 @@ void ADC_IntEOCEn(ADC_TypeDef * ADCx, uint32_t chn)
 }
 
 /****************************************************************************************************************************************** 
-* 滲杅靡備:	ADC_IntEOCDis()
-* 髡夔佽隴:	蛌遙俇傖笢剿輦砦
-* 怀    ⻌: ADC_TypeDef * ADCx		硌隅猁掩扢离腔ADCㄛ褫龰硉婦嬤ADC
-*			uint32_t chn			猁扢离腔籵耋ㄛ衄虴硉ADC_CH0﹜ADC_CH1﹜... ... ﹜ADC_CH7		
-* 怀    堤: 拸
-* 蛁砩岈砐: 拸
+* �賣㺭�滨妍:	ADC_IntEOCDis()
+* �蠘�霂湔�:	頧祆揢摰峕�銝剜鱏蝳�迫
+* 颲�    ��: ADC_TypeDef * ADCx		���閬�◤霈曄蔭��DC嚗�虾�硋�澆��括DC
+*			uint32_t chn			閬�挽蝵桃��𡁻�嚗峕����劈DC_CH0��DC_CH1��... ... ��DC_CH7		
+* 颲�    ��: ��
+* 瘜冽�鈭钅★: ��
 ******************************************************************************************************************************************/
 void ADC_IntEOCDis(ADC_TypeDef * ADCx, uint32_t chn)
 {
@@ -300,12 +300,12 @@ void ADC_IntEOCDis(ADC_TypeDef * ADCx, uint32_t chn)
 }
 
 /****************************************************************************************************************************************** 
-* 滲杅靡備:	ADC_IntEOCClr()
-* 髡夔佽隴:	蛌遙俇傖笢剿梓祩ラ壺
-* 怀    ⻌: ADC_TypeDef * ADCx		硌隅猁掩扢离腔ADCㄛ褫龰硉婦嬤ADC
-*			uint32_t chn			猁扢离腔籵耋ㄛ衄虴硉ADC_CH0﹜ADC_CH1﹜... ... ﹜ADC_CH7		
-* 怀    堤: 拸
-* 蛁砩岈砐: 拸
+* �賣㺭�滨妍:	ADC_IntEOCClr()
+* �蠘�霂湔�:	頧祆揢摰峕�銝剜鱏���皜�膄
+* 颲�    ��: ADC_TypeDef * ADCx		���閬�◤霈曄蔭��DC嚗�虾�硋�澆��括DC
+*			uint32_t chn			閬�挽蝵桃��𡁻�嚗峕����劈DC_CH0��DC_CH1��... ... ��DC_CH7		
+* 颲�    ��: ��
+* 瘜冽�鈭钅★: ��
 ******************************************************************************************************************************************/
 void ADC_IntEOCClr(ADC_TypeDef * ADCx, uint32_t chn)
 {
@@ -315,12 +315,12 @@ void ADC_IntEOCClr(ADC_TypeDef * ADCx, uint32_t chn)
 }
 
 /****************************************************************************************************************************************** 
-* 滲杅靡備:	ADC_IntEOCStat()
-* 髡夔佽隴:	蛌遙俇傖笢剿袨怓
-* 怀    ⻌: ADC_TypeDef * ADCx		硌隅猁掩扢离腔ADCㄛ褫龰硉婦嬤ADC
-*			uint32_t chn			猁脤戙腔籵耋ㄛ衄虴硉ADC_CH0﹜ADC_CH1﹜... ... ﹜ADC_CH7		
-* 怀    堤: uint32_t				1 蜆籵耋俇傖賸蛌遙    0 蜆籵耋帤俇傖蛌遙
-* 蛁砩岈砐: 拸
+* �賣㺭�滨妍:	ADC_IntEOCStat()
+* �蠘�霂湔�:	頧祆揢摰峕�銝剜鱏�嗆��
+* 颲�    ��: ADC_TypeDef * ADCx		���閬�◤霈曄蔭��DC嚗�虾�硋�澆��括DC
+*			uint32_t chn			閬�䰻霂Y��𡁻�嚗峕����劈DC_CH0��DC_CH1��... ... ��DC_CH7		
+* 颲�    ��: uint32_t				1 霂仿�𡁻�摰峕�鈭�蓮��    0 霂仿�𡁻��芸��鞱蓮��
+* 瘜冽�鈭钅★: ��
 ******************************************************************************************************************************************/
 uint32_t ADC_IntEOCStat(ADC_TypeDef * ADCx, uint32_t chn)
 {
@@ -330,12 +330,12 @@ uint32_t ADC_IntEOCStat(ADC_TypeDef * ADCx, uint32_t chn)
 }
 
 /****************************************************************************************************************************************** 
-* 滲杅靡備:	ADC_IntOVFEn()
-* 髡夔佽隴:	杅擂祛堤笢剿妏夔
-* 怀    ⻌: ADC_TypeDef * ADCx		硌隅猁掩扢离腔ADCㄛ褫龰硉婦嬤ADC
-*			uint32_t chn			猁扢离腔籵耋ㄛ衄虴硉ADC_CH0﹜ADC_CH1﹜... ... ﹜ADC_CH7		
-* 怀    堤: 拸
-* 蛁砩岈砐: 拸
+* �賣㺭�滨妍:	ADC_IntOVFEn()
+* �蠘�霂湔�:	�唳旿皞W枂銝剜鱏雿輯�
+* 颲�    ��: ADC_TypeDef * ADCx		���閬�◤霈曄蔭��DC嚗�虾�硋�澆��括DC
+*			uint32_t chn			閬�挽蝵桃��𡁻�嚗峕����劈DC_CH0��DC_CH1��... ... ��DC_CH7		
+* 颲�    ��: ��
+* 瘜冽�鈭钅★: ��
 ******************************************************************************************************************************************/
 void ADC_IntOVFEn(ADC_TypeDef * ADCx, uint32_t chn)
 {
@@ -345,12 +345,12 @@ void ADC_IntOVFEn(ADC_TypeDef * ADCx, uint32_t chn)
 }
 
 /****************************************************************************************************************************************** 
-* 滲杅靡備:	ADC_IntOVFDis()
-* 髡夔佽隴:	杅擂祛堤笢剿輦砦
-* 怀    ⻌: ADC_TypeDef * ADCx		硌隅猁掩扢离腔ADCㄛ褫龰硉婦嬤ADC
-*			uint32_t chn			猁扢离腔籵耋ㄛ衄虴硉ADC_CH0﹜ADC_CH1﹜... ... ﹜ADC_CH7		
-* 怀    堤: 拸
-* 蛁砩岈砐: 拸
+* �賣㺭�滨妍:	ADC_IntOVFDis()
+* �蠘�霂湔�:	�唳旿皞W枂銝剜鱏蝳�迫
+* 颲�    ��: ADC_TypeDef * ADCx		���閬�◤霈曄蔭��DC嚗�虾�硋�澆��括DC
+*			uint32_t chn			閬�挽蝵桃��𡁻�嚗峕����劈DC_CH0��DC_CH1��... ... ��DC_CH7		
+* 颲�    ��: ��
+* 瘜冽�鈭钅★: ��
 ******************************************************************************************************************************************/
 void ADC_IntOVFDis(ADC_TypeDef * ADCx, uint32_t chn)
 {
@@ -360,12 +360,12 @@ void ADC_IntOVFDis(ADC_TypeDef * ADCx, uint32_t chn)
 }
 
 /****************************************************************************************************************************************** 
-* 滲杅靡備:	ADC_IntOVFClr()
-* 髡夔佽隴:	杅擂祛堤笢剿梓祩ラ壺
-* 怀    ⻌: ADC_TypeDef * ADCx		硌隅猁掩扢离腔ADCㄛ褫龰硉婦嬤ADC
-*			uint32_t chn			猁扢离腔籵耋ㄛ衄虴硉ADC_CH0﹜ADC_CH1﹜... ... ﹜ADC_CH7		
-* 怀    堤: 拸
-* 蛁砩岈砐: 拸
+* �賣㺭�滨妍:	ADC_IntOVFClr()
+* �蠘�霂湔�:	�唳旿皞W枂銝剜鱏���皜�膄
+* 颲�    ��: ADC_TypeDef * ADCx		���閬�◤霈曄蔭��DC嚗�虾�硋�澆��括DC
+*			uint32_t chn			閬�挽蝵桃��𡁻�嚗峕����劈DC_CH0��DC_CH1��... ... ��DC_CH7		
+* 颲�    ��: ��
+* 瘜冽�鈭钅★: ��
 ******************************************************************************************************************************************/
 void ADC_IntOVFClr(ADC_TypeDef * ADCx, uint32_t chn)
 {
@@ -375,12 +375,12 @@ void ADC_IntOVFClr(ADC_TypeDef * ADCx, uint32_t chn)
 }
 
 /****************************************************************************************************************************************** 
-* 滲杅靡備:	ADC_IntOVFStat()
-* 髡夔佽隴:	杅擂祛堤笢剿袨怓
-* 怀    ⻌: ADC_TypeDef * ADCx		硌隅猁掩扢离腔ADCㄛ褫龰硉婦嬤ADC
-*			uint32_t chn			猁脤戙腔籵耋ㄛ衄虴硉ADC_CH0﹜ADC_CH1﹜... ... ﹜ADC_CH7		
-* 怀    堤: uint32_t				1 蜆籵耋俇傖賸蛌遙    0 蜆籵耋帤俇傖蛌遙
-* 蛁砩岈砐: 拸
+* �賣㺭�滨妍:	ADC_IntOVFStat()
+* �蠘�霂湔�:	�唳旿皞W枂銝剜鱏�嗆��
+* 颲�    ��: ADC_TypeDef * ADCx		���閬�◤霈曄蔭��DC嚗�虾�硋�澆��括DC
+*			uint32_t chn			閬�䰻霂Y��𡁻�嚗峕����劈DC_CH0��DC_CH1��... ... ��DC_CH7		
+* 颲�    ��: uint32_t				1 霂仿�𡁻�摰峕�鈭�蓮��    0 霂仿�𡁻��芸��鞱蓮��
+* 瘜冽�鈭钅★: ��
 ******************************************************************************************************************************************/
 uint32_t ADC_IntOVFStat(ADC_TypeDef * ADCx, uint32_t chn)
 {
@@ -390,12 +390,12 @@ uint32_t ADC_IntOVFStat(ADC_TypeDef * ADCx, uint32_t chn)
 }
 
 /****************************************************************************************************************************************** 
-* 滲杅靡備:	ADC_IntHFULLEn()
-* 髡夔佽隴:	FIFO圉雛笢剿妏夔
-* 怀    ⻌: ADC_TypeDef * ADCx		硌隅猁掩扢离腔ADCㄛ褫龰硉婦嬤ADC
-*			uint32_t chn			猁扢离腔籵耋ㄛ衄虴硉ADC_CH0﹜ADC_CH1﹜... ... ﹜ADC_CH7		
-* 怀    堤: 拸
-* 蛁砩岈砐: 拸
+* �賣㺭�滨妍:	ADC_IntHFULLEn()
+* �蠘�霂湔�:	FIFO�𦠜說銝剜鱏雿輯�
+* 颲�    ��: ADC_TypeDef * ADCx		���閬�◤霈曄蔭��DC嚗�虾�硋�澆��括DC
+*			uint32_t chn			閬�挽蝵桃��𡁻�嚗峕����劈DC_CH0��DC_CH1��... ... ��DC_CH7		
+* 颲�    ��: ��
+* 瘜冽�鈭钅★: ��
 ******************************************************************************************************************************************/
 void ADC_IntHFULLEn(ADC_TypeDef * ADCx, uint32_t chn)
 {
@@ -405,12 +405,12 @@ void ADC_IntHFULLEn(ADC_TypeDef * ADCx, uint32_t chn)
 }
 
 /****************************************************************************************************************************************** 
-* 滲杅靡備:	ADC_IntHFULLDis()
-* 髡夔佽隴:	FIFO圉雛笢剿輦砦
-* 怀    ⻌: ADC_TypeDef * ADCx		硌隅猁掩扢离腔ADCㄛ褫龰硉婦嬤ADC
-*			uint32_t chn			猁扢离腔籵耋ㄛ衄虴硉ADC_CH0﹜ADC_CH1﹜... ... ﹜ADC_CH7		
-* 怀    堤: 拸
-* 蛁砩岈砐: 拸
+* �賣㺭�滨妍:	ADC_IntHFULLDis()
+* �蠘�霂湔�:	FIFO�𦠜說銝剜鱏蝳�迫
+* 颲�    ��: ADC_TypeDef * ADCx		���閬�◤霈曄蔭��DC嚗�虾�硋�澆��括DC
+*			uint32_t chn			閬�挽蝵桃��𡁻�嚗峕����劈DC_CH0��DC_CH1��... ... ��DC_CH7		
+* 颲�    ��: ��
+* 瘜冽�鈭钅★: ��
 ******************************************************************************************************************************************/
 void ADC_IntHFULLDis(ADC_TypeDef * ADCx, uint32_t chn)
 {
@@ -420,12 +420,12 @@ void ADC_IntHFULLDis(ADC_TypeDef * ADCx, uint32_t chn)
 }
 
 /****************************************************************************************************************************************** 
-* 滲杅靡備:	ADC_IntHFULLClr()
-* 髡夔佽隴:	FIFO圉雛笢剿梓祩ラ壺
-* 怀    ⻌: ADC_TypeDef * ADCx		硌隅猁掩扢离腔ADCㄛ褫龰硉婦嬤ADC
-*			uint32_t chn			猁扢离腔籵耋ㄛ衄虴硉ADC_CH0﹜ADC_CH1﹜... ... ﹜ADC_CH7		
-* 怀    堤: 拸
-* 蛁砩岈砐: 拸
+* �賣㺭�滨妍:	ADC_IntHFULLClr()
+* �蠘�霂湔�:	FIFO�𦠜說銝剜鱏���皜�膄
+* 颲�    ��: ADC_TypeDef * ADCx		���閬�◤霈曄蔭��DC嚗�虾�硋�澆��括DC
+*			uint32_t chn			閬�挽蝵桃��𡁻�嚗峕����劈DC_CH0��DC_CH1��... ... ��DC_CH7		
+* 颲�    ��: ��
+* 瘜冽�鈭钅★: ��
 ******************************************************************************************************************************************/
 void ADC_IntHFULLClr(ADC_TypeDef * ADCx, uint32_t chn)
 {
@@ -435,12 +435,12 @@ void ADC_IntHFULLClr(ADC_TypeDef * ADCx, uint32_t chn)
 }
 
 /****************************************************************************************************************************************** 
-* 滲杅靡備:	ADC_IntHFULLStat()
-* 髡夔佽隴:	FIFO圉雛笢剿袨怓
-* 怀    ⻌: ADC_TypeDef * ADCx		硌隅猁掩扢离腔ADCㄛ褫龰硉婦嬤ADC
-*			uint32_t chn			猁脤戙腔籵耋ㄛ衄虴硉ADC_CH0﹜ADC_CH1﹜... ... ﹜ADC_CH7		
-* 怀    堤: uint32_t				1 蜆籵耋俇傖賸蛌遙    0 蜆籵耋帤俇傖蛌遙
-* 蛁砩岈砐: 拸
+* �賣㺭�滨妍:	ADC_IntHFULLStat()
+* �蠘�霂湔�:	FIFO�𦠜說銝剜鱏�嗆��
+* 颲�    ��: ADC_TypeDef * ADCx		���閬�◤霈曄蔭��DC嚗�虾�硋�澆��括DC
+*			uint32_t chn			閬�䰻霂Y��𡁻�嚗峕����劈DC_CH0��DC_CH1��... ... ��DC_CH7		
+* 颲�    ��: uint32_t				1 霂仿�𡁻�摰峕�鈭�蓮��    0 霂仿�𡁻��芸��鞱蓮��
+* 瘜冽�鈭钅★: ��
 ******************************************************************************************************************************************/
 uint32_t ADC_IntHFULLStat(ADC_TypeDef * ADCx, uint32_t chn)
 {
@@ -450,12 +450,12 @@ uint32_t ADC_IntHFULLStat(ADC_TypeDef * ADCx, uint32_t chn)
 }
 
 /****************************************************************************************************************************************** 
-* 滲杅靡備:	ADC_IntFULLEn()
-* 髡夔佽隴:	FIFO雛笢剿妏夔
-* 怀    ⻌: ADC_TypeDef * ADCx		硌隅猁掩扢离腔ADCㄛ褫龰硉婦嬤ADC
-*			uint32_t chn			猁扢离腔籵耋ㄛ衄虴硉ADC_CH0﹜ADC_CH1﹜... ... ﹜ADC_CH7		
-* 怀    堤: 拸
-* 蛁砩岈砐: 拸
+* �賣㺭�滨妍:	ADC_IntFULLEn()
+* �蠘�霂湔�:	FIFO皛∩葉�凋蝙��
+* 颲�    ��: ADC_TypeDef * ADCx		���閬�◤霈曄蔭��DC嚗�虾�硋�澆��括DC
+*			uint32_t chn			閬�挽蝵桃��𡁻�嚗峕����劈DC_CH0��DC_CH1��... ... ��DC_CH7		
+* 颲�    ��: ��
+* 瘜冽�鈭钅★: ��
 ******************************************************************************************************************************************/
 void ADC_IntFULLEn(ADC_TypeDef * ADCx, uint32_t chn)
 {
@@ -465,12 +465,12 @@ void ADC_IntFULLEn(ADC_TypeDef * ADCx, uint32_t chn)
 }
 
 /****************************************************************************************************************************************** 
-* 滲杅靡備:	ADC_IntFULLDis()
-* 髡夔佽隴:	FIFO雛笢剿輦砦
-* 怀    ⻌: ADC_TypeDef * ADCx		硌隅猁掩扢离腔ADCㄛ褫龰硉婦嬤ADC
-*			uint32_t chn			猁扢离腔籵耋ㄛ衄虴硉ADC_CH0﹜ADC_CH1﹜... ... ﹜ADC_CH7		
-* 怀    堤: 拸
-* 蛁砩岈砐: 拸
+* �賣㺭�滨妍:	ADC_IntFULLDis()
+* �蠘�霂湔�:	FIFO皛∩葉�剔�甇�
+* 颲�    ��: ADC_TypeDef * ADCx		���閬�◤霈曄蔭��DC嚗�虾�硋�澆��括DC
+*			uint32_t chn			閬�挽蝵桃��𡁻�嚗峕����劈DC_CH0��DC_CH1��... ... ��DC_CH7		
+* 颲�    ��: ��
+* 瘜冽�鈭钅★: ��
 ******************************************************************************************************************************************/
 void ADC_IntFULLDis(ADC_TypeDef * ADCx, uint32_t chn)
 {
@@ -480,12 +480,12 @@ void ADC_IntFULLDis(ADC_TypeDef * ADCx, uint32_t chn)
 }
 
 /****************************************************************************************************************************************** 
-* 滲杅靡備:	ADC_IntFULLClr()
-* 髡夔佽隴:	FIFO雛笢剿梓祩ラ壺
-* 怀    ⻌: ADC_TypeDef * ADCx		硌隅猁掩扢离腔ADCㄛ褫龰硉婦嬤ADC
-*			uint32_t chn			猁扢离腔籵耋ㄛ衄虴硉ADC_CH0﹜ADC_CH1﹜... ... ﹜ADC_CH7		
-* 怀    堤: 拸
-* 蛁砩岈砐: 拸
+* �賣㺭�滨妍:	ADC_IntFULLClr()
+* �蠘�霂湔�:	FIFO皛∩葉�剜�敹埈���
+* 颲�    ��: ADC_TypeDef * ADCx		���閬�◤霈曄蔭��DC嚗�虾�硋�澆��括DC
+*			uint32_t chn			閬�挽蝵桃��𡁻�嚗峕����劈DC_CH0��DC_CH1��... ... ��DC_CH7		
+* 颲�    ��: ��
+* 瘜冽�鈭钅★: ��
 ******************************************************************************************************************************************/
 void ADC_IntFULLClr(ADC_TypeDef * ADCx, uint32_t chn)
 {
@@ -495,12 +495,12 @@ void ADC_IntFULLClr(ADC_TypeDef * ADCx, uint32_t chn)
 }
 
 /****************************************************************************************************************************************** 
-* 滲杅靡備:	ADC_IntFULLStat()
-* 髡夔佽隴:	FIFO雛笢剿袨怓
-* 怀    ⻌: ADC_TypeDef * ADCx		硌隅猁掩扢离腔ADCㄛ褫龰硉婦嬤ADC
-*			uint32_t chn			猁脤戙腔籵耋ㄛ衄虴硉ADC_CH0﹜ADC_CH1﹜... ... ﹜ADC_CH7		
-* 怀    堤: uint32_t				1 蜆籵耋俇傖賸蛌遙    0 蜆籵耋帤俇傖蛌遙
-* 蛁砩岈砐: 拸
+* �賣㺭�滨妍:	ADC_IntFULLStat()
+* �蠘�霂湔�:	FIFO皛∩葉�剔𠶖��
+* 颲�    ��: ADC_TypeDef * ADCx		���閬�◤霈曄蔭��DC嚗�虾�硋�澆��括DC
+*			uint32_t chn			閬�䰻霂Y��𡁻�嚗峕����劈DC_CH0��DC_CH1��... ... ��DC_CH7		
+* 颲�    ��: uint32_t				1 霂仿�𡁻�摰峕�鈭�蓮��    0 霂仿�𡁻��芸��鞱蓮��
+* 瘜冽�鈭钅★: ��
 ******************************************************************************************************************************************/
 uint32_t ADC_IntFULLStat(ADC_TypeDef * ADCx, uint32_t chn)
 {

+ 39 - 39
bsp/swm320/libraries/SWM320_StdPeriph_Driver/SWM320_adc.h

@@ -2,18 +2,18 @@
 #define	__SWM320_ADC_H__
 
 typedef struct {
-	uint8_t clk_src;		//ADC转换时钟源:ADC_CLKSRC_HRC、ADC_CLKSRC_VCO_DIV16、ADC_CLKSRC_VCO_DIV32、ADC_CLKSRC_VCO_DIV32
-	uint8_t clk_div;		//ADC转换时钟分频,取值1--31
-	uint8_t pga_ref;		//PGA基准:PGA_REF_INTERNAL、PGA_REF_EXTERNAL
-	uint8_t channels;		//ADC转换通道选中,ADC_CH0、ADC_CH1、... ... 、ADC_CH7及其组合(即“按位或”运算)
-	uint8_t samplAvg;		//采样取平均,触发启动ADC转换后,ADC在一个通道上连续采样、转换多次,并将它们的平均值作为该通道转换结果
-	uint8_t trig_src;		//ADC触发方式:ADC_TRIGSRC_SW、ADC_TRIGSRC_PWM、ADC_TRIGSRC_TIMR2、ADC_TRIGSRC_TIMR3
-	uint8_t Continue;		//在软件触发模式下:1 连续转换模式,启动后一直采样、转换,直到软件清除START位
-							//                  0 单次转换模式,转换完成后START位自动清除停止转换
-	uint8_t EOC_IEn;		//EOC中断使能,可针对每个通道设置,其有效值为ADC_CH0、ADC_CH1、... ... 、ADC_CH7及其组合(即“按位或”运算)
-	uint8_t OVF_IEn;		//OVF中断使能,可针对每个通道设置,其有效值为ADC_CH0、ADC_CH1、... ... 、ADC_CH7及其组合(即“按位或”运算)
-	uint8_t HFULL_IEn;		//FIFO半满中断使能,可针对每个通道设置,其有效值为ADC_CH0、ADC_CH1、... ... 、ADC_CH7及其组合(即“按位或”运算)
-	uint8_t FULL_IEn;		//FIFO  满中断使能,可针对每个通道设置,其有效值为ADC_CH0、ADC_CH1、... ... 、ADC_CH7及其组合(即“按位或”运算)
+	uint8_t clk_src;		//ADC杞�崲鏃堕挓婧愶細ADC_CLKSRC_HRC銆丄DC_CLKSRC_VCO_DIV16銆丄DC_CLKSRC_VCO_DIV32銆丄DC_CLKSRC_VCO_DIV32
+	uint8_t clk_div;		//ADC杞�崲鏃堕挓鍒嗛�锛屽彇鍊�1--31
+	uint8_t pga_ref;		//PGA鍩哄噯锛歅GA_REF_INTERNAL銆丳GA_REF_EXTERNAL
+	uint8_t channels;		//ADC杞�崲閫氶亾閫変腑锛孉DC_CH0銆丄DC_CH1銆�... ... 銆丄DC_CH7鍙婂叾缁勫悎锛堝嵆鈥滄寜浣嶆垨鈥濊繍绠楋級
+	uint8_t samplAvg;		//閲囨牱鍙栧钩鍧囷紝瑙﹀彂鍚�姩ADC杞�崲鍚庯紝ADC鍦ㄤ竴涓�€氶亾涓婅繛缁�噰鏍枫€佽浆鎹㈠�娆★紝骞跺皢瀹冧滑鐨勫钩鍧囧€间綔涓鸿�閫氶亾杞�崲缁撴灉
+	uint8_t trig_src;		//ADC瑙﹀彂鏂瑰紡锛欰DC_TRIGSRC_SW銆丄DC_TRIGSRC_PWM銆丄DC_TRIGSRC_TIMR2銆丄DC_TRIGSRC_TIMR3
+	uint8_t Continue;		//鍦ㄨ蒋浠惰Е鍙戞ā寮忎笅锛�1 杩炵画杞�崲妯″紡锛屽惎鍔ㄥ悗涓€鐩撮噰鏍枫€佽浆鎹�紝鐩村埌杞�欢娓呴櫎START浣�
+							//                  0 鍗曟�杞�崲妯″紡锛岃浆鎹㈠畬鎴愬悗START浣嶈嚜鍔ㄦ竻闄ゅ仠姝㈣浆鎹�
+	uint8_t EOC_IEn;		//EOC涓�柇浣胯兘锛屽彲閽堝�姣忎釜閫氶亾璁剧疆锛屽叾鏈夋晥鍊间负ADC_CH0銆丄DC_CH1銆�... ... 銆丄DC_CH7鍙婂叾缁勫悎锛堝嵆鈥滄寜浣嶆垨鈥濊繍绠楋級
+	uint8_t OVF_IEn;		//OVF涓�柇浣胯兘锛屽彲閽堝�姣忎釜閫氶亾璁剧疆锛屽叾鏈夋晥鍊间负ADC_CH0銆丄DC_CH1銆�... ... 銆丄DC_CH7鍙婂叾缁勫悎锛堝嵆鈥滄寜浣嶆垨鈥濊繍绠楋級
+	uint8_t HFULL_IEn;		//FIFO鍗婃弧涓�柇浣胯兘锛屽彲閽堝�姣忎釜閫氶亾璁剧疆锛屽叾鏈夋晥鍊间负ADC_CH0銆丄DC_CH1銆�... ... 銆丄DC_CH7鍙婂叾缁勫悎锛堝嵆鈥滄寜浣嶆垨鈥濊繍绠楋級
+	uint8_t FULL_IEn;		//FIFO  婊′腑鏂�娇鑳斤紝鍙�拡瀵规瘡涓�€氶亾璁剧疆锛屽叾鏈夋晥鍊间负ADC_CH0銆丄DC_CH1銆�... ... 銆丄DC_CH7鍙婂叾缁勫悎锛堝嵆鈥滄寜浣嶆垨鈥濊繍绠楋級
 } ADC_InitStructure;
 
 #define ADC_CH0		0x01
@@ -31,49 +31,49 @@ typedef struct {
 #define ADC_CLKSRC_VCO_DIV64	4
 
 #define ADC_AVG_SAMPLE1			0	
-#define ADC_AVG_SAMPLE2			1	//一次启动连续采样、转换2次,并计算两次结果的平均值作为转换结果
+#define ADC_AVG_SAMPLE2			1	//涓€娆″惎鍔ㄨ繛缁�噰鏍枫€佽浆鎹�2娆★紝骞惰�绠椾袱娆$粨鏋滅殑骞冲潎鍊间綔涓鸿浆鎹㈢粨鏋�
 #define ADC_AVG_SAMPLE4			3
 #define ADC_AVG_SAMPLE8			7
 #define ADC_AVG_SAMPLE16		15
 
-#define ADC_TRIGSRC_SW			0	//软件触发,即ADC->START.GO写1启动转换
+#define ADC_TRIGSRC_SW			0	//杞�欢瑙﹀彂锛屽嵆ADC->START.GO鍐�1鍚�姩杞�崲
 #define ADC_TRIGSRC_PWM			1
 
-#define PGA_REF_INTERNAL		1	//PGA输入共模电平由内部电路产生,ADC_REFP和ADC_REFN可悬空
-#define PGA_REF_EXTERNAL		0	//PGA输入共模电平由外部引脚提供,(ADC_REFP + ADC_REFN) 电平值须与量程相同
+#define PGA_REF_INTERNAL		1	//PGA杈撳叆鍏辨ā鐢靛钩鐢卞唴閮ㄧ數璺�骇鐢燂紝ADC_REFP鍜孉DC_REFN鍙�偓绌�
+#define PGA_REF_EXTERNAL		0	//PGA杈撳叆鍏辨ā鐢靛钩鐢卞�閮ㄥ紩鑴氭彁渚涳紝(ADC_REFP + ADC_REFN) 鐢靛钩鍊奸』涓庨噺绋嬬浉鍚�
 
 
-void ADC_Init(ADC_TypeDef * ADCx, ADC_InitStructure * initStruct);		//ADC模数转换器初始化
-void ADC_Open(ADC_TypeDef * ADCx);							//ADC开启,可以软件启动、或硬件触发ADC转换
-void ADC_Close(ADC_TypeDef * ADCx);							//ADC关闭,无法软件启动、或硬件触发ADC转换
-void ADC_Start(ADC_TypeDef * ADCx);							//启动指定ADC,开始模数转换
-void ADC_Stop(ADC_TypeDef * ADCx);							//关闭指定ADC,停止模数转换
+void ADC_Init(ADC_TypeDef * ADCx, ADC_InitStructure * initStruct);		//ADC妯℃暟杞�崲鍣ㄥ垵濮嬪寲
+void ADC_Open(ADC_TypeDef * ADCx);							//ADC寮€鍚�紝鍙�互杞�欢鍚�姩銆佹垨纭�欢瑙﹀彂ADC杞�崲
+void ADC_Close(ADC_TypeDef * ADCx);							//ADC鍏抽棴锛屾棤娉曡蒋浠跺惎鍔ㄣ€佹垨纭�欢瑙﹀彂ADC杞�崲
+void ADC_Start(ADC_TypeDef * ADCx);							//鍚�姩鎸囧畾ADC锛屽紑濮嬫ā鏁拌浆鎹�
+void ADC_Stop(ADC_TypeDef * ADCx);							//鍏抽棴鎸囧畾ADC锛屽仠姝㈡ā鏁拌浆鎹�
 
-uint32_t ADC_Read(ADC_TypeDef * ADCx, uint32_t chn);		//从指定通道读取转换结果
-uint32_t ADC_IsEOC(ADC_TypeDef * ADCx, uint32_t chn);		//指定通道是否End Of Conversion
+uint32_t ADC_Read(ADC_TypeDef * ADCx, uint32_t chn);		//浠庢寚瀹氶€氶亾璇诲彇杞�崲缁撴灉
+uint32_t ADC_IsEOC(ADC_TypeDef * ADCx, uint32_t chn);		//鎸囧畾閫氶亾鏄�惁End Of Conversion
 
 void ADC_ChnSelect(ADC_TypeDef * ADCx, uint32_t chns);
 
 
-void ADC_IntEOCEn(ADC_TypeDef * ADCx, uint32_t chn);		//转换完成中断使能
-void ADC_IntEOCDis(ADC_TypeDef * ADCx, uint32_t chn);		//转换完成中断禁止
-void ADC_IntEOCClr(ADC_TypeDef * ADCx, uint32_t chn);		//转换完成中断标志清除
-uint32_t ADC_IntEOCStat(ADC_TypeDef * ADCx, uint32_t chn);	//转换完成中断状态
+void ADC_IntEOCEn(ADC_TypeDef * ADCx, uint32_t chn);		//杞�崲瀹屾垚涓�柇浣胯兘
+void ADC_IntEOCDis(ADC_TypeDef * ADCx, uint32_t chn);		//杞�崲瀹屾垚涓�柇绂佹�
+void ADC_IntEOCClr(ADC_TypeDef * ADCx, uint32_t chn);		//杞�崲瀹屾垚涓�柇鏍囧織娓呴櫎
+uint32_t ADC_IntEOCStat(ADC_TypeDef * ADCx, uint32_t chn);	//杞�崲瀹屾垚涓�柇鐘舵€�
 
-void ADC_IntOVFEn(ADC_TypeDef * ADCx, uint32_t chn);		//数据溢出中断使能
-void ADC_IntOVFDis(ADC_TypeDef * ADCx, uint32_t chn);		//数据溢出中断禁止
-void ADC_IntOVFClr(ADC_TypeDef * ADCx, uint32_t chn);		//数据溢出中断标志清除
-uint32_t ADC_IntOVFStat(ADC_TypeDef * ADCx, uint32_t chn);	//数据溢出中断状态
+void ADC_IntOVFEn(ADC_TypeDef * ADCx, uint32_t chn);		//鏁版嵁婧㈠嚭涓�柇浣胯兘
+void ADC_IntOVFDis(ADC_TypeDef * ADCx, uint32_t chn);		//鏁版嵁婧㈠嚭涓�柇绂佹�
+void ADC_IntOVFClr(ADC_TypeDef * ADCx, uint32_t chn);		//鏁版嵁婧㈠嚭涓�柇鏍囧織娓呴櫎
+uint32_t ADC_IntOVFStat(ADC_TypeDef * ADCx, uint32_t chn);	//鏁版嵁婧㈠嚭涓�柇鐘舵€�
 
-void ADC_IntHFULLEn(ADC_TypeDef * ADCx, uint32_t chn);		//FIFO半满中断使能
-void ADC_IntHFULLDis(ADC_TypeDef * ADCx, uint32_t chn);		//FIFO半满中断禁止
-void ADC_IntHFULLClr(ADC_TypeDef * ADCx, uint32_t chn);		//FIFO半满中断标志清除
-uint32_t ADC_IntHFULLStat(ADC_TypeDef * ADCx, uint32_t chn);//FIFO半满中断状态
+void ADC_IntHFULLEn(ADC_TypeDef * ADCx, uint32_t chn);		//FIFO鍗婃弧涓�柇浣胯兘
+void ADC_IntHFULLDis(ADC_TypeDef * ADCx, uint32_t chn);		//FIFO鍗婃弧涓�柇绂佹�
+void ADC_IntHFULLClr(ADC_TypeDef * ADCx, uint32_t chn);		//FIFO鍗婃弧涓�柇鏍囧織娓呴櫎
+uint32_t ADC_IntHFULLStat(ADC_TypeDef * ADCx, uint32_t chn);//FIFO鍗婃弧涓�柇鐘舵€�
 
-void ADC_IntFULLEn(ADC_TypeDef * ADCx, uint32_t chn);		//FIFO满中断使能
-void ADC_IntFULLDis(ADC_TypeDef * ADCx, uint32_t chn);		//FIFO满中断禁止
-void ADC_IntFULLClr(ADC_TypeDef * ADCx, uint32_t chn);		//FIFO满中断标志清除
-uint32_t ADC_IntFULLStat(ADC_TypeDef * ADCx, uint32_t chn);	//FIFO满中断状态
+void ADC_IntFULLEn(ADC_TypeDef * ADCx, uint32_t chn);		//FIFO婊′腑鏂�娇鑳�
+void ADC_IntFULLDis(ADC_TypeDef * ADCx, uint32_t chn);		//FIFO婊′腑鏂��姝�
+void ADC_IntFULLClr(ADC_TypeDef * ADCx, uint32_t chn);		//FIFO婊′腑鏂�爣蹇楁竻闄�
+uint32_t ADC_IntFULLStat(ADC_TypeDef * ADCx, uint32_t chn);	//FIFO婊′腑鏂�姸鎬�
 
 
 #endif //__SWM320_ADC_H__

+ 6 - 90
bsp/swm320/libraries/SWM320_StdPeriph_Driver/SWM320_can.c

@@ -411,18 +411,6 @@ void CAN_INTRXNotEmptyDis(CAN_TypeDef * CANx)
 	CANx->IE &= ~(1 << CAN_IE_RXDA_Pos);
 }
 
-/****************************************************************************************************************************************** 
-* 函数名称:	CAN_INTRXNotEmptyStat()
-* 功能说明:	RX FIFO非空中断是否触发
-* 输    入: CAN_TypeDef * CANx	指定要被设置的CAN接口,有效值包括CAN
-* 输    出: uint32_t			1 已触发    0 未触发
-* 注意事项: 无
-******************************************************************************************************************************************/
-uint32_t CAN_INTRXNotEmptyStat(CAN_TypeDef * CANx)
-{
-	return (CANx->IF & CAN_IF_RXDA_Msk) ? 1 : 0;
-}
-
 /****************************************************************************************************************************************** 
 * 函数名称:	CAN_INTTXBufEmptyEn()
 * 功能说明:	当TX Buffer空时触发中断使能
@@ -447,18 +435,6 @@ void CAN_INTTXBufEmptyDis(CAN_TypeDef * CANx)
 	CANx->IE &= ~(1 << CAN_IE_TXBR_Pos);
 }
 
-/****************************************************************************************************************************************** 
-* 函数名称:	CAN_INTTXBufEmptyStat()
-* 功能说明:	TX Buffer空中断是否触发
-* 输    入: CAN_TypeDef * CANx	指定要被设置的CAN接口,有效值包括CAN
-* 输    出: uint32_t			1 已触发    0 未触发
-* 注意事项: 无
-******************************************************************************************************************************************/
-uint32_t CAN_INTTXBufEmptyStat(CAN_TypeDef * CANx)
-{
-	return (CANx->IF & CAN_IF_TXBR_Msk) ? 1 : 0;
-}
-
 /****************************************************************************************************************************************** 
 * 函数名称:	CAN_INTErrWarningEn()
 * 功能说明:	TXERR/RXERR计数值达到Error Warning Limit时触发中断使能
@@ -483,18 +459,6 @@ void CAN_INTErrWarningDis(CAN_TypeDef * CANx)
 	CANx->IE &= ~(1 << CAN_IE_ERRWARN_Pos);
 }
 
-/****************************************************************************************************************************************** 
-* 函数名称:	CAN_INTErrWarningStat()
-* 功能说明:	TXERR/RXERR计数值达到Error Warning Limit中断是否触发
-* 输    入: CAN_TypeDef * CANx	指定要被设置的CAN接口,有效值包括CAN
-* 输    出: uint32_t			1 已触发    0 未触发
-* 注意事项: 无
-******************************************************************************************************************************************/
-uint32_t CAN_INTErrWarningStat(CAN_TypeDef * CANx)
-{
-	return (CANx->IF & CAN_IF_ERRWARN_Msk) ? 1 : 0;
-}
-
 /****************************************************************************************************************************************** 
 * 函数名称:	CAN_INTRXOverflowEn()
 * 功能说明:	RX FIFO 溢出时触发中断使能
@@ -519,18 +483,6 @@ void CAN_INTRXOverflowDis(CAN_TypeDef * CANx)
 	CANx->IE &= ~(1 << CAN_IE_RXOV_Pos);
 }
 
-/****************************************************************************************************************************************** 
-* 函数名称:	CAN_INTRXOverflowStat()
-* 功能说明:	RX FIFO 溢出中断是否触发
-* 输    入: CAN_TypeDef * CANx	指定要被设置的CAN接口,有效值包括CAN
-* 输    出: uint32_t			1 已触发    0 未触发
-* 注意事项: 无
-******************************************************************************************************************************************/
-uint32_t CAN_INTRXOverflowStat(CAN_TypeDef * CANx)
-{
-	return (CANx->IF & CAN_IF_RXOV_Msk) ? 1 : 0;
-}
-
 /****************************************************************************************************************************************** 
 * 函数名称:	CAN_INTRXOverflowClear()
 * 功能说明:	RX FIFO 溢出中断清除
@@ -567,18 +519,6 @@ void CAN_INTWakeupDis(CAN_TypeDef * CANx)
 	CANx->IE &= ~(1 << CAN_IE_WKUP_Pos);
 }
 
-/****************************************************************************************************************************************** 
-* 函数名称:	CAN_INTWakeupStat()
-* 功能说明:	唤醒事件中断是否触发
-* 输    入: CAN_TypeDef * CANx	指定要被设置的CAN接口,有效值包括CAN
-* 输    出: uint32_t			1 已触发    0 未触发
-* 注意事项: 无
-******************************************************************************************************************************************/
-uint32_t CAN_INTWakeupStat(CAN_TypeDef * CANx)
-{
-	return (CANx->IF & CAN_IF_WKUP_Msk) ? 1 : 0;
-}
-
 /****************************************************************************************************************************************** 
 * 函数名称:	CAN_INTErrPassiveEn()
 * 功能说明:	TXERR/RXERR计数值达到127时中断使能
@@ -603,18 +543,6 @@ void CAN_INTErrPassiveDis(CAN_TypeDef * CANx)
 	CANx->IE &= ~(1 << CAN_IE_ERRPASS_Pos);
 }
 
-/****************************************************************************************************************************************** 
-* 函数名称:	CAN_INTErrPassiveStat()
-* 功能说明:	TXERR/RXERR计数值达到127中断是否触发
-* 输    入: CAN_TypeDef * CANx	指定要被设置的CAN接口,有效值包括CAN
-* 输    出: uint32_t			1 已触发    0 未触发
-* 注意事项: 无
-******************************************************************************************************************************************/
-uint32_t CAN_INTErrPassiveStat(CAN_TypeDef * CANx)
-{
-	return (CANx->IF & CAN_IF_ERRPASS_Msk) ? 1 : 0;
-}
-
 /****************************************************************************************************************************************** 
 * 函数名称:	CAN_INTArbitrLostEn()
 * 功能说明:	仲裁失败中断使能
@@ -639,18 +567,6 @@ void CAN_INTArbitrLostDis(CAN_TypeDef * CANx)
 	CANx->IE &= ~(1 << CAN_IE_ARBLOST_Pos);
 }
 
-/****************************************************************************************************************************************** 
-* 函数名称:	CAN_INTArbitrLostStat()
-* 功能说明:	仲裁失败中断是否触发
-* 输    入: CAN_TypeDef * CANx	指定要被设置的CAN接口,有效值包括CAN
-* 输    出: uint32_t			1 已触发    0 未触发
-* 注意事项: 无
-******************************************************************************************************************************************/
-uint32_t CAN_INTArbitrLostStat(CAN_TypeDef * CANx)
-{
-	return (CANx->IF & CAN_IF_ARBLOST_Msk) ? 1 : 0;
-}
-
 /****************************************************************************************************************************************** 
 * 函数名称:	CAN_INTBusErrorEn()
 * 功能说明:	总线错误中断使能
@@ -676,13 +592,13 @@ void CAN_INTBusErrorDis(CAN_TypeDef * CANx)
 }
 
 /****************************************************************************************************************************************** 
-* 函数名称:	CAN_INTBusErrorStat()
-* 功能说明:	总线错误中断是否触发
+* 函数名称:	CAN_INTStat()
+* 功能说明:	查询中断状态
 * 输    入: CAN_TypeDef * CANx	指定要被设置的CAN接口,有效值包括CAN
-* 输    出: uint32_t			1 已触发    0 未触发
-* 注意事项: 
+* 输    出: uint32_t			当前中断状态
+* 注意事项: CANx->IF读取清零,因此在中断ISR中只能读取一次,不能多次读取
 ******************************************************************************************************************************************/
-uint32_t CAN_INTBusErrorStat(CAN_TypeDef * CANx)
+uint32_t CAN_INTStat(CAN_TypeDef * CANx)
 {
-	return (CANx->IF & CAN_IF_BUSERR_Msk) ? 1 : 0;
+	return CANx->IF;
 }

+ 23 - 29
bsp/swm320/libraries/SWM320_StdPeriph_Driver/SWM320_can.h

@@ -5,14 +5,14 @@
 #define CAN_FRAME_EXT	1
 
 typedef struct {
-	uint8_t  Mode;			//CAN_MODE_NORMAL、CAN_MODE_LISTEN、CAN_MODE_SELFTEST
-	uint8_t  CAN_BS1;		//CAN_BS1_1tq、CAN_BS1_2tq、... ... 、CAN_BS1_16tq
-	uint8_t  CAN_BS2;		//CAN_BS2_1tq、CAN_BS2_2tq、... ... 、CAN_BS2_8tq
-	uint8_t  CAN_SJW;		//CAN_SJW_1tq、CAN_SJW_2tq、CAN_SJW_3tq、CAN_SJW_4tq
-	uint32_t Baudrate;		//波特率,即位传输速率,取值1--1000000
-	uint8_t  FilterMode;	//CAN_FILTER_16b、CAN_FILTER_32b
+	uint8_t  Mode;			//CAN_MODE_NORMAL銆丆AN_MODE_LISTEN銆丆AN_MODE_SELFTEST
+	uint8_t  CAN_BS1;		//CAN_BS1_1tq銆丆AN_BS1_2tq銆�... ... 銆丆AN_BS1_16tq
+	uint8_t  CAN_BS2;		//CAN_BS2_1tq銆丆AN_BS2_2tq銆�... ... 銆丆AN_BS2_8tq
+	uint8_t  CAN_SJW;		//CAN_SJW_1tq銆丆AN_SJW_2tq銆丆AN_SJW_3tq銆丆AN_SJW_4tq
+	uint32_t Baudrate;		//娉㈢壒鐜囷紝鍗充綅浼犺緭閫熺巼锛屽彇鍊�1--1000000
+	uint8_t  FilterMode;	//CAN_FILTER_16b銆丆AN_FILTER_32b
 	union {
-		uint32_t FilterMask32b;		//FilterCheck & (~FilterMask) == ID & (~FilterMask)的Message通过过滤
+		uint32_t FilterMask32b;		//FilterCheck & (~FilterMask) == ID & (~FilterMask)鐨凪essage閫氳繃杩囨护
 		struct {					// 0 must match    1 don't care
 			uint16_t FilterMask16b1;
 			uint16_t FilterMask16b2;
@@ -25,15 +25,15 @@ typedef struct {
 			uint16_t FilterCheck16b2;
 		};
 	};
-	uint8_t  RXNotEmptyIEn;		//接收FIFO非空,有数据可读
-	uint8_t  RXOverflowIEn;		//接收FIFO溢出,有数据丢失
-	uint8_t  ArbitrLostIEn;		//控制器丢失仲裁变成接收方
-	uint8_t  ErrPassiveIEn;		//接收/发送错误计数值达到127
+	uint8_t  RXNotEmptyIEn;		//鎺ユ敹FIFO闈炵┖锛屾湁鏁版嵁鍙��
+	uint8_t  RXOverflowIEn;		//鎺ユ敹FIFO婧㈠嚭锛屾湁鏁版嵁涓㈠け
+	uint8_t  ArbitrLostIEn;		//鎺у埗鍣ㄤ涪澶变徊瑁佸彉鎴愭帴鏀舵柟
+	uint8_t  ErrPassiveIEn;		//鎺ユ敹/鍙戦€侀敊璇��鏁板€艰揪鍒�127
 } CAN_InitStructure;
 
-#define CAN_MODE_NORMAL		0	//常规模式
-#define CAN_MODE_LISTEN		1	//监听模式
-#define CAN_MODE_SELFTEST	2	//自测模式
+#define CAN_MODE_NORMAL		0	//甯歌�妯″紡
+#define CAN_MODE_LISTEN		1	//鐩戝惉妯″紡
+#define CAN_MODE_SELFTEST	2	//鑷�祴妯″紡
 
 #define CAN_BS1_1tq			0
 #define CAN_BS1_2tq			1
@@ -66,15 +66,15 @@ typedef struct {
 #define CAN_SJW_3tq			2
 #define CAN_SJW_4tq			3
 
-#define CAN_FILTER_16b		0	//两个16位过滤器
-#define CAN_FILTER_32b		1	//一个32位过滤器
+#define CAN_FILTER_16b		0	//涓や釜16浣嶈繃婊ゅ櫒
+#define CAN_FILTER_32b		1	//涓€涓�32浣嶈繃婊ゅ櫒
 
 typedef struct {
-	uint32_t id;		//消息ID
-	uint8_t  format;	//帧格式:CAN_FRAME_STD、CAN_FRAME_EXT
-	uint8_t  remote;	//消息是否为远程帧
-	uint8_t  size;		//接收到的数据个数
-	uint8_t  data[8];	//接收到的数据
+	uint32_t id;		//娑堟伅ID
+	uint8_t  format;	//甯ф牸寮忥細CAN_FRAME_STD銆丆AN_FRAME_EXT
+	uint8_t  remote;	//娑堟伅鏄�惁涓鸿繙绋嬪抚
+	uint8_t  size;		//鎺ユ敹鍒扮殑鏁版嵁涓�暟
+	uint8_t  data[8];	//鎺ユ敹鍒扮殑鏁版嵁
 } CAN_RXMessage;
 
 
@@ -102,35 +102,29 @@ void CAN_SetFilter16b(CAN_TypeDef * CANx, uint16_t check1, uint16_t mask1, uint1
 
 void CAN_INTRXNotEmptyEn(CAN_TypeDef * CANx);
 void CAN_INTRXNotEmptyDis(CAN_TypeDef * CANx);
-uint32_t CAN_INTRXNotEmptyStat(CAN_TypeDef * CANx);
 
 void CAN_INTTXBufEmptyEn(CAN_TypeDef * CANx);
 void CAN_INTTXBufEmptyDis(CAN_TypeDef * CANx);
-uint32_t CAN_INTTXBufEmptyStat(CAN_TypeDef * CANx);
 
 void CAN_INTErrWarningEn(CAN_TypeDef * CANx);
 void CAN_INTErrWarningDis(CAN_TypeDef * CANx);
-uint32_t CAN_INTErrWarningStat(CAN_TypeDef * CANx);
 
 void CAN_INTRXOverflowEn(CAN_TypeDef * CANx);
 void CAN_INTRXOverflowDis(CAN_TypeDef * CANx);
-uint32_t CAN_INTRXOverflowStat(CAN_TypeDef * CANx);
 void CAN_INTRXOverflowClear(CAN_TypeDef * CANx);
 
 void CAN_INTWakeupEn(CAN_TypeDef * CANx);
 void CAN_INTWakeupDis(CAN_TypeDef * CANx);
-uint32_t CAN_INTWakeupStat(CAN_TypeDef * CANx);
 
 void CAN_INTErrPassiveEn(CAN_TypeDef * CANx);
 void CAN_INTErrPassiveDis(CAN_TypeDef * CANx);
-uint32_t CAN_INTErrPassiveStat(CAN_TypeDef * CANx);
 
 void CAN_INTArbitrLostEn(CAN_TypeDef * CANx);
 void CAN_INTArbitrLostDis(CAN_TypeDef * CANx);
-uint32_t CAN_INTArbitrLostStat(CAN_TypeDef * CANx);
 
 void CAN_INTBusErrorEn(CAN_TypeDef * CANx);
 void CAN_INTBusErrorDis(CAN_TypeDef * CANx);
-uint32_t CAN_INTBusErrorStat(CAN_TypeDef * CANx);
+
+uint32_t CAN_INTStat(CAN_TypeDef * CANx);
 
 #endif //__SWM320_CAN_H__

+ 15 - 15
bsp/swm320/libraries/SWM320_StdPeriph_Driver/SWM320_crc.h

@@ -2,22 +2,22 @@
 #define __SWM320_CRC_H__
 
 
-#define CRC32_IN32	0	//CRC32Ëã·¨£¬ÊäÈëÊý¾Ý32λ
-#define CRC32_IN16	2	//CRC32Ëã·¨£¬ÊäÈëÊý¾Ý16λ
-#define CRC32_IN8	4	//CRC32Ëã·¨£¬ÊäÈëÊý¾Ý 8λ
-#define CRC16_IN16	3	//CRC16Ëã·¨£¬ÊäÈëÊý¾Ý16λ
-#define CRC16_IN8	5	//CRC16Ëã·¨£¬ÊäÈëÊý¾Ý 8λ
+#define CRC32_IN32	0	//CRC32算法,输入数�32�
+#define CRC32_IN16	2	//CRC32算法,输入数�16�
+#define CRC32_IN8	4	//CRC32算法,输入数� 8�
+#define CRC16_IN16	3	//CRC16算法,输入数�16�
+#define CRC16_IN8	5	//CRC16算法,输入数� 8�
 
 
 void CRC_Init(CRC_TypeDef * CRCx, uint32_t mode, uint32_t out_not, uint32_t out_rev, uint32_t ini_val);
 
 
 /****************************************************************************************************************************************** 
-* º¯ÊýÃû³Æ:	CRC_Write()
-* ¹¦ÄÜ˵Ã÷:	CRCдÈëÊý¾Ý
-* Êä    Èë: uint32_t data		ҪдÈëµÄÊý¾Ý
-* Êä    ³ö: ÎÞ
-* ×¢ÒâÊÂÏî: ÎÞ
+* 函数�称:	CRC_Write()
+* 功能说明:	CRC写入数�
+* 输    入: uint32_t data		�写入的数�
+* 输    出: 无
+* 注�事项: 无
 ******************************************************************************************************************************************/
 static __INLINE void CRC_Write(uint32_t data)
 {
@@ -25,11 +25,11 @@ static __INLINE void CRC_Write(uint32_t data)
 }
 
 /****************************************************************************************************************************************** 
-* º¯ÊýÃû³Æ:	CRC_Result()
-* ¹¦ÄÜ˵Ã÷:	»ñÈ¡CRC¼ÆËã½á¹û
-* Êä    Èë: ÎÞ
-* Êä    ³ö: uint32_t			CRC ¼ÆËã½á¹û
-* ×¢ÒâÊÂÏî: ÎÞ
+* 函数�称:	CRC_Result()
+* 功能说明:	获�CRC计算结果
+* 输    入: 无
+* 输    出: uint32_t			CRC 计算结果
+* 注�事项: 无
 ******************************************************************************************************************************************/
 static __INLINE uint32_t CRC_Result(void)
 {

+ 7 - 7
bsp/swm320/libraries/SWM320_StdPeriph_Driver/SWM320_dma.h

@@ -7,14 +7,14 @@
 #define DMA_CH2		2
 
 
-void DMA_CHM_Config(uint32_t chn, uint32_t src_addr, uint32_t src_addr_incr, uint32_t dst_addr, uint32_t dst_addr_incr, uint32_t num_word, uint32_t int_en);	//DMA通道配置,用于存储器间(如Flash和RAM间)搬运数据
-void DMA_CH_Open(uint32_t chn);					//DMA通道打开
-void DMA_CH_Close(uint32_t chn);				//DMA通道关闭
+void DMA_CHM_Config(uint32_t chn, uint32_t src_addr, uint32_t src_addr_incr, uint32_t dst_addr, uint32_t dst_addr_incr, uint32_t num_word, uint32_t int_en);	//DMA閫氶亾閰嶇疆锛岀敤浜庡瓨鍌ㄥ櫒闂达紙濡侳lash鍜孯AM闂达級鎼�繍鏁版嵁
+void DMA_CH_Open(uint32_t chn);					//DMA閫氶亾鎵撳紑
+void DMA_CH_Close(uint32_t chn);				//DMA閫氶亾鍏抽棴
 
-void DMA_CH_INTEn(uint32_t chn);				//DMA中断使能,数据搬运完成后触发中断
-void DMA_CH_INTDis(uint32_t chn);				//DMA中断禁止,数据搬运完成后不触发中断
-void DMA_CH_INTClr(uint32_t chn);				//DMA中断标志清除
-uint32_t DMA_CH_INTStat(uint32_t chn);			//DMA中断状态查询,1 数据搬运完成    0 数据搬运未完成
+void DMA_CH_INTEn(uint32_t chn);				//DMA涓�柇浣胯兘锛屾暟鎹�惉杩愬畬鎴愬悗瑙﹀彂涓�柇
+void DMA_CH_INTDis(uint32_t chn);				//DMA涓�柇绂佹�锛屾暟鎹�惉杩愬畬鎴愬悗涓嶈Е鍙戜腑鏂�
+void DMA_CH_INTClr(uint32_t chn);				//DMA涓�柇鏍囧織娓呴櫎
+uint32_t DMA_CH_INTStat(uint32_t chn);			//DMA涓�柇鐘舵€佹煡璇�紝1 鏁版嵁鎼�繍瀹屾垚    0 鏁版嵁鎼�繍鏈�畬鎴�
 
 
 #endif //__SWM320_DMA_H__

+ 11 - 11
bsp/swm320/libraries/SWM320_StdPeriph_Driver/SWM320_exti.h

@@ -1,20 +1,20 @@
 #ifndef __SWM320_EXTI_H__
 #define	__SWM320_EXTI_H__
 
-void EXTI_Init(GPIO_TypeDef * GPIOx, uint32_t n, uint32_t mode);	//指定引脚外部中断初始化
-void EXTI_Open(GPIO_TypeDef * GPIOx, uint32_t n);					//指定引脚外部中断打开(即使能)
-void EXTI_Close(GPIO_TypeDef * GPIOx, uint32_t n);					//指定引脚外部中断关闭(即禁能)
+void EXTI_Init(GPIO_TypeDef * GPIOx, uint32_t n, uint32_t mode);	//鎸囧畾寮曡剼澶栭儴涓�柇鍒濆�鍖�
+void EXTI_Open(GPIO_TypeDef * GPIOx, uint32_t n);					//鎸囧畾寮曡剼澶栭儴涓�柇鎵撳紑锛堝嵆浣胯兘锛�
+void EXTI_Close(GPIO_TypeDef * GPIOx, uint32_t n);					//鎸囧畾寮曡剼澶栭儴涓�柇鍏抽棴锛堝嵆绂佽兘锛�
 
-uint32_t EXTI_State(GPIO_TypeDef * GPIOx, uint32_t n);				//指定引脚是否触发了中断
-uint32_t EXTI_RawState(GPIO_TypeDef * GPIOx, uint32_t n);			//指定引脚是否满足过/了中断触发条件,当此中断关闭时可通过调用此函数以查询的方式检测引脚上是否满足过/了中断触发条件
-void EXTI_Clear(GPIO_TypeDef * GPIOx, uint32_t n);					//指定引脚外部中断清除(即清除中断标志,以免再次进入此中断)
+uint32_t EXTI_State(GPIO_TypeDef * GPIOx, uint32_t n);				//鎸囧畾寮曡剼鏄�惁瑙﹀彂浜嗕腑鏂�
+uint32_t EXTI_RawState(GPIO_TypeDef * GPIOx, uint32_t n);			//鎸囧畾寮曡剼鏄�惁婊¤冻杩�/浜嗕腑鏂�Е鍙戞潯浠讹紝褰撴�涓�柇鍏抽棴鏃跺彲閫氳繃璋冪敤姝ゅ嚱鏁颁互鏌ヨ�鐨勬柟寮忔�娴嬪紩鑴氫笂鏄�惁婊¤冻杩�/浜嗕腑鏂�Е鍙戞潯浠�
+void EXTI_Clear(GPIO_TypeDef * GPIOx, uint32_t n);					//鎸囧畾寮曡剼澶栭儴涓�柇娓呴櫎锛堝嵆娓呴櫎涓�柇鏍囧織锛屼互鍏嶅啀娆¤繘鍏ユ�涓�柇锛�
 
 
-#define EXTI_FALL_EDGE	0x00	//下降沿触发中断
-#define EXTI_RISE_EDGE	0x01	//上升沿触发中断
-#define EXTI_BOTH_EDGE	0x02	//双边沿触发中断
-#define EXTI_LOW_LEVEL	0x10	//低电平触发中断
-#define EXTI_HIGH_LEVEL	0x11	//高电平触发中断
+#define EXTI_FALL_EDGE	0x00	//涓嬮檷娌胯Е鍙戜腑鏂�
+#define EXTI_RISE_EDGE	0x01	//涓婂崌娌胯Е鍙戜腑鏂�
+#define EXTI_BOTH_EDGE	0x02	//鍙岃竟娌胯Е鍙戜腑鏂�
+#define EXTI_LOW_LEVEL	0x10	//浣庣數骞宠Е鍙戜腑鏂�
+#define EXTI_HIGH_LEVEL	0x11	//楂樼數骞宠Е鍙戜腑鏂�
 
 
 #endif //__SWM320_EXTI_H__

+ 41 - 25
bsp/swm320/libraries/SWM320_StdPeriph_Driver/SWM320_flash.c

@@ -1,10 +1,10 @@
 /****************************************************************************************************************************************** 
-* 恅璃靡備:	SWM320_flash.c
-* 髡夔佽隴:	妏蚚郋⑵腔IAP髡夔蔚⑵奻Flash耀攜傖EEPROM懂悵湔杅擂ㄛ裁萇綴祥隍囮
-* 撮扲盓厥:	http://www.synwit.com.cn/e/tool/gbook/?bid=1
-* 蛁砩岈砐:
-* 唳掛゜ヽ: V1.1.0		2017爛10堎25゜
-* 汔撰暮翹: 
+* ��辣�滨妍:	SWM320_flash.c
+* �蠘�霂湔�:	雿輻鍂�舐���AP�蠘�撠��銝喐lash璅⊥��𨆼EPROM�乩�摮䀹㺭�殷��厩㩞�𦒘�銝W仃
+* ���舀𣈲��:	http://www.synwit.com.cn/e/tool/gbook/?bid=1
+* 瘜冽�鈭钅★:
+* ��𧋦�交�: V1.1.0		2017撟�10��25��
+* ��漣霈啣�: 
 *******************************************************************************************************************************************
 * @attention
 *
@@ -27,11 +27,11 @@ IAP_Flash_Write_t IAP_Flash_Write = (IAP_Flash_Write_t)0x11000801;
 
 
 /****************************************************************************************************************************************** 
-* 滲杅靡備: FLASH_Erase()
-* 髡夔佽隴:	⑵囀Flash笠壺
-* 怀    ⻌: uint32_t addr			笠壺華硊ㄛ圮Е湮苤峈4K Byte
-* 怀    堤: 拸
-* 蛁砩岈砐: 拸
+* �賣㺭�滨妍: FLASH_Erase()
+* �蠘�霂湔�:	���Flash�阡膄
+* 颲�    ��: uint32_t addr			�阡膄�啣�嚗峕��箏之撠譍蛹4K Byte
+* 颲�    ��: ��
+* 瘜冽�鈭钅★: ��
 ******************************************************************************************************************************************/
 void FLASH_Erase(uint32_t addr)
 {	
@@ -45,13 +45,13 @@ void FLASH_Erase(uint32_t addr)
 }
 
 /****************************************************************************************************************************************** 
-* 滲杅靡備: FLASH_Write()
-* 髡夔佽隴:	⑵囀Flash迡⻌
-* 怀    ⻌: uint32_t addr			迡⻌華硊
-*			uint32_t buff[]			猁迡⻌腔杅擂
-*			uint32_t count			猁迡⻌杅擂腔跺杅ㄛ眕趼峈等弇ㄛブ斛剕岆4腔淕杅捷ㄛ撈郔屾迡⻌4跺趼
-* 怀    堤: 拸
-* 蛁砩岈砐: 迡⻌杅擂跺杅斛剕岆4腔淕杅捷ㄛ撈郔屾迡⻌4跺趼
+* �賣㺭�滨妍: FLASH_Write()
+* �蠘�霂湔�:	���Flash�坔�
+* 颲�    ��: uint32_t addr			�坔��啣�
+*			uint32_t buff[]			閬���亦��唳旿
+*			uint32_t count			閬���交㺭�桃�銝芣㺭嚗䔶誑摮𦯀蛹�蓥�嚗䔶�敹�◆��4��㟲�啣�㵪��單�撠穃���4銝芸�
+* 颲�    ��: ��
+* 瘜冽�鈭钅★: �坔��唳旿銝芣㺭敹�◆��4��㟲�啣�㵪��單�撠穃���4銝芸�
 ******************************************************************************************************************************************/
 void FLASH_Write(uint32_t addr, uint32_t buff[], uint32_t count)
 {
@@ -65,17 +65,33 @@ void FLASH_Write(uint32_t addr, uint32_t buff[], uint32_t count)
 }
 
 /****************************************************************************************************************************************** 
-* 滲杅靡備: Flash_Param_at_120MHz()
-* 髡夔佽隴:	蔚Flash統杅扢离傖120MHz翋ⅰ狟堍俴奀垀剒腔統杅
-* 怀    ⻌: 拸
-* 怀    堤: 拸
-* 蛁砩岈砐: 拸
+* �賣㺭�滨妍: Flash_Param_at_xMHz()
+* �蠘�霂湔�:	撠�lash��㺭霈曄蔭�鉢MHz銝駁�銝贝�銵峕𧒄���������
+* 颲�    ��: uint32_t x		�臬���
+* 颲�    ��: ��
+* 瘜冽�鈭钅★: ��
 ******************************************************************************************************************************************/
-void Flash_Param_at_120MHz(void)
+void Flash_Param_at_xMHz(uint32_t x)
 {
 	__disable_irq();
+	switch(x)
+	{
+	case 30:
+		IAP_Flash_Param(0x489, 0xabf41f25);
+		break;
 	
-	IAP_Flash_Param(0x48a, 0xabfc7a6e);
+	case 40:
+		IAP_Flash_Param(0x489, 0xabf42929);
+		break;
 	
+	case 80:
+		IAP_Flash_Param(0x489, 0xabf8524d);
+		break;
+	
+	case 120:
+	default:
+		IAP_Flash_Param(0x48a, 0xabfc7a6e);
+		break;
+	}
 	__enable_irq();
 }

+ 1 - 1
bsp/swm320/libraries/SWM320_StdPeriph_Driver/SWM320_flash.h

@@ -5,7 +5,7 @@
 void FLASH_Erase(uint32_t addr);
 void FLASH_Write(uint32_t addr, uint32_t buff[], uint32_t count);
 
-void Flash_Param_at_120MHz(void);
+void Flash_Param_at_xMHz(uint32_t x);
 
 
 

+ 1 - 1
bsp/swm320/libraries/SWM320_StdPeriph_Driver/SWM320_gpio.c

@@ -31,7 +31,7 @@
 *			uint32_t pull_up	   上拉电阻,0 关闭上拉    1 开启上拉
 *			uint32_t pull_down	   下拉电阻,0 关闭下拉    1 开启下拉
 * 输    出: 无
-* 注意事项: GPIOA、GPIOC、GPIOM、GPIOP只有上拉,GPIOB、GPION只有下拉
+* 注意事项: GPIOA、GPIOC、GPIOM、GPIOP只有上拉,GPIOB、GPION只有下拉(PN0、PN1、PN2三个引脚有上拉没下拉)
 ******************************************************************************************************************************************/
 void GPIO_Init(GPIO_TypeDef * GPIOx, uint32_t n, uint32_t dir, uint32_t pull_up, uint32_t pull_down)
 {

+ 9 - 9
bsp/swm320/libraries/SWM320_StdPeriph_Driver/SWM320_gpio.h

@@ -2,16 +2,16 @@
 #define	__SWM320_GPIO_H__
 
 
-void GPIO_Init(GPIO_TypeDef * GPIOx, uint32_t n, uint32_t dir, uint32_t pull_up, uint32_t pull_down);	//引脚初始化,包含引脚方向、上拉电阻、下拉电阻
+void GPIO_Init(GPIO_TypeDef * GPIOx, uint32_t n, uint32_t dir, uint32_t pull_up, uint32_t pull_down);	//寮曡剼鍒濆�鍖栵紝鍖呭惈寮曡剼鏂瑰悜銆佷笂鎷夌數闃汇€佷笅鎷夌數闃�
 
-void GPIO_SetBit(GPIO_TypeDef * GPIOx, uint32_t n);						//将参数指定的引脚电平置高
-void GPIO_ClrBit(GPIO_TypeDef * GPIOx, uint32_t n);						//将参数指定的引脚电平置低
-void GPIO_InvBit(GPIO_TypeDef * GPIOx, uint32_t n);						//将参数指定的引脚电平反转
-uint32_t GPIO_GetBit(GPIO_TypeDef * GPIOx, uint32_t n);					//读取参数指定的引脚的电平状态
-void GPIO_SetBits(GPIO_TypeDef * GPIOx, uint32_t n, uint32_t w);		//将参数指定的从n开始的w位连续引脚的电平置高
-void GPIO_ClrBits(GPIO_TypeDef * GPIOx, uint32_t n, uint32_t w);		//将参数指定的从n开始的w位连续引脚的电平置低
-void GPIO_InvBits(GPIO_TypeDef * GPIOx, uint32_t n, uint32_t w);		//将参数指定的从n开始的w位连续引脚的电平反转
-uint32_t GPIO_GetBits(GPIO_TypeDef * GPIOx, uint32_t n, uint32_t w);	//读取参数指定的从n开始的w位连续引脚的电平状态
+void GPIO_SetBit(GPIO_TypeDef * GPIOx, uint32_t n);						//灏嗗弬鏁版寚瀹氱殑寮曡剼鐢靛钩缃�珮
+void GPIO_ClrBit(GPIO_TypeDef * GPIOx, uint32_t n);						//灏嗗弬鏁版寚瀹氱殑寮曡剼鐢靛钩缃�綆
+void GPIO_InvBit(GPIO_TypeDef * GPIOx, uint32_t n);						//灏嗗弬鏁版寚瀹氱殑寮曡剼鐢靛钩鍙嶈浆
+uint32_t GPIO_GetBit(GPIO_TypeDef * GPIOx, uint32_t n);					//璇诲彇鍙傛暟鎸囧畾鐨勫紩鑴氱殑鐢靛钩鐘舵€�
+void GPIO_SetBits(GPIO_TypeDef * GPIOx, uint32_t n, uint32_t w);		//灏嗗弬鏁版寚瀹氱殑浠巒寮€濮嬬殑w浣嶈繛缁�紩鑴氱殑鐢靛钩缃�珮
+void GPIO_ClrBits(GPIO_TypeDef * GPIOx, uint32_t n, uint32_t w);		//灏嗗弬鏁版寚瀹氱殑浠巒寮€濮嬬殑w浣嶈繛缁�紩鑴氱殑鐢靛钩缃�綆
+void GPIO_InvBits(GPIO_TypeDef * GPIOx, uint32_t n, uint32_t w);		//灏嗗弬鏁版寚瀹氱殑浠巒寮€濮嬬殑w浣嶈繛缁�紩鑴氱殑鐢靛钩鍙嶈浆
+uint32_t GPIO_GetBits(GPIO_TypeDef * GPIOx, uint32_t n, uint32_t w);	//璇诲彇鍙傛暟鎸囧畾鐨勪粠n寮€濮嬬殑w浣嶈繛缁�紩鑴氱殑鐢靛钩鐘舵€�
 
 void GPIO_AtomicSetBit(GPIO_TypeDef * GPIOx, uint32_t n);
 void GPIO_AtomicClrBit(GPIO_TypeDef * GPIOx, uint32_t n);

+ 11 - 11
bsp/swm320/libraries/SWM320_StdPeriph_Driver/SWM320_i2c.h

@@ -2,19 +2,19 @@
 #define __SWM320_I2C_H__
 
 typedef struct {
-	uint8_t  Master;		//1 主机模式
-	uint8_t  Addr7b;		//1 7位地址     0 10位地址
+	uint8_t  Master;		//1 涓绘満妯″紡
+	uint8_t  Addr7b;		//1 7浣嶅湴鍧€     0 10浣嶅湴鍧€
 	
-	uint32_t MstClk;		//主机传输时钟频率
-	uint8_t  MstIEn;		//主机模式中断使能
+	uint32_t MstClk;		//涓绘満浼犺緭鏃堕挓棰戠巼
+	uint8_t  MstIEn;		//涓绘満妯″紡涓�柇浣胯兘
 	
-	uint16_t SlvAddr;		//从机地址
-	uint8_t  SlvRxEndIEn;	//从机接收完成中断使能
-	uint8_t  SlvTxEndIEn;	//从机发送完成中断使能
-	uint8_t  SlvSTADetIEn;	//从机检测到起始中断使能
-	uint8_t  SlvSTODetIEn;	//从机检测到终止中断使能
-	uint8_t  SlvRdReqIEn;	//从机接收到读请求中断使能
-	uint8_t  SlvWrReqIEn;	//从机接收到写请求中断使能
+	uint16_t SlvAddr;		//浠庢満鍦板潃
+	uint8_t  SlvRxEndIEn;	//浠庢満鎺ユ敹瀹屾垚涓�柇浣胯兘
+	uint8_t  SlvTxEndIEn;	//浠庢満鍙戦€佸畬鎴愪腑鏂�娇鑳�
+	uint8_t  SlvSTADetIEn;	//浠庢満妫€娴嬪埌璧峰�涓�柇浣胯兘
+	uint8_t  SlvSTODetIEn;	//浠庢満妫€娴嬪埌缁堟�涓�柇浣胯兘
+	uint8_t  SlvRdReqIEn;	//浠庢満鎺ユ敹鍒拌�璇锋眰涓�柇浣胯兘
+	uint8_t  SlvWrReqIEn;	//浠庢満鎺ユ敹鍒板啓璇锋眰涓�柇浣胯兘
 } I2C_InitStructure;
 
 

+ 55 - 64
bsp/swm320/libraries/SWM320_StdPeriph_Driver/SWM320_lcd.c

@@ -1,10 +1,10 @@
 /****************************************************************************************************************************************** 
-* ÎļþÃû³Æ: SWM320_lcd.c
-* ¹¦ÄÜ˵Ã÷:	SWM320µ¥Æ¬»úµÄLCD¹¦ÄÜÇý¶¯¿â
-* ¼¼ÊõÖ§³Ö:	http://www.synwit.com.cn/e/tool/gbook/?bid=1
-* ×¢ÒâÊÂÏî: 
-* °æ±¾ÈÕÆÚ:	V1.1.0		2017Äê10ÔÂ25ÈÕ
-* Éý¼¶¼Ç¼:  
+* 文件�称: SWM320_lcd.c
+* 功能说明:	SWM320�片机的LCD功能驱动库
+* 技术支�:	http://www.synwit.com.cn/e/tool/gbook/?bid=1
+* 注�事项: 
+* 版本日期:	V1.1.0		2017年10月25日
+* �级记录:  
 *
 *
 *******************************************************************************************************************************************
@@ -24,12 +24,12 @@
 #include <string.h>
 
 /****************************************************************************************************************************************** 
-* º¯ÊýÃû³Æ:	LCD_Init()
-* ¹¦ÄÜ˵Ã÷:	LCD³õʼ»¯
-* Êä    Èë: LCD_TypeDef * LCDx	Ö¸¶¨Òª±»ÉèÖõÄLCD£¬ÓÐЧֵ°üÀ¨LCD
-*			LCD_InitStructure * initStruct    °üº¬LCDÏà¹ØÉ趨ֵµÄ½á¹¹Ìå
-* Êä    ³ö: ÎÞ
-* ×¢ÒâÊÂÏî: ÎÞ
+* 函数�称:	LCD_Init()
+* 功能说明:	LCD�始化
+* 输    入: LCD_TypeDef * LCDx	指定�被设置的LCD,有效值包括LCD
+*			LCD_InitStructure * initStruct    包�LCD相关设定值的结构体
+* 输    出: 无
+* 注�事项: 无
 ******************************************************************************************************************************************/
 void LCD_Init(LCD_TypeDef * LCDx, LCD_InitStructure * initStruct)
 {	
@@ -39,30 +39,21 @@ void LCD_Init(LCD_TypeDef * LCDx, LCD_InitStructure * initStruct)
 		SYS->CLKEN |= (0x01 << SYS_CLKEN_LCD_Pos);
 		break;
 	}
-		
-	if(initStruct->Interface == LCD_INTERFACE_RGB)
-	{
-		LCDx->START = (0 << LCD_START_MPUEN_Pos);
-		
-		LCDx->CR0 = ((initStruct->HnPixel - 1) << LCD_CR0_HPIX_Pos) |
-					((initStruct->VnPixel - 1) << LCD_CR0_VPIX_Pos) |
-					(initStruct->ClkAlways << LCD_CR0_DCLK_Pos) |
-					(initStruct->HsyncWidth << LCD_CR0_HLOW_Pos);
-		
-		LCDx->CR1 = ((initStruct->Hfp - 1) << LCD_CR1_HFP_Pos)  |
-					((initStruct->Hbp - 1) << LCD_CR1_HBP_Pos)  |
-					((initStruct->Vfp - 1) << LCD_CR1_VFP_Pos)  |
-					((initStruct->Vbp - 1) << LCD_CR1_VBP_Pos)  |
-					(initStruct->ClkDiv << LCD_CR1_DCLKDIV_Pos) |
-					(initStruct->SamplEdge << LCD_CR1_DCLKINV_Pos);
-	}
-	else if(initStruct->Interface == LCD_INTERFACE_I80)
-	{
-		// 
-	}
+	
+	LCDx->CR0 = ((initStruct->HnPixel - 1) << LCD_CR0_HPIX_Pos) |
+				((initStruct->VnPixel - 1) << LCD_CR0_VPIX_Pos) |
+				(initStruct->ClkAlways << LCD_CR0_DCLK_Pos) |
+				(initStruct->HsyncWidth << LCD_CR0_HLOW_Pos);
+	
+	LCDx->CR1 = ((initStruct->Hfp - 1) << LCD_CR1_HFP_Pos)  |
+				((initStruct->Hbp - 1) << LCD_CR1_HBP_Pos)  |
+				((initStruct->Vfp - 1) << LCD_CR1_VFP_Pos)  |
+				((initStruct->Vbp - 1) << LCD_CR1_VBP_Pos)  |
+				(initStruct->ClkDiv << LCD_CR1_DCLKDIV_Pos) |
+				(initStruct->SamplEdge << LCD_CR1_DCLKINV_Pos);
 	
 	LCDx->IE = 1;
-	LCDx->IF = 1;	//Çå³ý±êÖ¾
+	LCDx->IF = 1;	//清除标志
 	if(initStruct->IntEOTEn) LCD_INTEn(LCDx);
 	else					 LCD_INTDis(LCDx);
 	
@@ -82,11 +73,11 @@ void LCD_Init(LCD_TypeDef * LCDx, LCD_InitStructure * initStruct)
 }
 
 /****************************************************************************************************************************************** 
-* º¯ÊýÃû³Æ: LCD_Start()
-* ¹¦ÄÜ˵Ã÷:	Æô¶¯Ò»´ÎÊý¾Ý´«Êä
-* Êä    Èë: LCD_TypeDef * LCDx	Ö¸¶¨Òª±»ÉèÖõÄLCD£¬ÓÐЧֵ°üÀ¨LCD
-* Êä    ³ö: ÎÞ
-* ×¢ÒâÊÂÏî: ÎÞ
+* 函数�称: LCD_Start()
+* 功能说明:	�动一次数�传输
+* 输    入: LCD_TypeDef * LCDx	指定�被设置的LCD,有效值包括LCD
+* 输    出: 无
+* 注�事项: 无
 ******************************************************************************************************************************************/
 void LCD_Start(LCD_TypeDef * LCDx)
 {
@@ -94,11 +85,11 @@ void LCD_Start(LCD_TypeDef * LCDx)
 }
 
 /****************************************************************************************************************************************** 
-* º¯ÊýÃû³Æ: LCD_IsBusy()
-* ¹¦ÄÜ˵Ã÷:	ÊÇ·ñÕýÔÚ½øÐÐÊý¾Ý´«Êä
-* Êä    Èë: LCD_TypeDef * LCDx	Ö¸¶¨Òª±»ÉèÖõÄLCD£¬ÓÐЧֵ°üÀ¨LCD
-* Êä    ³ö: uint32_t			1 ÕýÔÚ´«ÊäÊý¾Ý    0 Êý¾Ý´«ÊäÒÑÍê³É
-* ×¢ÒâÊÂÏî: ÎÞ
+* 函数�称: LCD_IsBusy()
+* 功能说明:	是�正在进行数�传输
+* 输    入: LCD_TypeDef * LCDx	指定�被设置的LCD,有效值包括LCD
+* 输    出: uint32_t			1 正在传输数�    0 数�传输已完�
+* 注�事项: 无
 ******************************************************************************************************************************************/
 uint32_t LCD_IsBusy(LCD_TypeDef * LCDx)
 {
@@ -106,11 +97,11 @@ uint32_t LCD_IsBusy(LCD_TypeDef * LCDx)
 }
 
 /****************************************************************************************************************************************** 
-* º¯ÊýÃû³Æ: LCD_INTEn()
-* ¹¦ÄÜ˵Ã÷:	LCDÖжÏʹÄÜ£¬Íê³ÉÖ¸¶¨³¤¶ÈµÄÊý¾Ý´«Êäʱ´¥·¢ÖжÏ
-* Êä    Èë: LCD_TypeDef * LCDx	Ö¸¶¨Òª±»ÉèÖõÄLCD£¬ÓÐЧֵ°üÀ¨LCD
-* Êä    ³ö: ÎÞ
-* ×¢ÒâÊÂÏî: ÎÞ
+* 函数�称: LCD_INTEn()
+* 功能说明:	LCD中断使能,完�指定长度的数�传输时触�中断
+* 输    入: LCD_TypeDef * LCDx	指定�被设置的LCD,有效值包括LCD
+* 输    出: 无
+* 注�事项: 无
 ******************************************************************************************************************************************/
 void LCD_INTEn(LCD_TypeDef * LCDx)
 {
@@ -118,11 +109,11 @@ void LCD_INTEn(LCD_TypeDef * LCDx)
 }
 
 /****************************************************************************************************************************************** 
-* º¯ÊýÃû³Æ: LCD_INTDis()
-* ¹¦ÄÜ˵Ã÷:	LCDÖжϽûÖ¹£¬Íê³ÉÖ¸¶¨³¤¶ÈµÄÊý¾Ý´«Êäʱ²»´¥·¢ÖжÏ
-* Êä    Èë: LCD_TypeDef * LCDx	Ö¸¶¨Òª±»ÉèÖõÄLCD£¬ÓÐЧֵ°üÀ¨LCD
-* Êä    ³ö: ÎÞ
-* ×¢ÒâÊÂÏî: ÎÞ
+* 函数�称: LCD_INTDis()
+* 功能说明:	LCD中断�止,完�指定长度的数�传输时�触�中断
+* 输    入: LCD_TypeDef * LCDx	指定�被设置的LCD,有效值包括LCD
+* 输    出: 无
+* 注�事项: 无
 ******************************************************************************************************************************************/
 void LCD_INTDis(LCD_TypeDef * LCDx)
 {
@@ -130,11 +121,11 @@ void LCD_INTDis(LCD_TypeDef * LCDx)
 }
 
 /****************************************************************************************************************************************** 
-* º¯ÊýÃû³Æ: LCD_INTClr()
-* ¹¦ÄÜ˵Ã÷:	LCDÖжϱêÖ¾Çå³ý
-* Êä    Èë: LCD_TypeDef * LCDx	Ö¸¶¨Òª±»ÉèÖõÄLCD£¬ÓÐЧֵ°üÀ¨LCD
-* Êä    ³ö: ÎÞ
-* ×¢ÒâÊÂÏî: ÎÞ
+* 函数�称: LCD_INTClr()
+* 功能说明:	LCD中断标志清除
+* 输    入: LCD_TypeDef * LCDx	指定�被设置的LCD,有效值包括LCD
+* 输    出: 无
+* 注�事项: 无
 ******************************************************************************************************************************************/
 void LCD_INTClr(LCD_TypeDef * LCDx)
 {
@@ -142,11 +133,11 @@ void LCD_INTClr(LCD_TypeDef * LCDx)
 }
 
 /****************************************************************************************************************************************** 
-* º¯ÊýÃû³Æ: LCD_INTStat()
-* ¹¦ÄÜ˵Ã÷:	LCDÖжÏ״̬²éѯ
-* Êä    Èë: LCD_TypeDef * LCDx	Ö¸¶¨Òª±»ÉèÖõÄLCD£¬ÓÐЧֵ°üÀ¨LCD
-* Êä    ³ö: uint32_t			1 Íê³ÉÖ¸¶¨³¤¶ÈµÄÊý¾Ý´«Êä    0 δÍê³ÉÖ¸¶¨³¤¶ÈµÄÊý¾Ý´«Êä
-* ×¢ÒâÊÂÏî: ÎÞ
+* 函数�称: LCD_INTStat()
+* 功能说明:	LCD中断状�查询
+* 输    入: LCD_TypeDef * LCDx	指定�被设置的LCD,有效值包括LCD
+* 输    出: uint32_t			1 完�指定长度的数�传输    0 未完�指定长度的数�传输
+* 注�事项: 无
 ******************************************************************************************************************************************/
 uint32_t LCD_INTStat(LCD_TypeDef * LCDx)
 {

+ 1 - 8
bsp/swm320/libraries/SWM320_StdPeriph_Driver/SWM320_lcd.h

@@ -2,10 +2,7 @@
 #define __SWM320_LCD_H__
 
 
-typedef struct {
-	uint8_t  Interface;		//LCD屏接口:LCD_INTERFACE_RGB、LCD_INTERFACE_I80、LCD_INTERFACE_M68
-	
-	/* RGB同步接口参数 */
+typedef struct {	
 	uint16_t HnPixel;		//水平方向像素个数,最大取值1024
 	uint16_t VnPixel;		//垂直方向像素个数,最大取值 768
 	uint8_t  Hfp;			//horizonal front porch,最大取值32
@@ -21,10 +18,6 @@ typedef struct {
 } LCD_InitStructure;
 
 
-#define LCD_INTERFACE_RGB	0
-#define LCD_INTERFACE_I80	1
-#define LCD_INTERFACE_M68	2
-
 #define LCD_SAMPLEDGE_RISE	0	//屏幕在DOTCLK的上升沿采样数据
 #define LCD_SAMPLEDGE_FALL	1	//屏幕在DOTCLK的下降沿采样数据
 

+ 5 - 5
bsp/swm320/libraries/SWM320_StdPeriph_Driver/SWM320_norflash.h

@@ -2,12 +2,12 @@
 #define __SWM320_NORFLASH_H__
 
 typedef struct {
-	uint8_t DataWidth;			// 816
+	uint8_t DataWidth;			// 8銆�16
 	
-	uint8_t WELowPulseTime;		// WE# pulse width,单位为系统时钟周期,最大值为7
-	uint8_t OEPreValidTime;		// Valid data output after OE# low,单位为系统时钟周期,最大值为15
+	uint8_t WELowPulseTime;		// WE# pulse width锛屽崟浣嶄负绯荤粺鏃堕挓鍛ㄦ湡锛屾渶澶у€间负7
+	uint8_t OEPreValidTime;		// Valid data output after OE# low锛屽崟浣嶄负绯荤粺鏃堕挓鍛ㄦ湡锛屾渶澶у€间负15
 	
-	uint8_t OperFinishIEn;		// 操作(写入、擦除)完成中断使能
+	uint8_t OperFinishIEn;		// 鎿嶄綔(鍐欏叆銆佹摝闄�)瀹屾垚涓�柇浣胯兘
 	uint8_t OperTimeoutIEn;
 } NORFL_InitStructure;
 
@@ -21,7 +21,7 @@ uint32_t NORFL_Read(uint32_t addr);
 uint16_t NORFL_ReadID(uint32_t id_addr);
 
 
-/* 当前版本总线读只支持字读
+/* 褰撳墠鐗堟湰鎬荤嚎璇诲彧鏀�寔瀛楄�
 #define NORFL_Read8(addr)			*((volatile uint8_t  *)(NORFLM_BASE + addr))
 #define NORFL_Read16(addr)			*((volatile uint16_t *)(NORFLM_BASE + addr))    */
 #define NORFL_Read32(addr)			*((volatile uint32_t *)(NORFLM_BASE + addr))

+ 15 - 15
bsp/swm320/libraries/SWM320_StdPeriph_Driver/SWM320_port.c

@@ -1,10 +1,10 @@
 /****************************************************************************************************************************************** 
-* 文件名称: SWM320_port.c
-* 功能说明:	SWM320单片机的端口引脚功能选择库函数
-* 技术支持:	http://www.synwit.com.cn/e/tool/gbook/?bid=1
-* 注意事项:
-* 版本日期: V1.1.0		2017年10月25日
-* 升级记录: 
+* 鏂囦欢鍚嶇О: SWM320_port.c
+* 鍔熻兘璇存槑:	SWM320鍗曠墖鏈虹殑绔�彛寮曡剼鍔熻兘閫夋嫨搴撳嚱鏁�
+* 鎶€鏈�敮鎸�:	http://www.synwit.com.cn/e/tool/gbook/?bid=1
+* 娉ㄦ剰浜嬮」:
+* 鐗堟湰鏃ユ湡: V1.1.0		2017骞�10鏈�25鏃�
+* 鍗囩骇璁板綍: 
 *
 *
 *******************************************************************************************************************************************
@@ -23,15 +23,15 @@
 
 
 /****************************************************************************************************************************************** 
-* 函数名称: PORT_Init()
-* 功能说明:	端口引脚功能选择,可用的功能见"SWM320_port.h"文件
-* 输    入: uint32_t PORTx	   		指定PORT端口,有效值包括PORTA、PORTB、PORTC、PORTM、PORTN、PORTP
-*			uint32_t n		   		指定PORT引脚,有效值包括PIN0、PIN1、PIN2、... ... PIN22、PIN23
-*			uint32_t func	   		指定端口引脚要设定的功能,其可取值见"SWM320_port.h"文件
-*			uint32_t digit_in_en   	数字输入使能
-* 输    出: 无
-* 注意事项: 当引脚标号n为偶数时,func取值只能是FUNMUX0开头的,如FUNMUX0_UART0_RXD
-*			当引脚标号n为奇数时,func取值只能是FUNMUX1开头的,如FUNMUX1_UART0_TXD
+* 鍑芥暟鍚嶇О: PORT_Init()
+* 鍔熻兘璇存槑:	绔�彛寮曡剼鍔熻兘閫夋嫨锛屽彲鐢ㄧ殑鍔熻兘瑙�"SWM320_port.h"鏂囦欢
+* 杈�    鍏�: uint32_t PORTx	   		鎸囧畾PORT绔�彛锛屾湁鏁堝€煎寘鎷琍ORTA銆丳ORTB銆丳ORTC銆丳ORTM銆丳ORTN銆丳ORTP
+*			uint32_t n		   		鎸囧畾PORT寮曡剼锛屾湁鏁堝€煎寘鎷琍IN0銆丳IN1銆丳IN2銆�... ... PIN22銆丳IN23
+*			uint32_t func	   		鎸囧畾绔�彛寮曡剼瑕佽�瀹氱殑鍔熻兘锛屽叾鍙�彇鍊艰�"SWM320_port.h"鏂囦欢
+*			uint32_t digit_in_en   	鏁板瓧杈撳叆浣胯兘
+* 杈�    鍑�: 鏃�
+* 娉ㄦ剰浜嬮」: 褰撳紩鑴氭爣鍙穘涓哄伓鏁版椂锛宖unc鍙栧€煎彧鑳芥槸FUNMUX0寮€澶寸殑锛屽�FUNMUX0_UART0_RXD
+*			褰撳紩鑴氭爣鍙穘涓哄�鏁版椂锛宖unc鍙栧€煎彧鑳芥槸FUNMUX1寮€澶寸殑锛屽�FUNMUX1_UART0_TXD
 ******************************************************************************************************************************************/
 void PORT_Init(uint32_t PORTx, uint32_t n, uint32_t func, uint32_t digit_in_en)
 {

+ 4 - 4
bsp/swm320/libraries/SWM320_StdPeriph_Driver/SWM320_port.h

@@ -1,7 +1,7 @@
 #ifndef __SWM320_PORT_H__
 #define __SWM320_PORT_H__
 
-void PORT_Init(uint32_t PORTx, uint32_t n, uint32_t func, uint32_t digit_in_en);	//端口引脚功能选择,其可取值如下:
+void PORT_Init(uint32_t PORTx, uint32_t n, uint32_t func, uint32_t digit_in_en);	//绔�彛寮曡剼鍔熻兘閫夋嫨锛屽叾鍙�彇鍊煎�涓嬶細
 
 #define PORTA	0
 #define PORTB	1
@@ -425,8 +425,8 @@ void PORT_Init(uint32_t PORTx, uint32_t n, uint32_t func, uint32_t digit_in_en);
 
 
 
-/* 下面宏定义的取值全部在正确值的基础上“加100”,以区分上面宏定义的值,从而方便库函数的编写*/
-/* 下面这些值是偶数编号引脚的功能取值,如PIN0、PIN2、... */
+/* 涓嬮潰瀹忓畾涔夌殑鍙栧€煎叏閮ㄥ湪姝g‘鍊肩殑鍩虹�涓娾€滃姞100鈥濓紝浠ュ尯鍒嗕笂闈㈠畯瀹氫箟鐨勫€硷紝浠庤€屾柟渚垮簱鍑芥暟鐨勭紪鍐�*/
+/* 涓嬮潰杩欎簺鍊兼槸鍋舵暟缂栧彿寮曡剼鐨勫姛鑳藉彇鍊硷紝濡侾IN0銆丳IN2銆�... */
 #define FUNMUX0_UART0_RXD	    100
 #define FUNMUX0_UART1_RXD	    101
 #define FUNMUX0_UART2_RXD	    102
@@ -452,7 +452,7 @@ void PORT_Init(uint32_t PORTx, uint32_t n, uint32_t func, uint32_t digit_in_en);
 #define FUNMUX0_UART2_CTS		123
 #define FUNMUX0_UART3_CTS		124
 
-/* 下面这些值是奇数编号引脚的功能取值,如PIN1、PIN3、... */
+/* 涓嬮潰杩欎簺鍊兼槸濂囨暟缂栧彿寮曡剼鐨勫姛鑳藉彇鍊硷紝濡侾IN1銆丳IN3銆�... */
 #define FUNMUX1_UART0_TXD	    100
 #define FUNMUX1_UART1_TXD	    101
 #define FUNMUX1_UART2_TXD	    102

+ 115 - 115
bsp/swm320/libraries/SWM320_StdPeriph_Driver/SWM320_pwm.c

@@ -1,10 +1,10 @@
 /****************************************************************************************************************************************** 
-* 文件名称:	SWM320_pwm.c
-* 功能说明:	SWM320单片机的PWM功能驱动库
-* 技术支持:	http://www.synwit.com.cn/e/tool/gbook/?bid=1
-* 注意事项:
-* 版本日期:	V1.1.0		2017年10月25日
-* 升级记录: 
+* 鏂囦欢鍚嶇О:	SWM320_pwm.c
+* 鍔熻兘璇存槑:	SWM320鍗曠墖鏈虹殑PWM鍔熻兘椹卞姩搴�
+* 鎶€鏈�敮鎸�:	http://www.synwit.com.cn/e/tool/gbook/?bid=1
+* 娉ㄦ剰浜嬮」:
+* 鐗堟湰鏃ユ湡:	V1.1.0		2017骞�10鏈�25鏃�
+* 鍗囩骇璁板綍: 
 *
 *
 *******************************************************************************************************************************************
@@ -23,12 +23,12 @@
 
 
 /****************************************************************************************************************************************** 
-* 函数名称:	PWM_Init()
-* 功能说明:	PWM初始化
-* 输    入: PWM_TypeDef * PWMx		指定要被设置的PWM,有效值包括PWM0、PWM1、PWM2、PWM3、PWM4、PWM5
-*			PWM_InitStructure * initStruct	包含PWM相关设定值的结构体
-* 输    出: 无
-* 注意事项: 无
+* 鍑芥暟鍚嶇О:	PWM_Init()
+* 鍔熻兘璇存槑:	PWM鍒濆�鍖�
+* 杈�    鍏�: PWM_TypeDef * PWMx		鎸囧畾瑕佽�璁剧疆鐨凱WM锛屾湁鏁堝€煎寘鎷琍WM0銆丳WM1銆丳WM2銆丳WM3銆丳WM4銆丳WM5
+*			PWM_InitStructure * initStruct	鍖呭惈PWM鐩稿叧璁惧畾鍊肩殑缁撴瀯浣�
+* 杈�    鍑�: 鏃�
+* 娉ㄦ剰浜嬮」: 鏃�
 ******************************************************************************************************************************************/
 void PWM_Init(PWM_TypeDef * PWMx, PWM_InitStructure * initStruct)
 {
@@ -39,7 +39,7 @@ void PWM_Init(PWM_TypeDef * PWMx, PWM_InitStructure * initStruct)
 	SYS->CLKDIV &= ~SYS_CLKDIV_PWM_Msk;
 	SYS->CLKDIV |= (initStruct->clk_div << SYS_CLKDIV_PWM_Pos);
 	
-	PWM_Stop(PWMx, 1, 1);	//一些关键寄存器只能在PWM停止时设置
+	PWM_Stop(PWMx, 1, 1);	//涓€浜涘叧閿�瘎瀛樺櫒鍙�兘鍦≒WM鍋滄�鏃惰�缃�
 		
 	PWMx->MODE = initStruct->mode;
 	
@@ -84,7 +84,7 @@ void PWM_Init(PWM_TypeDef * PWMx, PWM_InitStructure * initStruct)
 		break;
 	}
 	
-	PWMG->IRS = ((0x01 << bit_offset) | (0x01 << (bit_offset+1))  | (0x01 << (bit_offset+12)) | (0x01 << (bit_offset+13)));	//清除中断标志
+	PWMG->IRS = ((0x01 << bit_offset) | (0x01 << (bit_offset+1))  | (0x01 << (bit_offset+12)) | (0x01 << (bit_offset+13)));	//娓呴櫎涓�柇鏍囧織
 	PWMG->IE &= ~((0x01 << bit_offset) | (0x01 << (bit_offset+1))  | (0x01 << (bit_offset+12)) | (0x01 << (bit_offset+13)));
 	PWMG->IE |= (initStruct->NCycleAIEn << bit_offset) | (initStruct->NCycleBIEn << (bit_offset+1)) |
 				(initStruct->HEndAIEn << (bit_offset+12)) | (initStruct->HEndBIEn << (bit_offset+13));
@@ -100,13 +100,13 @@ void PWM_Init(PWM_TypeDef * PWMx, PWM_InitStructure * initStruct)
 }
 
 /****************************************************************************************************************************************** 
-* 函数名称:	PWM_Start()
-* 功能说明:	启动PWM,开始PWM输出
-* 输    入: PWM_TypeDef * PWMx		指定要被设置的PWM,有效值包括PWM0、PWM1、PWM2、PWM3、PWM4、PWM5
-*			uint32_t chA			0 通道A不启动		1 通道A启动
-*			uint32_t chB			0 通道B不启动		1 通道B启动
-* 输    出: 无
-* 注意事项: 无
+* 鍑芥暟鍚嶇О:	PWM_Start()
+* 鍔熻兘璇存槑:	鍚�姩PWM锛屽紑濮婸WM杈撳嚭
+* 杈�    鍏�: PWM_TypeDef * PWMx		鎸囧畾瑕佽�璁剧疆鐨凱WM锛屾湁鏁堝€煎寘鎷琍WM0銆丳WM1銆丳WM2銆丳WM3銆丳WM4銆丳WM5
+*			uint32_t chA			0 閫氶亾A涓嶅惎鍔�		1 閫氶亾A鍚�姩
+*			uint32_t chB			0 閫氶亾B涓嶅惎鍔�		1 閫氶亾B鍚�姩
+* 杈�    鍑�: 鏃�
+* 娉ㄦ剰浜嬮」: 鏃�
 ******************************************************************************************************************************************/
 void PWM_Start(PWM_TypeDef * PWMx, uint32_t chA, uint32_t chB)
 {
@@ -139,13 +139,13 @@ void PWM_Start(PWM_TypeDef * PWMx, uint32_t chA, uint32_t chB)
 }
 
 /****************************************************************************************************************************************** 
-* 函数名称:	PWM_Stop()
-* 功能说明:	关闭PWM,停止PWM输出
-* 输    入: PWM_TypeDef * PWMx		指定要被设置的PWM,有效值包括PWM0、PWM1、PWM2、PWM3、PWM4、PWM5
-*			uint32_t chA			0 通道A不关闭		1 通道A关闭
-*			uint32_t chB			0 通道B不关闭		1 通道B关闭
-* 输    出: 无
-* 注意事项: 无
+* 鍑芥暟鍚嶇О:	PWM_Stop()
+* 鍔熻兘璇存槑:	鍏抽棴PWM锛屽仠姝�WM杈撳嚭
+* 杈�    鍏�: PWM_TypeDef * PWMx		鎸囧畾瑕佽�璁剧疆鐨凱WM锛屾湁鏁堝€煎寘鎷琍WM0銆丳WM1銆丳WM2銆丳WM3銆丳WM4銆丳WM5
+*			uint32_t chA			0 閫氶亾A涓嶅叧闂�		1 閫氶亾A鍏抽棴
+*			uint32_t chB			0 閫氶亾B涓嶅叧闂�		1 閫氶亾B鍏抽棴
+* 杈�    鍑�: 鏃�
+* 娉ㄦ剰浜嬮」: 鏃�
 ******************************************************************************************************************************************/
 void PWM_Stop(PWM_TypeDef * PWMx, uint32_t chA, uint32_t chB)
 {
@@ -178,13 +178,13 @@ void PWM_Stop(PWM_TypeDef * PWMx, uint32_t chA, uint32_t chB)
 }
 
 /****************************************************************************************************************************************** 
-* 函数名称:	PWM_SetCycle()
-* 功能说明:	设置周期
-* 输    入: PWM_TypeDef * PWMx		指定要被设置的PWM,有效值包括PWM0、PWM1、PWM2、PWM3、PWM4、PWM5
-*			uint32_t chn			选择要设置哪个通道,有效值:PWM_CH_A、PWM_CH_B
-*			uint16_t cycle			要设定的周期值
-* 输    出: 无
-* 注意事项: 无
+* 鍑芥暟鍚嶇О:	PWM_SetCycle()
+* 鍔熻兘璇存槑:	璁剧疆鍛ㄦ湡
+* 杈�    鍏�: PWM_TypeDef * PWMx		鎸囧畾瑕佽�璁剧疆鐨凱WM锛屾湁鏁堝€煎寘鎷琍WM0銆丳WM1銆丳WM2銆丳WM3銆丳WM4銆丳WM5
+*			uint32_t chn			閫夋嫨瑕佽�缃�摢涓�€氶亾锛屾湁鏁堝€硷細PWM_CH_A銆丳WM_CH_B
+*			uint16_t cycle			瑕佽�瀹氱殑鍛ㄦ湡鍊�
+* 杈�    鍑�: 鏃�
+* 娉ㄦ剰浜嬮」: 鏃�
 ******************************************************************************************************************************************/
 void PWM_SetCycle(PWM_TypeDef * PWMx, uint32_t chn, uint16_t cycle)
 {
@@ -195,12 +195,12 @@ void PWM_SetCycle(PWM_TypeDef * PWMx, uint32_t chn, uint16_t cycle)
 }
 
 /****************************************************************************************************************************************** 
-* 函数名称:	PWM_GetCycle()
-* 功能说明:	获取周期
-* 输    入: PWM_TypeDef * PWMx		指定要被设置的PWM,有效值包括PWM0、PWM1、PWM2、PWM3、PWM4、PWM5
-*			uint32_t chn			选择要查询哪个通道,有效值:PWM_CH_A、PWM_CH_B
-* 输    出: uint16_t				获取到的周期值
-* 注意事项: 无
+* 鍑芥暟鍚嶇О:	PWM_GetCycle()
+* 鍔熻兘璇存槑:	鑾峰彇鍛ㄦ湡
+* 杈�    鍏�: PWM_TypeDef * PWMx		鎸囧畾瑕佽�璁剧疆鐨凱WM锛屾湁鏁堝€煎寘鎷琍WM0銆丳WM1銆丳WM2銆丳WM3銆丳WM4銆丳WM5
+*			uint32_t chn			閫夋嫨瑕佹煡璇㈠摢涓�€氶亾锛屾湁鏁堝€硷細PWM_CH_A銆丳WM_CH_B
+* 杈�    鍑�: uint16_t				鑾峰彇鍒扮殑鍛ㄦ湡鍊�
+* 娉ㄦ剰浜嬮」: 鏃�
 ******************************************************************************************************************************************/
 uint16_t PWM_GetCycle(PWM_TypeDef * PWMx, uint32_t chn)
 {
@@ -215,13 +215,13 @@ uint16_t PWM_GetCycle(PWM_TypeDef * PWMx, uint32_t chn)
 }
 
 /****************************************************************************************************************************************** 
-* 函数名称:	PWM_SetHDuty()
-* 功能说明:	设置高电平时长
-* 输    入: PWM_TypeDef * PWMx		指定要被设置的PWM,有效值包括PWM0、PWM1、PWM2、PWM3、PWM4、PWM5
-*			uint32_t chn			选择要设置哪个通道,有效值:PWM_CH_A、PWM_CH_B
-*			uint16_t hduty			要设定的高电平时长
-* 输    出: 无
-* 注意事项: 无
+* 鍑芥暟鍚嶇О:	PWM_SetHDuty()
+* 鍔熻兘璇存槑:	璁剧疆楂樼數骞虫椂闀�
+* 杈�    鍏�: PWM_TypeDef * PWMx		鎸囧畾瑕佽�璁剧疆鐨凱WM锛屾湁鏁堝€煎寘鎷琍WM0銆丳WM1銆丳WM2銆丳WM3銆丳WM4銆丳WM5
+*			uint32_t chn			閫夋嫨瑕佽�缃�摢涓�€氶亾锛屾湁鏁堝€硷細PWM_CH_A銆丳WM_CH_B
+*			uint16_t hduty			瑕佽�瀹氱殑楂樼數骞虫椂闀�
+* 杈�    鍑�: 鏃�
+* 娉ㄦ剰浜嬮」: 鏃�
 ******************************************************************************************************************************************/
 void PWM_SetHDuty(PWM_TypeDef * PWMx, uint32_t chn, uint16_t hduty)
 {
@@ -232,12 +232,12 @@ void PWM_SetHDuty(PWM_TypeDef * PWMx, uint32_t chn, uint16_t hduty)
 }
 
 /****************************************************************************************************************************************** 
-* 函数名称:	PWM_GetHDuty()
-* 功能说明: 获取高电平时长
-* 输    入: PWM_TypeDef * PWMx		指定要被设置的PWM,有效值包括PWM0、PWM1、PWM2、PWM3、PWM4、PWM5
-*			uint32_t chn			选择要查询哪个通道,有效值:PWM_CH_A、PWM_CH_B
-* 输    出: uint16_t				获取到的高电平时长
-* 注意事项: 无
+* 鍑芥暟鍚嶇О:	PWM_GetHDuty()
+* 鍔熻兘璇存槑: 鑾峰彇楂樼數骞虫椂闀�
+* 杈�    鍏�: PWM_TypeDef * PWMx		鎸囧畾瑕佽�璁剧疆鐨凱WM锛屾湁鏁堝€煎寘鎷琍WM0銆丳WM1銆丳WM2銆丳WM3銆丳WM4銆丳WM5
+*			uint32_t chn			閫夋嫨瑕佹煡璇㈠摢涓�€氶亾锛屾湁鏁堝€硷細PWM_CH_A銆丳WM_CH_B
+* 杈�    鍑�: uint16_t				鑾峰彇鍒扮殑楂樼數骞虫椂闀�
+* 娉ㄦ剰浜嬮」: 鏃�
 ******************************************************************************************************************************************/
 uint16_t PWM_GetHDuty(PWM_TypeDef * PWMx, uint32_t chn)
 {
@@ -252,13 +252,13 @@ uint16_t PWM_GetHDuty(PWM_TypeDef * PWMx, uint32_t chn)
 }
 
 /****************************************************************************************************************************************** 
-* 函数名称:	PWM_SetDeadzone()
-* 功能说明:	设置死区时长
-* 输    入: PWM_TypeDef * PWMx		指定要被设置的PWM,有效值包括PWM0、PWM1、PWM2、PWM3、PWM4、PWM5
-*			uint32_t chn			选择要设置哪个通道,有效值:PWM_CH_A、PWM_CH_B
-*			uint8_t deadzone		要设定的死区时长
-* 输    出: 无
-* 注意事项: 无
+* 鍑芥暟鍚嶇О:	PWM_SetDeadzone()
+* 鍔熻兘璇存槑:	璁剧疆姝诲尯鏃堕暱
+* 杈�    鍏�: PWM_TypeDef * PWMx		鎸囧畾瑕佽�璁剧疆鐨凱WM锛屾湁鏁堝€煎寘鎷琍WM0銆丳WM1銆丳WM2銆丳WM3銆丳WM4銆丳WM5
+*			uint32_t chn			閫夋嫨瑕佽�缃�摢涓�€氶亾锛屾湁鏁堝€硷細PWM_CH_A銆丳WM_CH_B
+*			uint8_t deadzone		瑕佽�瀹氱殑姝诲尯鏃堕暱
+* 杈�    鍑�: 鏃�
+* 娉ㄦ剰浜嬮」: 鏃�
 ******************************************************************************************************************************************/
 void PWM_SetDeadzone(PWM_TypeDef * PWMx, uint32_t chn, uint8_t deadzone)
 {
@@ -269,12 +269,12 @@ void PWM_SetDeadzone(PWM_TypeDef * PWMx, uint32_t chn, uint8_t deadzone)
 }
 
 /****************************************************************************************************************************************** 
-* 函数名称:	PWM_GetDeadzone()
-* 功能说明: 获取死区时长
-* 输    入: PWM_TypeDef * PWMx		指定要被设置的PWM,有效值包括PWM0、PWM1、PWM2、PWM3、PWM4、PWM5
-*			uint32_t chn			选择要查询哪个通道,有效值:PWM_CH_A、PWM_CH_B
-* 输    出: uint8_t					获取到的死区时长
-* 注意事项: 无
+* 鍑芥暟鍚嶇О:	PWM_GetDeadzone()
+* 鍔熻兘璇存槑: 鑾峰彇姝诲尯鏃堕暱
+* 杈�    鍏�: PWM_TypeDef * PWMx		鎸囧畾瑕佽�璁剧疆鐨凱WM锛屾湁鏁堝€煎寘鎷琍WM0銆丳WM1銆丳WM2銆丳WM3銆丳WM4銆丳WM5
+*			uint32_t chn			閫夋嫨瑕佹煡璇㈠摢涓�€氶亾锛屾湁鏁堝€硷細PWM_CH_A銆丳WM_CH_B
+* 杈�    鍑�: uint8_t					鑾峰彇鍒扮殑姝诲尯鏃堕暱
+* 娉ㄦ剰浜嬮」: 鏃�
 ******************************************************************************************************************************************/
 uint8_t  PWM_GetDeadzone(PWM_TypeDef * PWMx, uint32_t chn)
 {
@@ -290,12 +290,12 @@ uint8_t  PWM_GetDeadzone(PWM_TypeDef * PWMx, uint32_t chn)
 
 
 /****************************************************************************************************************************************** 
-* 函数名称:	PWM_IntNCycleEn()
-* 功能说明: 新周期开始中断使能
-* 输    入: PWM_TypeDef * PWMx		指定要被设置的PWM,有效值包括PWM0、PWM1、PWM2、PWM3、PWM4、PWM5
-*			uint32_t chn			选择要设置哪个通道,有效值:PWM_CH_A、PWM_CH_B
-* 输    出: 无
-* 注意事项: 无
+* 鍑芥暟鍚嶇О:	PWM_IntNCycleEn()
+* 鍔熻兘璇存槑: 鏂板懆鏈熷紑濮嬩腑鏂�娇鑳�
+* 杈�    鍏�: PWM_TypeDef * PWMx		鎸囧畾瑕佽�璁剧疆鐨凱WM锛屾湁鏁堝€煎寘鎷琍WM0銆丳WM1銆丳WM2銆丳WM3銆丳WM4銆丳WM5
+*			uint32_t chn			閫夋嫨瑕佽�缃�摢涓�€氶亾锛屾湁鏁堝€硷細PWM_CH_A銆丳WM_CH_B
+* 杈�    鍑�: 鏃�
+* 娉ㄦ剰浜嬮」: 鏃�
 ******************************************************************************************************************************************/
 void PWM_IntNCycleEn(PWM_TypeDef * PWMx, uint32_t chn)
 {
@@ -334,12 +334,12 @@ void PWM_IntNCycleEn(PWM_TypeDef * PWMx, uint32_t chn)
 }
 
 /****************************************************************************************************************************************** 
-* 函数名称:	PWM_IntNCycleDis()
-* 功能说明: 新周期开始中断禁能
-* 输    入: PWM_TypeDef * PWMx		指定要被设置的PWM,有效值包括PWM0、PWM1、PWM2、PWM3、PWM4、PWM5
-*			uint32_t chn			选择要设置哪个通道,有效值:PWM_CH_A、PWM_CH_B
-* 输    出: 无
-* 注意事项: 无
+* 鍑芥暟鍚嶇О:	PWM_IntNCycleDis()
+* 鍔熻兘璇存槑: 鏂板懆鏈熷紑濮嬩腑鏂��鑳�
+* 杈�    鍏�: PWM_TypeDef * PWMx		鎸囧畾瑕佽�璁剧疆鐨凱WM锛屾湁鏁堝€煎寘鎷琍WM0銆丳WM1銆丳WM2銆丳WM3銆丳WM4銆丳WM5
+*			uint32_t chn			閫夋嫨瑕佽�缃�摢涓�€氶亾锛屾湁鏁堝€硷細PWM_CH_A銆丳WM_CH_B
+* 杈�    鍑�: 鏃�
+* 娉ㄦ剰浜嬮」: 鏃�
 ******************************************************************************************************************************************/
 void PWM_IntNCycleDis(PWM_TypeDef * PWMx, uint32_t chn)
 {
@@ -378,12 +378,12 @@ void PWM_IntNCycleDis(PWM_TypeDef * PWMx, uint32_t chn)
 }
 
 /****************************************************************************************************************************************** 
-* 函数名称:	PWM_IntNCycleClr()
-* 功能说明: 新周期开始中断标志清除
-* 输    入: PWM_TypeDef * PWMx		指定要被设置的PWM,有效值包括PWM0、PWM1、PWM2、PWM3、PWM4、PWM5
-*			uint32_t chn			选择要设置哪个通道,有效值:PWM_CH_A、PWM_CH_B
-* 输    出: 无
-* 注意事项: 无
+* 鍑芥暟鍚嶇О:	PWM_IntNCycleClr()
+* 鍔熻兘璇存槑: 鏂板懆鏈熷紑濮嬩腑鏂�爣蹇楁竻闄�
+* 杈�    鍏�: PWM_TypeDef * PWMx		鎸囧畾瑕佽�璁剧疆鐨凱WM锛屾湁鏁堝€煎寘鎷琍WM0銆丳WM1銆丳WM2銆丳WM3銆丳WM4銆丳WM5
+*			uint32_t chn			閫夋嫨瑕佽�缃�摢涓�€氶亾锛屾湁鏁堝€硷細PWM_CH_A銆丳WM_CH_B
+* 杈�    鍑�: 鏃�
+* 娉ㄦ剰浜嬮」: 鏃�
 ******************************************************************************************************************************************/
 void PWM_IntNCycleClr(PWM_TypeDef * PWMx, uint32_t chn)
 {
@@ -422,12 +422,12 @@ void PWM_IntNCycleClr(PWM_TypeDef * PWMx, uint32_t chn)
 }
 
 /****************************************************************************************************************************************** 
-* 函数名称:	PWM_IntNCycleStat()
-* 功能说明: 新周期开始中断是否发生
-* 输    入: PWM_TypeDef * PWMx		指定要被设置的PWM,有效值包括PWM0、PWM1、PWM2、PWM3、PWM4、PWM5
-*			uint32_t chn			选择要设置哪个通道,有效值:PWM_CH_A、PWM_CH_B
-* 输    出: uint32_t				1 新周期开始中断已发生    0 新周期开始中断未发生
-* 注意事项: 无
+* 鍑芥暟鍚嶇О:	PWM_IntNCycleStat()
+* 鍔熻兘璇存槑: 鏂板懆鏈熷紑濮嬩腑鏂�槸鍚﹀彂鐢�
+* 杈�    鍏�: PWM_TypeDef * PWMx		鎸囧畾瑕佽�璁剧疆鐨凱WM锛屾湁鏁堝€煎寘鎷琍WM0銆丳WM1銆丳WM2銆丳WM3銆丳WM4銆丳WM5
+*			uint32_t chn			閫夋嫨瑕佽�缃�摢涓�€氶亾锛屾湁鏁堝€硷細PWM_CH_A銆丳WM_CH_B
+* 杈�    鍑�: uint32_t				1 鏂板懆鏈熷紑濮嬩腑鏂�凡鍙戠敓    0 鏂板懆鏈熷紑濮嬩腑鏂�湭鍙戠敓
+* 娉ㄦ剰浜嬮」: 鏃�
 ******************************************************************************************************************************************/
 uint32_t PWM_IntNCycleStat(PWM_TypeDef * PWMx, uint32_t chn)
 {
@@ -471,12 +471,12 @@ uint32_t PWM_IntNCycleStat(PWM_TypeDef * PWMx, uint32_t chn)
 
 
 /****************************************************************************************************************************************** 
-* 函数名称:	PWM_IntHEndEn()
-* 功能说明: 高电平结束中断使能
-* 输    入: PWM_TypeDef * PWMx		指定要被设置的PWM,有效值包括PWM0、PWM1、PWM2、PWM3、PWM4、PWM5
-*			uint32_t chn			选择要设置哪个通道,有效值:PWM_CH_A、PWM_CH_B
-* 输    出: 无
-* 注意事项: 无
+* 鍑芥暟鍚嶇О:	PWM_IntHEndEn()
+* 鍔熻兘璇存槑: 楂樼數骞崇粨鏉熶腑鏂�娇鑳�
+* 杈�    鍏�: PWM_TypeDef * PWMx		鎸囧畾瑕佽�璁剧疆鐨凱WM锛屾湁鏁堝€煎寘鎷琍WM0銆丳WM1銆丳WM2銆丳WM3銆丳WM4銆丳WM5
+*			uint32_t chn			閫夋嫨瑕佽�缃�摢涓�€氶亾锛屾湁鏁堝€硷細PWM_CH_A銆丳WM_CH_B
+* 杈�    鍑�: 鏃�
+* 娉ㄦ剰浜嬮」: 鏃�
 ******************************************************************************************************************************************/
 void PWM_IntHEndEn(PWM_TypeDef * PWMx, uint32_t chn)
 {
@@ -515,12 +515,12 @@ void PWM_IntHEndEn(PWM_TypeDef * PWMx, uint32_t chn)
 }
 
 /****************************************************************************************************************************************** 
-* 函数名称:	PWM_IntHEndDis()
-* 功能说明: 高电平结束中断禁能
-* 输    入: PWM_TypeDef * PWMx		指定要被设置的PWM,有效值包括PWM0、PWM1、PWM2、PWM3、PWM4、PWM5
-*			uint32_t chn			选择要设置哪个通道,有效值:PWM_CH_A、PWM_CH_B
-* 输    出: 无
-* 注意事项: 无
+* 鍑芥暟鍚嶇О:	PWM_IntHEndDis()
+* 鍔熻兘璇存槑: 楂樼數骞崇粨鏉熶腑鏂��鑳�
+* 杈�    鍏�: PWM_TypeDef * PWMx		鎸囧畾瑕佽�璁剧疆鐨凱WM锛屾湁鏁堝€煎寘鎷琍WM0銆丳WM1銆丳WM2銆丳WM3銆丳WM4銆丳WM5
+*			uint32_t chn			閫夋嫨瑕佽�缃�摢涓�€氶亾锛屾湁鏁堝€硷細PWM_CH_A銆丳WM_CH_B
+* 杈�    鍑�: 鏃�
+* 娉ㄦ剰浜嬮」: 鏃�
 ******************************************************************************************************************************************/
 void PWM_IntHEndDis(PWM_TypeDef * PWMx, uint32_t chn)
 {
@@ -559,12 +559,12 @@ void PWM_IntHEndDis(PWM_TypeDef * PWMx, uint32_t chn)
 }
 
 /****************************************************************************************************************************************** 
-* 函数名称:	PWM_IntHEndClr()
-* 功能说明: 高电平结束中断标志清除
-* 输    入: PWM_TypeDef * PWMx		指定要被设置的PWM,有效值包括PWM0、PWM1、PWM2、PWM3、PWM4、PWM5
-*			uint32_t chn			选择要设置哪个通道,有效值:PWM_CH_A、PWM_CH_B
-* 输    出: 无
-* 注意事项: 无
+* 鍑芥暟鍚嶇О:	PWM_IntHEndClr()
+* 鍔熻兘璇存槑: 楂樼數骞崇粨鏉熶腑鏂�爣蹇楁竻闄�
+* 杈�    鍏�: PWM_TypeDef * PWMx		鎸囧畾瑕佽�璁剧疆鐨凱WM锛屾湁鏁堝€煎寘鎷琍WM0銆丳WM1銆丳WM2銆丳WM3銆丳WM4銆丳WM5
+*			uint32_t chn			閫夋嫨瑕佽�缃�摢涓�€氶亾锛屾湁鏁堝€硷細PWM_CH_A銆丳WM_CH_B
+* 杈�    鍑�: 鏃�
+* 娉ㄦ剰浜嬮」: 鏃�
 ******************************************************************************************************************************************/
 void PWM_IntHEndClr(PWM_TypeDef * PWMx, uint32_t chn)
 {
@@ -603,12 +603,12 @@ void PWM_IntHEndClr(PWM_TypeDef * PWMx, uint32_t chn)
 }
 
 /****************************************************************************************************************************************** 
-* 函数名称:	PWM_IntHEndStat()
-* 功能说明: 高电平结束中断是否发生
-* 输    入: PWM_TypeDef * PWMx		指定要被设置的PWM,有效值包括PWM0、PWM1、PWM2、PWM3、PWM4、PWM5
-*			uint32_t chn			选择要设置哪个通道,有效值:PWM_CH_A、PWM_CH_B
-* 输    出: uint32_t				1 高电平结束中断已发生    0 高电平结束中断未发生
-* 注意事项: 无
+* 鍑芥暟鍚嶇О:	PWM_IntHEndStat()
+* 鍔熻兘璇存槑: 楂樼數骞崇粨鏉熶腑鏂�槸鍚﹀彂鐢�
+* 杈�    鍏�: PWM_TypeDef * PWMx		鎸囧畾瑕佽�璁剧疆鐨凱WM锛屾湁鏁堝€煎寘鎷琍WM0銆丳WM1銆丳WM2銆丳WM3銆丳WM4銆丳WM5
+*			uint32_t chn			閫夋嫨瑕佽�缃�摢涓�€氶亾锛屾湁鏁堝€硷細PWM_CH_A銆丳WM_CH_B
+* 杈�    鍑�: uint32_t				1 楂樼數骞崇粨鏉熶腑鏂�凡鍙戠敓    0 楂樼數骞崇粨鏉熶腑鏂�湭鍙戠敓
+* 娉ㄦ剰浜嬮」: 鏃�
 ******************************************************************************************************************************************/
 uint32_t PWM_IntHEndStat(PWM_TypeDef * PWMx, uint32_t chn)
 {

+ 37 - 37
bsp/swm320/libraries/SWM320_StdPeriph_Driver/SWM320_pwm.h

@@ -2,57 +2,57 @@
 #define	__SWM320_PWM_H__
 
 typedef struct {
-	uint8_t  clk_div;		//PWM_CLKDIV_1、PWM_CLKDIV_8
+	uint8_t  clk_div;		//PWM_CLKDIV_1銆丳WM_CLKDIV_8
 	
-	uint8_t  mode;			//PWM_MODE_INDEP、PWM_MODE_COMPL、PWM_MODE_INDEP_CALIGN、PWM_MODE_COMPL_CALIGN
+	uint8_t  mode;			//PWM_MODE_INDEP銆丳WM_MODE_COMPL銆丳WM_MODE_INDEP_CALIGN銆丳WM_MODE_COMPL_CALIGN
 	
-	uint16_t cycleA;		//A路周期
-	uint16_t hdutyA;		//A路占空比
-	uint16_t deadzoneA;		//A路死区时长,取值0--1023
-	uint8_t  initLevelA;	//A路初始输出电平,0 低电平    1 高电平
+	uint16_t cycleA;		//A璺�懆鏈�
+	uint16_t hdutyA;		//A璺�崰绌烘瘮
+	uint16_t deadzoneA;		//A璺��鍖烘椂闀匡紝鍙栧€�0--1023
+	uint8_t  initLevelA;	//A璺�垵濮嬭緭鍑虹數骞筹紝0 浣庣數骞�    1 楂樼數骞�
 	
-	uint16_t cycleB;		//B路周期
-	uint16_t hdutyB;		//B路占空比
-	uint16_t deadzoneB;		//B路死区时长,取值0--1023
-	uint8_t  initLevelB;	//B路初始输出电平,0 低电平    1 高电平
+	uint16_t cycleB;		//B璺�懆鏈�
+	uint16_t hdutyB;		//B璺�崰绌烘瘮
+	uint16_t deadzoneB;		//B璺��鍖烘椂闀匡紝鍙栧€�0--1023
+	uint8_t  initLevelB;	//B璺�垵濮嬭緭鍑虹數骞筹紝0 浣庣數骞�    1 楂樼數骞�
 	
-	uint8_t  HEndAIEn;		//A路高电平结束中断使能
-	uint8_t  NCycleAIEn;	//A路新周期开始中断使能
-	uint8_t  HEndBIEn;		//B路高电平结束中断使能
-	uint8_t  NCycleBIEn;	//B路新周期开始中断使能
+	uint8_t  HEndAIEn;		//A璺�珮鐢靛钩缁撴潫涓�柇浣胯兘
+	uint8_t  NCycleAIEn;	//A璺�柊鍛ㄦ湡寮€濮嬩腑鏂�娇鑳�
+	uint8_t  HEndBIEn;		//B璺�珮鐢靛钩缁撴潫涓�柇浣胯兘
+	uint8_t  NCycleBIEn;	//B璺�柊鍛ㄦ湡寮€濮嬩腑鏂�娇鑳�
 } PWM_InitStructure;
 
 #define PWM_CLKDIV_1	0
 #define PWM_CLKDIV_8	1
 
-#define PWM_MODE_INDEP			0		//A路和B路为两路独立输出
-#define PWM_MODE_COMPL			1		//A路和B路为一路互补输出
-#define PWM_MODE_INDEP_CALIGN	3		//A路和B路为两路独立输出,中心对齐
-#define PWM_MODE_COMPL_CALIGN	4		//A路和B路为一路互补输出,中心对齐
+#define PWM_MODE_INDEP			0		//A璺�拰B璺�负涓よ矾鐙�珛杈撳嚭
+#define PWM_MODE_COMPL			1		//A璺�拰B璺�负涓€璺�簰琛ヨ緭鍑�
+#define PWM_MODE_INDEP_CALIGN	3		//A璺�拰B璺�负涓よ矾鐙�珛杈撳嚭锛屼腑蹇冨�榻�
+#define PWM_MODE_COMPL_CALIGN	4		//A璺�拰B璺�负涓€璺�簰琛ヨ緭鍑猴紝涓�績瀵归綈
 
 #define PWM_CH_A	0
 #define PWM_CH_B	1
 
 
-void PWM_Init(PWM_TypeDef * PWMx, PWM_InitStructure * initStruct);			//PWM初始化
-void PWM_Start(PWM_TypeDef * PWMx, uint32_t chA, uint32_t chB);				//启动PWM,开始PWM输出
-void PWM_Stop(PWM_TypeDef * PWMx, uint32_t chA, uint32_t chB);				//关闭PWM,停止PWM输出
-
-void PWM_SetCycle(PWM_TypeDef * PWMx, uint32_t chn, uint16_t cycle);		//设置周期
-uint16_t PWM_GetCycle(PWM_TypeDef * PWMx, uint32_t chn);	   				//获取周期
-void PWM_SetHDuty(PWM_TypeDef * PWMx, uint32_t chn, uint16_t hduty);		//设置高电平时长
-uint16_t PWM_GetHDuty(PWM_TypeDef * PWMx, uint32_t chn);					//获取高电平时长
-void PWM_SetDeadzone(PWM_TypeDef * PWMx, uint32_t chn, uint8_t deadzone);	//设置死区时长
-uint8_t  PWM_GetDeadzone(PWM_TypeDef * PWMx, uint32_t chn);		 			//获取死区时长
-
-void PWM_IntNCycleEn(PWM_TypeDef * PWMx, uint32_t chn);   					//新周期开始中断使能
-void PWM_IntNCycleDis(PWM_TypeDef * PWMx, uint32_t chn);  					//新周期开始中断禁能
-void PWM_IntNCycleClr(PWM_TypeDef * PWMx, uint32_t chn);  					//新周期开始中断标志清除
-uint32_t PWM_IntNCycleStat(PWM_TypeDef * PWMx, uint32_t chn); 				//新周期开始中断是否发生
-void PWM_IntHEndEn(PWM_TypeDef * PWMx, uint32_t chn); 						//高电平结束中断使能
-void PWM_IntHEndDis(PWM_TypeDef * PWMx, uint32_t chn);						//高电平结束中断禁能
-void PWM_IntHEndClr(PWM_TypeDef * PWMx, uint32_t chn);	 					//高电平结束中断标志清除
-uint32_t PWM_IntHEndStat(PWM_TypeDef * PWMx, uint32_t chn);					//高电平结束中断是否发生
+void PWM_Init(PWM_TypeDef * PWMx, PWM_InitStructure * initStruct);			//PWM鍒濆�鍖�
+void PWM_Start(PWM_TypeDef * PWMx, uint32_t chA, uint32_t chB);				//鍚�姩PWM锛屽紑濮婸WM杈撳嚭
+void PWM_Stop(PWM_TypeDef * PWMx, uint32_t chA, uint32_t chB);				//鍏抽棴PWM锛屽仠姝�WM杈撳嚭
+
+void PWM_SetCycle(PWM_TypeDef * PWMx, uint32_t chn, uint16_t cycle);		//璁剧疆鍛ㄦ湡
+uint16_t PWM_GetCycle(PWM_TypeDef * PWMx, uint32_t chn);	   				//鑾峰彇鍛ㄦ湡
+void PWM_SetHDuty(PWM_TypeDef * PWMx, uint32_t chn, uint16_t hduty);		//璁剧疆楂樼數骞虫椂闀�
+uint16_t PWM_GetHDuty(PWM_TypeDef * PWMx, uint32_t chn);					//鑾峰彇楂樼數骞虫椂闀�
+void PWM_SetDeadzone(PWM_TypeDef * PWMx, uint32_t chn, uint8_t deadzone);	//璁剧疆姝诲尯鏃堕暱
+uint8_t  PWM_GetDeadzone(PWM_TypeDef * PWMx, uint32_t chn);		 			//鑾峰彇姝诲尯鏃堕暱
+
+void PWM_IntNCycleEn(PWM_TypeDef * PWMx, uint32_t chn);   					//鏂板懆鏈熷紑濮嬩腑鏂�娇鑳�
+void PWM_IntNCycleDis(PWM_TypeDef * PWMx, uint32_t chn);  					//鏂板懆鏈熷紑濮嬩腑鏂��鑳�
+void PWM_IntNCycleClr(PWM_TypeDef * PWMx, uint32_t chn);  					//鏂板懆鏈熷紑濮嬩腑鏂�爣蹇楁竻闄�
+uint32_t PWM_IntNCycleStat(PWM_TypeDef * PWMx, uint32_t chn); 				//鏂板懆鏈熷紑濮嬩腑鏂�槸鍚﹀彂鐢�
+void PWM_IntHEndEn(PWM_TypeDef * PWMx, uint32_t chn); 						//楂樼數骞崇粨鏉熶腑鏂�娇鑳�
+void PWM_IntHEndDis(PWM_TypeDef * PWMx, uint32_t chn);						//楂樼數骞崇粨鏉熶腑鏂��鑳�
+void PWM_IntHEndClr(PWM_TypeDef * PWMx, uint32_t chn);	 					//楂樼數骞崇粨鏉熶腑鏂�爣蹇楁竻闄�
+uint32_t PWM_IntHEndStat(PWM_TypeDef * PWMx, uint32_t chn);					//楂樼數骞崇粨鏉熶腑鏂�槸鍚﹀彂鐢�
 
 
 #endif //__SWM320_PWM_H__

+ 142 - 142
bsp/swm320/libraries/SWM320_StdPeriph_Driver/SWM320_rtc.c

@@ -1,10 +1,10 @@
 /****************************************************************************************************************************************** 
-* ÎļþÃû³Æ: SWM320_rtc.c
-* ¹¦ÄÜ˵Ã÷:	SWM320µ¥Æ¬»úµÄRTCÇý¶¯¿â
-* ¼¼ÊõÖ§³Ö:	http://www.synwit.com.cn/e/tool/gbook/?bid=1
-* ×¢ÒâÊÂÏî: 
-* °æ±¾ÈÕÆÚ:	V1.1.0		2017Äê10ÔÂ25ÈÕ
-* Éý¼¶¼Ç¼:  
+* 文件�称: SWM320_rtc.c
+* 功能说明:	SWM320�片机的RTC驱动库
+* 技术支�:	http://www.synwit.com.cn/e/tool/gbook/?bid=1
+* 注�事项: 
+* 版本日期:	V1.1.0		2017年10月25日
+* �级记录:  
 *
 *
 *******************************************************************************************************************************************
@@ -24,18 +24,18 @@
 
 static uint32_t calcWeekDay(uint32_t year, uint32_t month, uint32_t date);
 /****************************************************************************************************************************************** 
-* º¯ÊýÃû³Æ:	RTC_Init()
-* ¹¦ÄÜ˵Ã÷:	RTC³õʼ»¯
-* Êä    Èë: RTC_TypeDef * RTCx	Ö¸¶¨Òª±»ÉèÖõÄRTC£¬ÓÐЧֵ°üÀ¨RTC
-*			RTC_InitStructure * initStruct    °üº¬RTCÏà¹ØÉ趨ֵµÄ½á¹¹Ìå
-* Êä    ³ö: ÎÞ
-* ×¢ÒâÊÂÏî: ÎÞ
+* 函数�称:	RTC_Init()
+* 功能说明:	RTC�始化
+* 输    入: RTC_TypeDef * RTCx	指定�被设置的RTC,有效值包括RTC
+*			RTC_InitStructure * initStruct    包�RTC相关设定值的结构体
+* 输    出: 无
+* 注�事项: 无
 ******************************************************************************************************************************************/
 void RTC_Init(RTC_TypeDef * RTCx, RTC_InitStructure * initStruct)
 {	
 	SYS->CLKEN |= (1 << SYS_CLKEN_RTCBKP_Pos);
 	
-	SYS->LRCCR &= ~(1 << SYS_LRCCR_OFF_Pos);	//RTCʹÓÃ32KHz RCʱÖÓ
+	SYS->LRCCR &= ~(1 << SYS_LRCCR_OFF_Pos);	//RTC使用32KHz RC时钟
 	
 	SYS->CLKEN |= (1 << SYS_CLKEN_RTC_Pos) |
 				  ((uint32_t)1 << SYS_CLKEN_ALIVE_Pos);
@@ -72,11 +72,11 @@ void RTC_Init(RTC_TypeDef * RTCx, RTC_InitStructure * initStruct)
 }
 
 /****************************************************************************************************************************************** 
-* º¯ÊýÃû³Æ:	RTC_Start()
-* ¹¦ÄÜ˵Ã÷:	Æô¶¯RTC
-* Êä    Èë: RTC_TypeDef * RTCx	Ö¸¶¨Òª±»ÉèÖõÄRTC£¬¿Éȡֵ°üÀ¨RTC
-* Êä    ³ö: ÎÞ
-* ×¢ÒâÊÂÏî: ÎÞ
+* 函数�称:	RTC_Start()
+* 功能说明:	�动RTC
+* 输    入: RTC_TypeDef * RTCx	指定�被设置的RTC,��值包括RTC
+* 输    出: 无
+* 注�事项: 无
 ******************************************************************************************************************************************/
 void RTC_Start(RTC_TypeDef * RTCx)
 {
@@ -84,11 +84,11 @@ void RTC_Start(RTC_TypeDef * RTCx)
 }
 
 /****************************************************************************************************************************************** 
-* º¯ÊýÃû³Æ:	RTC_Stop()
-* ¹¦ÄÜ˵Ã÷:	Í£Ö¹RTC
-* Êä    Èë: RTC_TypeDef * RTCx	Ö¸¶¨Òª±»ÉèÖõÄRTC£¬¿Éȡֵ°üÀ¨RTC
-* Êä    ³ö: ÎÞ
-* ×¢ÒâÊÂÏî: ÎÞ
+* 函数�称:	RTC_Stop()
+* 功能说明:	�止RTC
+* 输    入: RTC_TypeDef * RTCx	指定�被设置的RTC,��值包括RTC
+* 输    出: 无
+* 注�事项: 无
 ******************************************************************************************************************************************/
 void RTC_Stop(RTC_TypeDef * RTCx)
 {
@@ -96,12 +96,12 @@ void RTC_Stop(RTC_TypeDef * RTCx)
 }
 
 /****************************************************************************************************************************************** 
-* º¯ÊýÃû³Æ:	RTC_GetDateTime()
-* ¹¦ÄÜ˵Ã÷:	»ñÈ¡µ±Ç°µÄʱ¼äºÍÈÕÆÚ
-* Êä    Èë: RTC_TypeDef * RTCx	Ö¸¶¨Òª±»ÉèÖõÄRTC£¬ÓÐЧֵ°üÀ¨RTC
-*			RTC_DateTime * dateTime    »ñÈ¡µ½µÄʱ¼ä¡¢ÈÕÆÚÖµ´æÈë´ËÖ¸ÕëÖ¸ÏòµÄ½á¹¹Ìå
-* Êä    ³ö: ÎÞ
-* ×¢ÒâÊÂÏî: ÎÞ
+* 函数�称:	RTC_GetDateTime()
+* 功能说明:	获�当�的时间和日期
+* 输    入: RTC_TypeDef * RTCx	指定�被设置的RTC,有效值包括RTC
+*			RTC_DateTime * dateTime    获�到的时间�日期值存入此指针指�的结构体
+* 输    出: 无
+* 注�事项: 无
 ******************************************************************************************************************************************/
 void RTC_GetDateTime(RTC_TypeDef * RTCx, RTC_DateTime * dateTime)
 {
@@ -115,12 +115,12 @@ void RTC_GetDateTime(RTC_TypeDef * RTCx, RTC_DateTime * dateTime)
 }
 
 /****************************************************************************************************************************************** 
-* º¯ÊýÃû³Æ:	RTC_AlarmSetup()
-* ¹¦ÄÜ˵Ã÷:	RTCÄÖÖÓÉ趨
-* Êä    Èë: RTC_TypeDef * RTCx	Ö¸¶¨Òª±»ÉèÖõÄRTC£¬ÓÐЧֵ°üÀ¨RTC
-*			RTC_AlarmStructure * alarmStruct    °üº¬RTCÄÖÖÓÉ趨ֵµÄ½á¹¹Ìå
-* Êä    ³ö: ÎÞ
-* ×¢ÒâÊÂÏî: ÎÞ
+* 函数�称:	RTC_AlarmSetup()
+* 功能说明:	RTC闹钟设定
+* 输    入: RTC_TypeDef * RTCx	指定�被设置的RTC,有效值包括RTC
+*			RTC_AlarmStructure * alarmStruct    包�RTC闹钟设定值的结构体
+* 输    出: 无
+* 注�事项: 无
 ******************************************************************************************************************************************/
 void RTC_AlarmSetup(RTC_TypeDef * RTCx, RTC_AlarmStructure * alarmStruct)
 {
@@ -143,13 +143,13 @@ void RTC_AlarmSetup(RTC_TypeDef * RTCx, RTC_AlarmStructure * alarmStruct)
 }
 
 /****************************************************************************************************************************************** 
-* º¯ÊýÃû³Æ:	calcWeekDay()
-* ¹¦ÄÜ˵Ã÷:	¼ÆËãÖ¸¶¨Äê¡¢Ô¡¢ÈÕÊÇÐÇÆÚ¼¸
-* Êä    Èë: uint32_t year		Äê
-*			uint32_t month		ÔÂ
-*			uint32_t date		ÈÕ
-* Êä    ³ö: uint32_t			0 ÐÇÆÚÈÕ    1 ÐÇÆÚÒ»    ... ...    6 ÐÇÆÚÁù
-* ×¢ÒâÊÂÏî: ÎÞ
+* 函数�称:	calcWeekDay()
+* 功能说明:	计算指定年�月�日是星期几
+* 输    入: uint32_t year		年
+*			uint32_t month		月
+*			uint32_t date		æ—¥
+* 输    出: uint32_t			0 星期日    1 星期一    ... ...    6 星期六
+* 注�事项: 无
 ******************************************************************************************************************************************/
 static uint32_t calcWeekDay(uint32_t year, uint32_t month, uint32_t date)
 {
@@ -173,11 +173,11 @@ static uint32_t calcWeekDay(uint32_t year, uint32_t month, uint32_t date)
 }
 
 /****************************************************************************************************************************************** 
-* º¯ÊýÃû³Æ:	RTC_IntSecondEn()
-* ¹¦ÄÜ˵Ã÷:	ÃëÖжÏʹÄÜ
-* Êä    Èë: RTC_TypeDef * RTCx		Ö¸¶¨Òª±»ÉèÖõÄRTC£¬¿Éȡֵ°üÀ¨RTC
-* Êä    ³ö: ÎÞ
-* ×¢ÒâÊÂÏî: ÎÞ
+* 函数�称:	RTC_IntSecondEn()
+* 功能说明:	秒中断使能
+* 输    入: RTC_TypeDef * RTCx		指定�被设置的RTC,��值包括RTC
+* 输    出: 无
+* 注�事项: 无
 ******************************************************************************************************************************************/
 void RTC_IntSecondEn(RTC_TypeDef * RTCx)
 {	
@@ -185,11 +185,11 @@ void RTC_IntSecondEn(RTC_TypeDef * RTCx)
 }
 
 /****************************************************************************************************************************************** 
-* º¯ÊýÃû³Æ:	RTC_IntSecondDis()
-* ¹¦ÄÜ˵Ã÷:	ÃëÖжϽûÖ¹
-* Êä    Èë: RTC_TypeDef * RTCx		Ö¸¶¨Òª±»ÉèÖõÄRTC£¬¿Éȡֵ°üÀ¨RTC
-* Êä    ³ö: ÎÞ
-* ×¢ÒâÊÂÏî: ÎÞ
+* 函数�称:	RTC_IntSecondDis()
+* 功能说明:	秒中断�止
+* 输    入: RTC_TypeDef * RTCx		指定�被设置的RTC,��值包括RTC
+* 输    出: 无
+* 注�事项: 无
 ******************************************************************************************************************************************/
 void RTC_IntSecondDis(RTC_TypeDef * RTCx)
 {	
@@ -197,11 +197,11 @@ void RTC_IntSecondDis(RTC_TypeDef * RTCx)
 }
 
 /****************************************************************************************************************************************** 
-* º¯ÊýÃû³Æ:	RTC_IntSecondClr()
-* ¹¦ÄÜ˵Ã÷:	ÃëÖжϱêÖ¾Çå³ý
-* Êä    Èë: RTC_TypeDef * RTCx		Ö¸¶¨Òª±»ÉèÖõÄRTC£¬¿Éȡֵ°üÀ¨RTC
-* Êä    ³ö: ÎÞ
-* ×¢ÒâÊÂÏî: ÎÞ
+* 函数�称:	RTC_IntSecondClr()
+* 功能说明:	秒中断标志清除
+* 输    入: RTC_TypeDef * RTCx		指定�被设置的RTC,��值包括RTC
+* 输    出: 无
+* 注�事项: 无
 ******************************************************************************************************************************************/
 void RTC_IntSecondClr(RTC_TypeDef * RTCx)
 {	
@@ -209,11 +209,11 @@ void RTC_IntSecondClr(RTC_TypeDef * RTCx)
 }
 
 /****************************************************************************************************************************************** 
-* º¯ÊýÃû³Æ:	RTC_IntSecondStat()
-* ¹¦ÄÜ˵Ã÷:	ÃëÖжÏ״̬
-* Êä    Èë: RTC_TypeDef * RTCx		Ö¸¶¨Òª±»ÉèÖõÄRTC£¬¿Éȡֵ°üÀ¨RTC
-* Êä    ³ö: uint32_t				1 ÃëÖжϷ¢Éú    0 ÃëÖжÏδ·¢Éú
-* ×¢ÒâÊÂÏî: ÎÞ
+* 函数�称:	RTC_IntSecondStat()
+* 功能说明:	秒中断状�
+* 输    入: RTC_TypeDef * RTCx		指定�被设置的RTC,��值包括RTC
+* 输    出: uint32_t				1 秒中断�生    0 秒中断未�生
+* 注�事项: 无
 ******************************************************************************************************************************************/
 uint32_t RTC_IntSecondStat(RTC_TypeDef * RTCx)
 {
@@ -221,11 +221,11 @@ uint32_t RTC_IntSecondStat(RTC_TypeDef * RTCx)
 }
 
 /****************************************************************************************************************************************** 
-* º¯ÊýÃû³Æ:	RTC_IntMinuteEn()
-* ¹¦ÄÜ˵Ã÷:	·ÖÖжÏʹÄÜ
-* Êä    Èë: RTC_TypeDef * RTCx		Ö¸¶¨Òª±»ÉèÖõÄRTC£¬¿Éȡֵ°üÀ¨RTC
-* Êä    ³ö: ÎÞ
-* ×¢ÒâÊÂÏî: ÎÞ
+* 函数�称:	RTC_IntMinuteEn()
+* 功能说明:	分中断使能
+* 输    入: RTC_TypeDef * RTCx		指定�被设置的RTC,��值包括RTC
+* 输    出: 无
+* 注�事项: 无
 ******************************************************************************************************************************************/
 void RTC_IntMinuteEn(RTC_TypeDef * RTCx)
 {	
@@ -233,11 +233,11 @@ void RTC_IntMinuteEn(RTC_TypeDef * RTCx)
 }
 
 /****************************************************************************************************************************************** 
-* º¯ÊýÃû³Æ:	RTC_IntMinuteDis()
-* ¹¦ÄÜ˵Ã÷:	·ÖÖжϽûÖ¹
-* Êä    Èë: RTC_TypeDef * RTCx		Ö¸¶¨Òª±»ÉèÖõÄRTC£¬¿Éȡֵ°üÀ¨RTC
-* Êä    ³ö: ÎÞ
-* ×¢ÒâÊÂÏî: ÎÞ
+* 函数�称:	RTC_IntMinuteDis()
+* 功能说明:	分中断�止
+* 输    入: RTC_TypeDef * RTCx		指定�被设置的RTC,��值包括RTC
+* 输    出: 无
+* 注�事项: 无
 ******************************************************************************************************************************************/
 void RTC_IntMinuteDis(RTC_TypeDef * RTCx)
 {	
@@ -245,11 +245,11 @@ void RTC_IntMinuteDis(RTC_TypeDef * RTCx)
 }
 
 /****************************************************************************************************************************************** 
-* º¯ÊýÃû³Æ:	RTC_IntMinuteClr()
-* ¹¦ÄÜ˵Ã÷:	·ÖÖжϱêÖ¾Çå³ý
-* Êä    Èë: RTC_TypeDef * RTCx		Ö¸¶¨Òª±»ÉèÖõÄRTC£¬¿Éȡֵ°üÀ¨RTC
-* Êä    ³ö: ÎÞ
-* ×¢ÒâÊÂÏî: ÎÞ
+* 函数�称:	RTC_IntMinuteClr()
+* 功能说明:	分中断标志清除
+* 输    入: RTC_TypeDef * RTCx		指定�被设置的RTC,��值包括RTC
+* 输    出: 无
+* 注�事项: 无
 ******************************************************************************************************************************************/
 void RTC_IntMinuteClr(RTC_TypeDef * RTCx)
 {	
@@ -257,11 +257,11 @@ void RTC_IntMinuteClr(RTC_TypeDef * RTCx)
 }
 
 /****************************************************************************************************************************************** 
-* º¯ÊýÃû³Æ:	RTC_IntMinuteStat()
-* ¹¦ÄÜ˵Ã÷:	·ÖÖжÏ״̬
-* Êä    Èë: RTC_TypeDef * RTCx		Ö¸¶¨Òª±»ÉèÖõÄRTC£¬¿Éȡֵ°üÀ¨RTC
-* Êä    ³ö: uint32_t				1 ·ÖÖжϷ¢Éú    0 ·ÖÖжÏδ·¢Éú
-* ×¢ÒâÊÂÏî: ÎÞ
+* 函数�称:	RTC_IntMinuteStat()
+* 功能说明:	分中断状�
+* 输    入: RTC_TypeDef * RTCx		指定�被设置的RTC,��值包括RTC
+* 输    出: uint32_t				1 分中断�生    0 分中断未�生
+* 注�事项: 无
 ******************************************************************************************************************************************/
 uint32_t RTC_IntMinuteStat(RTC_TypeDef * RTCx)
 {
@@ -269,11 +269,11 @@ uint32_t RTC_IntMinuteStat(RTC_TypeDef * RTCx)
 }
 
 /****************************************************************************************************************************************** 
-* º¯ÊýÃû³Æ:	RTC_IntHourEn()
-* ¹¦ÄÜ˵Ã÷:	ʱÖжÏʹÄÜ
-* Êä    Èë: RTC_TypeDef * RTCx		Ö¸¶¨Òª±»ÉèÖõÄRTC£¬¿Éȡֵ°üÀ¨RTC
-* Êä    ³ö: ÎÞ
-* ×¢ÒâÊÂÏî: ÎÞ
+* 函数�称:	RTC_IntHourEn()
+* 功能说明:	时中断使能
+* 输    入: RTC_TypeDef * RTCx		指定�被设置的RTC,��值包括RTC
+* 输    出: 无
+* 注�事项: 无
 ******************************************************************************************************************************************/
 void RTC_IntHourEn(RTC_TypeDef * RTCx)
 {	
@@ -281,11 +281,11 @@ void RTC_IntHourEn(RTC_TypeDef * RTCx)
 }
 
 /****************************************************************************************************************************************** 
-* º¯ÊýÃû³Æ:	RTC_IntHourDis()
-* ¹¦ÄÜ˵Ã÷:	ʱÖжϽûÖ¹
-* Êä    Èë: RTC_TypeDef * RTCx		Ö¸¶¨Òª±»ÉèÖõÄRTC£¬¿Éȡֵ°üÀ¨RTC
-* Êä    ³ö: ÎÞ
-* ×¢ÒâÊÂÏî: ÎÞ
+* 函数�称:	RTC_IntHourDis()
+* 功能说明:	时中断�止
+* 输    入: RTC_TypeDef * RTCx		指定�被设置的RTC,��值包括RTC
+* 输    出: 无
+* 注�事项: 无
 ******************************************************************************************************************************************/
 void RTC_IntHourDis(RTC_TypeDef * RTCx)
 {	
@@ -293,11 +293,11 @@ void RTC_IntHourDis(RTC_TypeDef * RTCx)
 }
 
 /****************************************************************************************************************************************** 
-* º¯ÊýÃû³Æ:	RTC_IntHourClr()
-* ¹¦ÄÜ˵Ã÷:	ʱÖжϱêÖ¾Çå³ý
-* Êä    Èë: RTC_TypeDef * RTCx		Ö¸¶¨Òª±»ÉèÖõÄRTC£¬¿Éȡֵ°üÀ¨RTC
-* Êä    ³ö: ÎÞ
-* ×¢ÒâÊÂÏî: ÎÞ
+* 函数�称:	RTC_IntHourClr()
+* 功能说明:	时中断标志清除
+* 输    入: RTC_TypeDef * RTCx		指定�被设置的RTC,��值包括RTC
+* 输    出: 无
+* 注�事项: 无
 ******************************************************************************************************************************************/
 void RTC_IntHourClr(RTC_TypeDef * RTCx)
 {	
@@ -305,11 +305,11 @@ void RTC_IntHourClr(RTC_TypeDef * RTCx)
 }
 
 /****************************************************************************************************************************************** 
-* º¯ÊýÃû³Æ:	RTC_IntHourStat()
-* ¹¦ÄÜ˵Ã÷:	ʱÖжÏ״̬
-* Êä    Èë: RTC_TypeDef * RTCx		Ö¸¶¨Òª±»ÉèÖõÄRTC£¬¿Éȡֵ°üÀ¨RTC
-* Êä    ³ö: uint32_t				1 ʱÖжϷ¢Éú    0 ʱÖжÏδ·¢Éú
-* ×¢ÒâÊÂÏî: ÎÞ
+* 函数�称:	RTC_IntHourStat()
+* 功能说明:	时中断状�
+* 输    入: RTC_TypeDef * RTCx		指定�被设置的RTC,��值包括RTC
+* 输    出: uint32_t				1 时中断�生    0 时中断未�生
+* 注�事项: 无
 ******************************************************************************************************************************************/
 uint32_t RTC_IntHourStat(RTC_TypeDef * RTCx)
 {
@@ -317,11 +317,11 @@ uint32_t RTC_IntHourStat(RTC_TypeDef * RTCx)
 }
 
 /****************************************************************************************************************************************** 
-* º¯ÊýÃû³Æ:	RTC_IntDateEn()
-* ¹¦ÄÜ˵Ã÷:	ÈÕÖжÏʹÄÜ
-* Êä    Èë: RTC_TypeDef * RTCx		Ö¸¶¨Òª±»ÉèÖõÄRTC£¬¿Éȡֵ°üÀ¨RTC
-* Êä    ³ö: ÎÞ
-* ×¢ÒâÊÂÏî: ÎÞ
+* 函数�称:	RTC_IntDateEn()
+* 功能说明:	日中断使能
+* 输    入: RTC_TypeDef * RTCx		指定�被设置的RTC,��值包括RTC
+* 输    出: 无
+* 注�事项: 无
 ******************************************************************************************************************************************/
 void RTC_IntDateEn(RTC_TypeDef * RTCx)
 {	
@@ -329,11 +329,11 @@ void RTC_IntDateEn(RTC_TypeDef * RTCx)
 }
 
 /****************************************************************************************************************************************** 
-* º¯ÊýÃû³Æ:	RTC_IntDateDis()
-* ¹¦ÄÜ˵Ã÷:	ÈÕÖжϽûÖ¹
-* Êä    Èë: RTC_TypeDef * RTCx		Ö¸¶¨Òª±»ÉèÖõÄRTC£¬¿Éȡֵ°üÀ¨RTC
-* Êä    ³ö: ÎÞ
-* ×¢ÒâÊÂÏî: ÎÞ
+* 函数�称:	RTC_IntDateDis()
+* 功能说明:	日中断�止
+* 输    入: RTC_TypeDef * RTCx		指定�被设置的RTC,��值包括RTC
+* 输    出: 无
+* 注�事项: 无
 ******************************************************************************************************************************************/
 void RTC_IntDateDis(RTC_TypeDef * RTCx)
 {	
@@ -341,11 +341,11 @@ void RTC_IntDateDis(RTC_TypeDef * RTCx)
 }
 
 /****************************************************************************************************************************************** 
-* º¯ÊýÃû³Æ:	RTC_IntDateClr()
-* ¹¦ÄÜ˵Ã÷:	ÈÕÖжϱêÖ¾Çå³ý
-* Êä    Èë: RTC_TypeDef * RTCx		Ö¸¶¨Òª±»ÉèÖõÄRTC£¬¿Éȡֵ°üÀ¨RTC
-* Êä    ³ö: ÎÞ
-* ×¢ÒâÊÂÏî: ÎÞ
+* 函数�称:	RTC_IntDateClr()
+* 功能说明:	日中断标志清除
+* 输    入: RTC_TypeDef * RTCx		指定�被设置的RTC,��值包括RTC
+* 输    出: 无
+* 注�事项: 无
 ******************************************************************************************************************************************/
 void RTC_IntDateClr(RTC_TypeDef * RTCx)
 {	
@@ -353,11 +353,11 @@ void RTC_IntDateClr(RTC_TypeDef * RTCx)
 }
 
 /****************************************************************************************************************************************** 
-* º¯ÊýÃû³Æ:	RTC_IntDateStat()
-* ¹¦ÄÜ˵Ã÷:	ÈÕÖжÏ״̬
-* Êä    Èë: RTC_TypeDef * RTCx		Ö¸¶¨Òª±»ÉèÖõÄRTC£¬¿Éȡֵ°üÀ¨RTC
-* Êä    ³ö: uint32_t				1 ÈÕÖжϷ¢Éú    0 ÈÕÖжÏδ·¢Éú
-* ×¢ÒâÊÂÏî: ÎÞ
+* 函数�称:	RTC_IntDateStat()
+* 功能说明:	日中断状�
+* 输    入: RTC_TypeDef * RTCx		指定�被设置的RTC,��值包括RTC
+* 输    出: uint32_t				1 日中断�生    0 日中断未�生
+* 注�事项: 无
 ******************************************************************************************************************************************/
 uint32_t RTC_IntDateStat(RTC_TypeDef * RTCx)
 {
@@ -365,11 +365,11 @@ uint32_t RTC_IntDateStat(RTC_TypeDef * RTCx)
 }
 
 /****************************************************************************************************************************************** 
-* º¯ÊýÃû³Æ:	RTC_IntAlarmEn()
-* ¹¦ÄÜ˵Ã÷:	ÄÖÖÓÖжÏʹÄÜ
-* Êä    Èë: RTC_TypeDef * RTCx		Ö¸¶¨Òª±»ÉèÖõÄRTC£¬¿Éȡֵ°üÀ¨RTC
-* Êä    ³ö: ÎÞ
-* ×¢ÒâÊÂÏî: ÎÞ
+* 函数�称:	RTC_IntAlarmEn()
+* 功能说明:	闹钟中断使能
+* 输    入: RTC_TypeDef * RTCx		指定�被设置的RTC,��值包括RTC
+* 输    出: 无
+* 注�事项: 无
 ******************************************************************************************************************************************/
 void RTC_IntAlarmEn(RTC_TypeDef * RTCx)
 {	
@@ -377,11 +377,11 @@ void RTC_IntAlarmEn(RTC_TypeDef * RTCx)
 }
 
 /****************************************************************************************************************************************** 
-* º¯ÊýÃû³Æ:	RTC_IntAlarmDis()
-* ¹¦ÄÜ˵Ã÷:	ÄÖÖÓÖжϽûÖ¹
-* Êä    Èë: RTC_TypeDef * RTCx		Ö¸¶¨Òª±»ÉèÖõÄRTC£¬¿Éȡֵ°üÀ¨RTC
-* Êä    ³ö: ÎÞ
-* ×¢ÒâÊÂÏî: ÎÞ
+* 函数�称:	RTC_IntAlarmDis()
+* 功能说明:	闹钟中断�止
+* 输    入: RTC_TypeDef * RTCx		指定�被设置的RTC,��值包括RTC
+* 输    出: 无
+* 注�事项: 无
 ******************************************************************************************************************************************/
 void RTC_IntAlarmDis(RTC_TypeDef * RTCx)
 {	
@@ -389,11 +389,11 @@ void RTC_IntAlarmDis(RTC_TypeDef * RTCx)
 }
 
 /****************************************************************************************************************************************** 
-* º¯ÊýÃû³Æ:	RTC_IntAlarmClr()
-* ¹¦ÄÜ˵Ã÷:	ÄÖÖÓÖжϱêÖ¾Çå³ý
-* Êä    Èë: RTC_TypeDef * RTCx		Ö¸¶¨Òª±»ÉèÖõÄRTC£¬¿Éȡֵ°üÀ¨RTC
-* Êä    ³ö: ÎÞ
-* ×¢ÒâÊÂÏî: ÎÞ
+* 函数�称:	RTC_IntAlarmClr()
+* 功能说明:	闹钟中断标志清除
+* 输    入: RTC_TypeDef * RTCx		指定�被设置的RTC,��值包括RTC
+* 输    出: 无
+* 注�事项: 无
 ******************************************************************************************************************************************/
 void RTC_IntAlarmClr(RTC_TypeDef * RTCx)
 {	
@@ -401,11 +401,11 @@ void RTC_IntAlarmClr(RTC_TypeDef * RTCx)
 }
 
 /****************************************************************************************************************************************** 
-* º¯ÊýÃû³Æ:	RTC_IntAlarmStat()
-* ¹¦ÄÜ˵Ã÷:	ÄÖÖÓÖжÏ״̬
-* Êä    Èë: RTC_TypeDef * RTCx		Ö¸¶¨Òª±»ÉèÖõÄRTC£¬¿Éȡֵ°üÀ¨RTC
-* Êä    ³ö: uint32_t				1 ÄÖÖÓÖжϷ¢Éú    0 ÄÖÖÓÖжÏδ·¢Éú
-* ×¢ÒâÊÂÏî: ÎÞ
+* 函数�称:	RTC_IntAlarmStat()
+* 功能说明:	闹钟中断状�
+* 输    入: RTC_TypeDef * RTCx		指定�被设置的RTC,��值包括RTC
+* 输    出: uint32_t				1 闹钟中断�生    0 闹钟中断未�生
+* 注�事项: 无
 ******************************************************************************************************************************************/
 uint32_t RTC_IntAlarmStat(RTC_TypeDef * RTCx)
 {

+ 7 - 7
bsp/swm320/libraries/SWM320_StdPeriph_Driver/SWM320_rtc.h

@@ -13,17 +13,17 @@
 
 typedef struct {
 	uint16_t Year;
-	uint8_t  Month;			//ȡֵ1--12
-	uint8_t  Date;			//ȡֵ1--31
-	uint8_t  Hour;			//ȡֵ0--23
-	uint8_t  Minute;		//ȡֵ0--59
-	uint8_t  Second;		//ȡֵ0--59
+	uint8_t  Month;			//�值1--12
+	uint8_t  Date;			//�值1--31
+	uint8_t  Hour;			//�值0--23
+	uint8_t  Minute;		//�值0--59
+	uint8_t  Second;		//�值0--59
 	uint8_t  SecondIEn;
 	uint8_t  MinuteIEn;
 } RTC_InitStructure;
 
 typedef struct {
-	uint8_t  Days;			//RTC_SUN¡¢RTC_MON¡¢RTC_TUE¡¢RTC_WED¡¢RTC_THU¡¢RTC_FRI¡¢RTC_SAT¼°Æä»òÔËËã×éºÏ
+	uint8_t  Days;			//RTC_SUN�RTC_MON�RTC_TUE�RTC_WED�RTC_THU�RTC_FRI�RTC_SAT�其或�算组�
 	uint8_t  Hour;
 	uint8_t  Minute;
 	uint8_t  Second;
@@ -34,7 +34,7 @@ typedef struct {
 	uint16_t Year;
 	uint8_t  Month;
 	uint8_t  Date;
-	uint8_t  Day;			//RTC_SUN¡¢RTC_MON¡¢RTC_TUE¡¢RTC_WED¡¢RTC_THU¡¢RTC_FRI¡¢RTC_SAT
+	uint8_t  Day;			//RTC_SUN�RTC_MON�RTC_TUE�RTC_WED�RTC_THU�RTC_FRI�RTC_SAT
 	uint8_t  Hour;
 	uint8_t  Minute;
 	uint8_t  Second;

+ 82 - 82
bsp/swm320/libraries/SWM320_StdPeriph_Driver/SWM320_sdio.c

@@ -1,10 +1,10 @@
 /****************************************************************************************************************************************** 
-* 文件名称: SWM320_sdio.c
-* 功能说明:	SWM320单片机的SDIO接口驱动库
-* 技术支持:	http://www.synwit.com.cn/e/tool/gbook/?bid=1
-* 注意事项: 为了通用性、兼容性、易用性,只支持以512字节为单位的读写
-* 版本日期:	V1.1.0		2017年10月25日
-* 升级记录:  
+* 鏂囦欢鍚嶇О: SWM320_sdio.c
+* 鍔熻兘璇存槑:	SWM320鍗曠墖鏈虹殑SDIO鎺ュ彛椹卞姩搴�
+* 鎶€鏈�敮鎸�:	http://www.synwit.com.cn/e/tool/gbook/?bid=1
+* 娉ㄦ剰浜嬮」: 涓轰簡閫氱敤鎬с€佸吋瀹规€с€佹槗鐢ㄦ€э紝鍙�敮鎸佷互512瀛楄妭涓哄崟浣嶇殑璇诲啓
+* 鐗堟湰鏃ユ湡:	V1.1.0		2017骞�10鏈�25鏃�
+* 鍗囩骇璁板綍:  
 *
 *
 *******************************************************************************************************************************************
@@ -25,11 +25,11 @@
 SD_CardInfo SD_cardInfo;
 
 /****************************************************************************************************************************************** 
-* 函数名称: SDIO_Init()
-* 功能说明:	SDIO读写SD卡初始化,初始化成高速4线模式、读写以512字节大小进行
-* 输    入: uint32_t freq			SDIO_CLK时钟频率
-* 输    出: uint32_t				SD_RES_OK 操作成功    SD_RES_ERR 操作失败    SD_RES_TIMEOUT 操作超时
-* 注意事项: 无
+* 鍑芥暟鍚嶇О: SDIO_Init()
+* 鍔熻兘璇存槑:	SDIO璇诲啓SD鍗″垵濮嬪寲锛屽垵濮嬪寲鎴愰珮閫�4绾挎ā寮忋€佽�鍐欎互512瀛楄妭澶у皬杩涜�
+* 杈�    鍏�: uint32_t freq			SDIO_CLK鏃堕挓棰戠巼
+* 杈�    鍑�: uint32_t				SD_RES_OK 鎿嶄綔鎴愬姛    SD_RES_ERR 鎿嶄綔澶辫触    SD_RES_TIMEOUT 鎿嶄綔瓒呮椂
+* 娉ㄦ剰浜嬮」: 鏃�
 ******************************************************************************************************************************************/
 uint32_t SDIO_Init(uint32_t freq)
 {
@@ -37,7 +37,7 @@ uint32_t SDIO_Init(uint32_t freq)
 	uint32_t resp, resps[4];
 	
 	SYS->CLKDIV &= ~SYS_CLKDIV_SDIO_Msk;
-	if(SystemCoreClock > 80000000)		//SDIO时钟需要小于52MHz
+	if(SystemCoreClock > 80000000)		//SDIO鏃堕挓闇€瑕佸皬浜�52MHz
 		SYS->CLKDIV |= (2 << SYS_CLKDIV_SDIO_Pos);	//SDCLK = SYSCLK / 4
 	else
 		SYS->CLKDIV |= (1 << SYS_CLKDIV_SDIO_Pos);	//SDCLK = SYSCLK / 2
@@ -64,7 +64,7 @@ uint32_t SDIO_Init(uint32_t freq)
 	
 	SDIO_SendCmd(SD_CMD_GO_IDLE_STATE, 0x00, SD_RESP_NO, 0);				//CMD0: GO_IDLE_STATE
 	
-	res = SDIO_SendCmd(SD_CMD_SEND_IF_COND, 0x1AA, SD_RESP_32b, &resp);		//CMD8: SEND_IF_COND, 检测工作电压、检测是否支持SD 2.0
+	res = SDIO_SendCmd(SD_CMD_SEND_IF_COND, 0x1AA, SD_RESP_32b, &resp);		//CMD8: SEND_IF_COND, 妫€娴嬪伐浣滅數鍘嬨€佹�娴嬫槸鍚︽敮鎸丼D 2.0
 	if(res != SD_RES_OK)
 		return res;
 	
@@ -77,50 +77,50 @@ uint32_t SDIO_Init(uint32_t freq)
 		if(res != SD_RES_OK)
 			return res;
 		
-		if(resp != 0x120) return SD_RES_ERR;	//不是SD卡,可能是MMC卡
+		if(resp != 0x120) return SD_RES_ERR;	//涓嶆槸SD鍗★紝鍙�兘鏄疢MC鍗�
 		
 		if(SD_cardInfo.CardType == SDIO_STD_CAPACITY_SD_CARD_V2_0)
 			SDIO_SendCmd(SD_CMD_SD_APP_OP_COND, 0x80100000|0x40000000, SD_RESP_32b, &resp);
 		else
 			SDIO_SendCmd(SD_CMD_SD_APP_OP_COND, 0x80100000|0x00000000, SD_RESP_32b, &resp);
-	} while(((resp >> 31) & 0x01) == 0);		//上电没完成时resp[31] == 0
+	} while(((resp >> 31) & 0x01) == 0);		//涓婄數娌″畬鎴愭椂resp[31] == 0
 	
 	if(((resp >> 30) & 0x01) == 1) SD_cardInfo.CardType = SDIO_HIGH_CAPACITY_SD_CARD;
 	
 	
-	SDIO_SendCmd(SD_CMD_ALL_SEND_CID, 0x00, SD_RESP_128b, resps);			//CMD2: SD_CMD_ALL_SEND_CID,获取CID
+	SDIO_SendCmd(SD_CMD_ALL_SEND_CID, 0x00, SD_RESP_128b, resps);			//CMD2: SD_CMD_ALL_SEND_CID锛岃幏鍙朇ID
 	
 	parseCID(resps);
 	
 	
-	SDIO_SendCmd(SD_CMD_SET_REL_ADDR, 0x00, SD_RESP_32b, &resp);			//CMD3: SD_CMD_SET_REL_ADDR,设置RCA
+	SDIO_SendCmd(SD_CMD_SET_REL_ADDR, 0x00, SD_RESP_32b, &resp);			//CMD3: SD_CMD_SET_REL_ADDR锛岃�缃甊CA
 	
 	SD_cardInfo.RCA = resp >> 16;
 	
 	
-	SDIO_SendCmd(SD_CMD_SEND_CSD, SD_cardInfo.RCA << 16, SD_RESP_128b, resps);	//CMD9: SD_CMD_SEND_CSD,获取CSD
+	SDIO_SendCmd(SD_CMD_SEND_CSD, SD_cardInfo.RCA << 16, SD_RESP_128b, resps);	//CMD9: SD_CMD_SEND_CSD锛岃幏鍙朇SD
 	
 	parseCSD(resps);
 	
-	if(SD_cardInfo.CardBlockSize < 0x200) return SD_RES_ERR;	//本驱动只支持以512字节为单位的读写,所以最大读写单位必须不小于512
+	if(SD_cardInfo.CardBlockSize < 0x200) return SD_RES_ERR;	//鏈�┍鍔ㄥ彧鏀�寔浠�512瀛楄妭涓哄崟浣嶇殑璇诲啓锛屾墍浠ユ渶澶ц�鍐欏崟浣嶅繀椤讳笉灏忎簬512
 	
 	
 	SDIO->CR2 &= ~(SDIO_CR2_SDCLKEN_Msk | SDIO_CR2_SDCLKDIV_Msk);
 	SDIO->CR2 |= (1 << SDIO_CR2_SDCLKEN_Pos) |
-				 (calcSDCLKDiv(freq) << SDIO_CR2_SDCLKDIV_Pos);	//初始化完成,SDCLK切换到高速
+				 (calcSDCLKDiv(freq) << SDIO_CR2_SDCLKDIV_Pos);	//鍒濆�鍖栧畬鎴愶紝SDCLK鍒囨崲鍒伴珮閫�
 	
 	
-	SDIO_SendCmd(SD_CMD_SEL_DESEL_CARD, SD_cardInfo.RCA << 16, SD_RESP_32b_busy, &resp);	//CMD7: 选中卡,从Standy模式进入Transfer模式
+	SDIO_SendCmd(SD_CMD_SEL_DESEL_CARD, SD_cardInfo.RCA << 16, SD_RESP_32b_busy, &resp);	//CMD7: 閫変腑鍗★紝浠嶴tandy妯″紡杩涘叆Transfer妯″紡
 	SDIO->IF = SDIO_IF_TRXDONE_Msk;
 	
 	SDIO_SendCmd(SD_CMD_APP_CMD, SD_cardInfo.RCA << 16, SD_RESP_32b, &resp);
 	
-	SDIO_SendCmd(SD_CMD_APP_SD_SET_BUSWIDTH, SD_BUSWIDTH_4b, SD_RESP_32b, &resp);	//切换成4位总线模式
+	SDIO_SendCmd(SD_CMD_APP_SD_SET_BUSWIDTH, SD_BUSWIDTH_4b, SD_RESP_32b, &resp);	//鍒囨崲鎴�4浣嶆€荤嚎妯″紡
 	
 	SDIO->CR1 |= (1 << SDIO_CR1_4BIT_Pos);
 	
 	
-	SDIO_SendCmd(SD_CMD_SET_BLOCKLEN, 512, SD_RESP_32b, &resp);		//固定块大小位512字节
+	SDIO_SendCmd(SD_CMD_SET_BLOCKLEN, 512, SD_RESP_32b, &resp);		//鍥哄畾鍧楀ぇ灏忎綅512瀛楄妭
 	
 	SDIO->BLK = 512;
 	
@@ -128,12 +128,12 @@ uint32_t SDIO_Init(uint32_t freq)
 }
 
 /****************************************************************************************************************************************** 
-* 函数名称: SDIO_BlockWrite()
-* 功能说明:	向SD卡写入数据
-* 输    入: uint32_t block_addr		SD卡块地址,每块512字节
-*			uint32_t buff[]			要写入的数据
-* 输    出: uint32_t				SD_RES_OK 操作成功    SD_RES_ERR 操作失败    SD_RES_TIMEOUT 操作超时
-* 注意事项: 无
+* 鍑芥暟鍚嶇О: SDIO_BlockWrite()
+* 鍔熻兘璇存槑:	鍚慡D鍗″啓鍏ユ暟鎹�
+* 杈�    鍏�: uint32_t block_addr		SD鍗″潡鍦板潃锛屾瘡鍧�512瀛楄妭
+*			uint32_t buff[]			瑕佸啓鍏ョ殑鏁版嵁
+* 杈�    鍑�: uint32_t				SD_RES_OK 鎿嶄綔鎴愬姛    SD_RES_ERR 鎿嶄綔澶辫触    SD_RES_TIMEOUT 鎿嶄綔瓒呮椂
+* 娉ㄦ剰浜嬮」: 鏃�
 ******************************************************************************************************************************************/
 uint32_t SDIO_BlockWrite(uint32_t block_addr, uint32_t buff[])
 {
@@ -159,13 +159,13 @@ uint32_t SDIO_BlockWrite(uint32_t block_addr, uint32_t buff[])
 }
 
 /****************************************************************************************************************************************** 
-* 函数名称: SDIO_MultiBlockWrite()
-* 功能说明:	向SD卡写入多块数据
-* 输    入: uint32_t block_addr		SD卡块地址,每块512字节
-*			uint16_t block_cnt		要写入的块数
-*			uint32_t buff[]			要写入的数据
-* 输    出: uint32_t				SD_RES_OK 操作成功    SD_RES_ERR 操作失败    SD_RES_TIMEOUT 操作超时
-* 注意事项: 无
+* 鍑芥暟鍚嶇О: SDIO_MultiBlockWrite()
+* 鍔熻兘璇存槑:	鍚慡D鍗″啓鍏ュ�鍧楁暟鎹�
+* 杈�    鍏�: uint32_t block_addr		SD鍗″潡鍦板潃锛屾瘡鍧�512瀛楄妭
+*			uint16_t block_cnt		瑕佸啓鍏ョ殑鍧楁暟
+*			uint32_t buff[]			瑕佸啓鍏ョ殑鏁版嵁
+* 杈�    鍑�: uint32_t				SD_RES_OK 鎿嶄綔鎴愬姛    SD_RES_ERR 鎿嶄綔澶辫触    SD_RES_TIMEOUT 鎿嶄綔瓒呮椂
+* 娉ㄦ剰浜嬮」: 鏃�
 ******************************************************************************************************************************************/
 uint32_t SDIO_MultiBlockWrite(uint32_t block_addr, uint16_t block_cnt, uint32_t buff[])
 {
@@ -194,13 +194,13 @@ uint32_t SDIO_MultiBlockWrite(uint32_t block_addr, uint16_t block_cnt, uint32_t
 }
 
 /****************************************************************************************************************************************** 
-* 函数名称: SDIO_DMABlockWrite()
-* 功能说明:	通过DMA向SD卡写入多块数据
-* 输    入: uint32_t block_addr		SD卡块地址,每块512字节
-*			uint16_t block_cnt		要写入的块数
-*			uint32_t buff[]			要写入的数据
-* 输    出: uint32_t				SD_RES_OK 操作成功    SD_RES_ERR 操作失败    SD_RES_TIMEOUT 操作超时
-* 注意事项: 无
+* 鍑芥暟鍚嶇О: SDIO_DMABlockWrite()
+* 鍔熻兘璇存槑:	閫氳繃DMA鍚慡D鍗″啓鍏ュ�鍧楁暟鎹�
+* 杈�    鍏�: uint32_t block_addr		SD鍗″潡鍦板潃锛屾瘡鍧�512瀛楄妭
+*			uint16_t block_cnt		瑕佸啓鍏ョ殑鍧楁暟
+*			uint32_t buff[]			瑕佸啓鍏ョ殑鏁版嵁
+* 杈�    鍑�: uint32_t				SD_RES_OK 鎿嶄綔鎴愬姛    SD_RES_ERR 鎿嶄綔澶辫触    SD_RES_TIMEOUT 鎿嶄綔瓒呮椂
+* 娉ㄦ剰浜嬮」: 鏃�
 ******************************************************************************************************************************************/
 uint32_t SDIO_DMABlockWrite(uint32_t block_addr, uint16_t block_cnt, uint32_t buff[])
 {
@@ -223,12 +223,12 @@ uint32_t SDIO_DMABlockWrite(uint32_t block_addr, uint16_t block_cnt, uint32_t bu
 }
 
 /****************************************************************************************************************************************** 
-* 函数名称: SDIO_BlockRead()
-* 功能说明:	从SD卡读出数据
-* 输    入: uint32_t block_addr		SD卡块地址,每块512字节
-*			uint32_t buff[]			读出的数据
-* 输    出: uint32_t				SD_RES_OK 操作成功    SD_RES_ERR 操作失败    SD_RES_TIMEOUT 操作超时
-* 注意事项: 无
+* 鍑芥暟鍚嶇О: SDIO_BlockRead()
+* 鍔熻兘璇存槑:	浠嶴D鍗¤�鍑烘暟鎹�
+* 杈�    鍏�: uint32_t block_addr		SD鍗″潡鍦板潃锛屾瘡鍧�512瀛楄妭
+*			uint32_t buff[]			璇诲嚭鐨勬暟鎹�
+* 杈�    鍑�: uint32_t				SD_RES_OK 鎿嶄綔鎴愬姛    SD_RES_ERR 鎿嶄綔澶辫触    SD_RES_TIMEOUT 鎿嶄綔瓒呮椂
+* 娉ㄦ剰浜嬮」: 鏃�
 ******************************************************************************************************************************************/
 uint32_t SDIO_BlockRead(uint32_t block_addr, uint32_t buff[])
 {
@@ -254,13 +254,13 @@ uint32_t SDIO_BlockRead(uint32_t block_addr, uint32_t buff[])
 }
 
 /****************************************************************************************************************************************** 
-* 函数名称: SDIO_MultiBlockRead()
-* 功能说明:	从SD卡读出多块数据
-* 输    入: uint32_t block_addr		SD卡块地址,每块512字节
-*			uint16_t block_cnt		要读出的块数
-*			uint32_t buff[]			读出的数据
-* 输    出: uint32_t				SD_RES_OK 操作成功    SD_RES_ERR 操作失败    SD_RES_TIMEOUT 操作超时
-* 注意事项: 无
+* 鍑芥暟鍚嶇О: SDIO_MultiBlockRead()
+* 鍔熻兘璇存槑:	浠嶴D鍗¤�鍑哄�鍧楁暟鎹�
+* 杈�    鍏�: uint32_t block_addr		SD鍗″潡鍦板潃锛屾瘡鍧�512瀛楄妭
+*			uint16_t block_cnt		瑕佽�鍑虹殑鍧楁暟
+*			uint32_t buff[]			璇诲嚭鐨勬暟鎹�
+* 杈�    鍑�: uint32_t				SD_RES_OK 鎿嶄綔鎴愬姛    SD_RES_ERR 鎿嶄綔澶辫触    SD_RES_TIMEOUT 鎿嶄綔瓒呮椂
+* 娉ㄦ剰浜嬮」: 鏃�
 ******************************************************************************************************************************************/
 uint32_t SDIO_MultiBlockRead(uint32_t block_addr, uint16_t block_cnt, uint32_t buff[])
 {
@@ -289,13 +289,13 @@ uint32_t SDIO_MultiBlockRead(uint32_t block_addr, uint16_t block_cnt, uint32_t b
 }
 
 /****************************************************************************************************************************************** 
-* 函数名称: SDIO_DMABlockRead()
-* 功能说明:	通过DMA从SD卡读出多块数据
-* 输    入: uint32_t block_addr		SD卡块地址,每块512字节
-*			uint16_t block_cnt		要读出的块数
-*			uint32_t buff[]			读出的数据
-* 输    出: uint32_t				SD_RES_OK 操作成功    SD_RES_ERR 操作失败    SD_RES_TIMEOUT 操作超时
-* 注意事项: 无
+* 鍑芥暟鍚嶇О: SDIO_DMABlockRead()
+* 鍔熻兘璇存槑:	閫氳繃DMA浠嶴D鍗¤�鍑哄�鍧楁暟鎹�
+* 杈�    鍏�: uint32_t block_addr		SD鍗″潡鍦板潃锛屾瘡鍧�512瀛楄妭
+*			uint16_t block_cnt		瑕佽�鍑虹殑鍧楁暟
+*			uint32_t buff[]			璇诲嚭鐨勬暟鎹�
+* 杈�    鍑�: uint32_t				SD_RES_OK 鎿嶄綔鎴愬姛    SD_RES_ERR 鎿嶄綔澶辫触    SD_RES_TIMEOUT 鎿嶄綔瓒呮椂
+* 娉ㄦ剰浜嬮」: 鏃�
 ******************************************************************************************************************************************/
 uint32_t SDIO_DMABlockRead(uint32_t block_addr, uint16_t block_cnt, uint32_t buff[])
 {
@@ -318,20 +318,20 @@ uint32_t SDIO_DMABlockRead(uint32_t block_addr, uint16_t block_cnt, uint32_t buf
 }
 
 /****************************************************************************************************************************************** 
-* 函数名称: _SDIO_SendCmd()
-* 功能说明:	SDIO向SD卡发送命令
-* 输    入: uint32_t cmd			命令索引
-*			uint32_t arg			命令参数
-*			uint32_t _resp_type		响应类型,取值SD_RESP_NO、SD_RESP_32b、SD_RESP_128b、SD_RESP_32b_busy
-*			uint32_t *resp_data		响应内容
-*			uint32_t have_data		是否有数据传输
-*			uint32_t data_read		1 读SD卡    0 写SD卡
-*			uint16_t block_cnt		读写块个数
-*			uint32_t use_dma		1 使用DMA搬运数据
-* 输    出: uint32_t				SD_RES_OK 操作成功    SD_RES_ERR 操作失败    SD_RES_TIMEOUT 操作超时
-* 注意事项: 无
+* 鍑芥暟鍚嶇О: _SDIO_SendCmd()
+* 鍔熻兘璇存槑:	SDIO鍚慡D鍗″彂閫佸懡浠�
+* 杈�    鍏�: uint32_t cmd			鍛戒护绱㈠紩
+*			uint32_t arg			鍛戒护鍙傛暟
+*			uint32_t resp_type		鍝嶅簲绫诲瀷锛屽彇鍊糞D_RESP_NO銆丼D_RESP_32b銆丼D_RESP_128b銆丼D_RESP_32b_busy
+*			uint32_t *resp_data		鍝嶅簲鍐呭�
+*			uint32_t have_data		鏄�惁鏈夋暟鎹�紶杈�
+*			uint32_t data_read		1 璇籗D鍗�    0 鍐橲D鍗�
+*			uint16_t block_cnt		璇诲啓鍧椾釜鏁�
+*			uint32_t use_dma		1 浣跨敤DMA鎼�繍鏁版嵁
+* 杈�    鍑�: uint32_t				SD_RES_OK 鎿嶄綔鎴愬姛    SD_RES_ERR 鎿嶄綔澶辫触    SD_RES_TIMEOUT 鎿嶄綔瓒呮椂
+* 娉ㄦ剰浜嬮」: 鏃�
 ******************************************************************************************************************************************/
-uint32_t _SDIO_SendCmd(uint32_t cmd, uint32_t arg, uint32_t _resp_type, uint32_t *resp_data, uint32_t have_data, uint32_t data_read, uint16_t block_cnt, uint32_t use_dma)
+uint32_t _SDIO_SendCmd(uint32_t cmd, uint32_t arg, uint32_t resp_type, uint32_t *resp_data, uint32_t have_data, uint32_t data_read, uint16_t block_cnt, uint32_t use_dma)
 {	
 	SDIO->BLK &= ~SDIO_BLK_COUNT_Msk;
 	SDIO->BLK |= (block_cnt << SDIO_BLK_COUNT_Pos);
@@ -341,7 +341,7 @@ uint32_t _SDIO_SendCmd(uint32_t cmd, uint32_t arg, uint32_t _resp_type, uint32_t
 				(0               << SDIO_CMD_CMDTYPE_Pos)   |
 				(0               << SDIO_CMD_IDXCHECK_Pos)  |
 				(0               << SDIO_CMD_CRCCHECK_Pos)  |
-				(_resp_type      << SDIO_CMD_RESPTYPE_Pos)  |
+				(resp_type       << SDIO_CMD_RESPTYPE_Pos)  |
 				(have_data       << SDIO_CMD_HAVEDATA_Pos)  |
 				(data_read       << SDIO_CMD_DIRREAD_Pos)   |
 				((block_cnt > 1) << SDIO_CMD_MULTBLK_Pos)   |
@@ -366,14 +366,14 @@ uint32_t _SDIO_SendCmd(uint32_t cmd, uint32_t arg, uint32_t _resp_type, uint32_t
 	}
 	SDIO->IF = SDIO_IF_CMDDONE_Msk;
 	
-	if(_resp_type == SD_RESP_32b)
+	if(resp_type == SD_RESP_32b)
 	{
 		resp_data[0] = SDIO->RESP[0];
 	}
-	else if(_resp_type == SD_RESP_128b)
+	else if(resp_type == SD_RESP_128b)
 	{
-		//寄存器中将CID/CSD[127-8]依次存放在了RESP3-0[119-0],最低位的CRC被丢掉
-		//读出数据时调整了顺序,将CID/CSD[127-8]存放在resp_data0-3[127-8],最低8位填充0x00
+		//瀵勫瓨鍣ㄤ腑灏咰ID/CSD[127-8]渚濇�瀛樻斁鍦ㄤ簡RESP3-0[119-0]锛屾渶浣庝綅鐨凜RC琚�涪鎺�
+		//璇诲嚭鏁版嵁鏃惰皟鏁翠簡椤哄簭锛屽皢CID/CSD[127-8]瀛樻斁鍦╮esp_data0-3[127-8]锛屾渶浣�8浣嶅~鍏�0x00
 		resp_data[0] = (SDIO->RESP[3] << 8) + ((SDIO->RESP[2] >> 24) & 0xFF);
 		resp_data[1] = (SDIO->RESP[2] << 8) + ((SDIO->RESP[1] >> 24) & 0xFF);
 		resp_data[2] = (SDIO->RESP[1] << 8) + ((SDIO->RESP[0] >> 24) & 0xFF);
@@ -538,7 +538,7 @@ void parseCSD(uint32_t CSD_Tab[4])
 		/*!< Byte 10 */
 		tmp = (uint8_t)((CSD_Tab[2] & 0x0000FF00) >> 8);
 		
-		SD_cardInfo.CardCapacity = (SD_cardInfo.SD_csd.DeviceSize + 1) * 512 * 1024;
+		SD_cardInfo.CardCapacity = (uint64_t)(SD_cardInfo.SD_csd.DeviceSize + 1) * 512 * 1024;
 		SD_cardInfo.CardBlockSize = 512;    
 	}
 	

+ 8 - 8
bsp/swm320/libraries/SWM320_StdPeriph_Driver/SWM320_sdio.h

@@ -35,10 +35,10 @@
 #define SD_CMD_SDIO_RW_EXTENDED                    ((uint8_t)53)
 
 
-#define SD_RESP_NO			0	//0 ÎÞÏìÓ¦
-#define SD_RESP_32b			2	//2 32λÏìÓ¦
-#define SD_RESP_128b		1	//1 128λÏìÓ¦
-#define SD_RESP_32b_busy	3	//3 32λÏìÓ¦£¬check Busy after response
+#define SD_RESP_NO			0	//0 无�应
+#define SD_RESP_32b			2	//2 32��应
+#define SD_RESP_128b		1	//1 128��应
+#define SD_RESP_32b_busy	3	//3 32��应,check Busy after response
 
 #define SD_BUSWIDTH_1b		0
 #define SD_BUSWIDTH_4b		2
@@ -133,11 +133,11 @@ uint32_t SDIO_MultiBlockRead(uint32_t block_addr, uint16_t block_cnt, uint32_t b
 uint32_t SDIO_DMABlockWrite(uint32_t block_addr, uint16_t block_cnt, uint32_t buff[]);
 uint32_t SDIO_DMABlockRead(uint32_t block_addr, uint16_t block_cnt, uint32_t buff[]);
 
-uint32_t _SDIO_SendCmd(uint32_t cmd, uint32_t arg, uint32_t _resp_type, uint32_t *resp_data, uint32_t have_data, uint32_t data_read, uint16_t block_cnt, uint32_t use_dma);
+uint32_t _SDIO_SendCmd(uint32_t cmd, uint32_t arg, uint32_t resp_type, uint32_t *resp_data, uint32_t have_data, uint32_t data_read, uint16_t block_cnt, uint32_t use_dma);
 
-#define SDIO_SendCmd(cmd, arg, _resp_type, resp_data)                                      _SDIO_SendCmd(cmd, arg, _resp_type, resp_data, 0, 0, 0, 0)
-#define SDIO_SendCmdWithData(cmd, arg, _resp_type, resp_data, data_read, block_cnt)        _SDIO_SendCmd(cmd, arg, _resp_type, resp_data, 1, data_read, block_cnt, 0)
-#define SDIO_SendCmdWithDataByDMA(cmd, arg, _resp_type, resp_data, data_read, block_cnt)   _SDIO_SendCmd(cmd, arg, _resp_type, resp_data, 1, data_read, block_cnt, 1)
+#define SDIO_SendCmd(cmd, arg, resp_type, resp_data)                                      _SDIO_SendCmd(cmd, arg, resp_type, resp_data, 0, 0, 0, 0)
+#define SDIO_SendCmdWithData(cmd, arg, resp_type, resp_data, data_read, block_cnt)        _SDIO_SendCmd(cmd, arg, resp_type, resp_data, 1, data_read, block_cnt, 0)
+#define SDIO_SendCmdWithDataByDMA(cmd, arg, resp_type, resp_data, data_read, block_cnt)   _SDIO_SendCmd(cmd, arg, resp_type, resp_data, 1, data_read, block_cnt, 1)
 
 void parseCID(uint32_t CID_Tab[4]);
 void parseCSD(uint32_t CID_Tab[4]);

+ 23 - 23
bsp/swm320/libraries/SWM320_StdPeriph_Driver/SWM320_sdram.c

@@ -1,10 +1,10 @@
 /****************************************************************************************************************************************** 
-* ÎļþÃû³Æ: SWM320_sdram.c
-* ¹¦ÄÜ˵Ã÷:	SWM320µ¥Æ¬»úµÄSDRAMÇý¶¯³ÌÐò
-* ¼¼ÊõÖ§³Ö:	http://www.synwit.com.cn/e/tool/gbook/?bid=1
-* ×¢ÒâÊÂÏî:
-* °æ±¾ÈÕÆÚ: V1.1.0		2017Äê10ÔÂ25ÈÕ
-* Éý¼¶¼Ç¼: 
+* 文件�称: SWM320_sdram.c
+* 功能说明:	SWM320�片机的SDRAM驱动程�
+* 技术支�:	http://www.synwit.com.cn/e/tool/gbook/?bid=1
+* 注�事项:
+* 版本日期: V1.1.0		2017年10月25日
+* �级记录: 
 *
 *
 *******************************************************************************************************************************************
@@ -22,11 +22,11 @@
 #include "SWM320_sdram.h"
 
 /****************************************************************************************************************************************** 
-* º¯ÊýÃû³Æ:	SDRAM_Init()
-* ¹¦ÄÜ˵Ã÷:	SDRAM¿ØÖÆÆ÷³õʼ»¯
-* Êä    Èë: SDRAM_InitStructure * initStruct    °üº¬ SDRAM ¿ØÖÆÆ÷Ïà¹ØÉ趨ֵµÄ½á¹¹Ìå
-* Êä    ³ö: ÎÞ
-* ×¢ÒâÊÂÏî: ÎÞ
+* 函数�称:	SDRAM_Init()
+* 功能说明:	SDRAM控制器�始化
+* 输    入: SDRAM_InitStructure * initStruct    包� SDRAM 控制器相关设定值的结构体
+* 输    出: 无
+* 注�事项: 无
 ******************************************************************************************************************************************/
 void SDRAM_Init(SDRAM_InitStructure * initStruct)
 {
@@ -35,9 +35,9 @@ void SDRAM_Init(SDRAM_InitStructure * initStruct)
 	SYS->CLKEN |= (1 << SYS_CLKEN_SDRAM_Pos);
 	
 	SYS->CLKDIV &= ~SYS_CLKDIV_SDRAM_Msk;
-	SYS->CLKDIV |= (1 << SYS_CLKDIV_SDRAM_Pos);		//2·ÖƵ
+	SYS->CLKDIV |= (1 << SYS_CLKDIV_SDRAM_Pos);		//2分频
 	
-	SDRAMC->CR0 = (2 << SDRAMC_CR0_BURSTLEN_Pos) |	//2 Burst LengthΪ4
+	SDRAMC->CR0 = (2 << SDRAMC_CR0_BURSTLEN_Pos) |	//2 Burst Length为4
 				  (initStruct->CASLatency << SDRAMC_CR0_CASDELAY_Pos);
 	
 	SDRAMC->CR1 = (initStruct->CellSize << SDRAMC_CR1_CELLSIZE_Pos) |
@@ -69,11 +69,11 @@ void SDRAM_Init(SDRAM_InitStructure * initStruct)
 }
 
 /****************************************************************************************************************************************** 
-* º¯ÊýÃû³Æ:	SDRAM_Enable()
-* ¹¦ÄÜ˵Ã÷:	SDRAMʹÄÜ£¬Ê¹Äܺó¿É¶ÁдSDRAM
-* Êä    Èë: ÎÞ
-* Êä    ³ö: ÎÞ
-* ×¢ÒâÊÂÏî: ÎÞ
+* 函数�称:	SDRAM_Enable()
+* 功能说明:	SDRAM使能,使能��读写SDRAM
+* 输    入: 无
+* 输    出: 无
+* 注�事项: 无
 ******************************************************************************************************************************************/
 void SDRAM_Enable(void)
 {
@@ -86,11 +86,11 @@ void SDRAM_Enable(void)
 }
 
 /****************************************************************************************************************************************** 
-* º¯ÊýÃû³Æ:	SDRAM_Disable()
-* ¹¦ÄÜ˵Ã÷:	SDRAM½ûÄÜ£¬½ûÄܺóSDRAM¿ÅÁ£½øÈëµÍ¹¦ºÄģʽ¡¢²¢×ÔˢУ¬²»¿É¶Áд
-* Êä    Èë: ÎÞ
-* Êä    ³ö: ÎÞ
-* ×¢ÒâÊÂÏî: ÎÞ
+* 函数�称:	SDRAM_Disable()
+* 功能说明:	SDRAM�能,�能�SDRAM颗粒进入低功耗模��并自刷新,��读写
+* 输    入: 无
+* 输    出: 无
+* 注�事项: 无
 ******************************************************************************************************************************************/
 void SDRAM_Disable(void)
 {

+ 8 - 8
bsp/swm320/libraries/SWM320_StdPeriph_Driver/SWM320_sdram.h

@@ -2,17 +2,17 @@
 #define __SWM320_SDRAM_H__
 
 typedef struct {	
-	uint8_t CellSize;			// SDRAM颗粒的容量,SDRAM_CELLSIZE_16Mb、SDRAM_CELLSIZE_64Mb、SDRAM_CELLSIZE_128Mb、SDRAM_CELLSIZE_256Mb
-	uint8_t CellBank;			// SDRAM颗粒有几个bank,SDRAM_CELLBANK_2、SDRAM_CELLBANK_4
-	uint8_t CellWidth;			// SDRAM颗粒的位宽,SDRAM_CELLWIDTH_16、SDRAM_CELLWIDTH_32
-	uint8_t CASLatency;			// 列地址到有效数据输出间隔,SDRAM_CASLATENCY_2、SDRAM_CASLATENCY_3
+	uint8_t CellSize;			// SDRAM棰楃矑鐨勫�閲忥紝SDRAM_CELLSIZE_16Mb銆丼DRAM_CELLSIZE_64Mb銆丼DRAM_CELLSIZE_128Mb銆丼DRAM_CELLSIZE_256Mb
+	uint8_t CellBank;			// SDRAM棰楃矑鏈夊嚑涓猙ank锛孲DRAM_CELLBANK_2銆丼DRAM_CELLBANK_4
+	uint8_t CellWidth;			// SDRAM棰楃矑鐨勪綅瀹斤紝SDRAM_CELLWIDTH_16銆丼DRAM_CELLWIDTH_32
+	uint8_t CASLatency;			// 鍒楀湴鍧€鍒版湁鏁堟暟鎹�緭鍑洪棿闅旓紝SDRAM_CASLATENCY_2銆丼DRAM_CASLATENCY_3
 	
 	uint8_t TimeTMRD;			// MRS to New Command
 	uint8_t TimeTRRD;			// Activate to activate on different banks
-	uint8_t TimeTRAS;			// Self refresh time,最小Self-refresh周期
-	uint8_t TimeTRC;			// Row cycle delay,Refresh命令到Activate命令间延时,也是两个连续Refresh命令间延时
-	uint8_t TimeTRCD;			// Row to column delay,行地址到列地址间延时,也即Activate命令到读写命令间延时
-	uint8_t TimeTRP;			// Row precharge delay,Precharge命令到另一个命令间延时
+	uint8_t TimeTRAS;			// Self refresh time锛屾渶灏廠elf-refresh鍛ㄦ湡
+	uint8_t TimeTRC;			// Row cycle delay锛孯efresh鍛戒护鍒癆ctivate鍛戒护闂村欢鏃讹紝涔熸槸涓や釜杩炵画Refresh鍛戒护闂村欢鏃�
+	uint8_t TimeTRCD;			// Row to column delay锛岃�鍦板潃鍒板垪鍦板潃闂村欢鏃讹紝涔熷嵆Activate鍛戒护鍒拌�鍐欏懡浠ら棿寤舵椂
+	uint8_t TimeTRP;			// Row precharge delay锛孭recharge鍛戒护鍒板彟涓€涓�懡浠ら棿寤舵椂
 } SDRAM_InitStructure;
 
 #define SDRAM_CELLSIZE_16Mb		3

+ 203 - 203
bsp/swm320/libraries/SWM320_StdPeriph_Driver/SWM320_spi.c

@@ -1,10 +1,10 @@
 /****************************************************************************************************************************************** 
-* ÎļþÃû³Æ:	SWM320_spi.c
-* ¹¦ÄÜ˵Ã÷:	SWM320µ¥Æ¬»úµÄSPI¹¦ÄÜÇý¶¯¿â
-* ¼¼ÊõÖ§³Ö:	http://www.synwit.com.cn/e/tool/gbook/?bid=1
-* ×¢ÒâÊÂÏî:
-* °æ±¾ÈÕÆÚ:	V1.1.0		2017Äê10ÔÂ25ÈÕ
-* Éý¼¶¼Ç¼:  
+* 文件�称:	SWM320_spi.c
+* 功能说明:	SWM320�片机的SPI功能驱动库
+* 技术支�:	http://www.synwit.com.cn/e/tool/gbook/?bid=1
+* 注�事项:
+* 版本日期:	V1.1.0		2017年10月25日
+* �级记录:  
 *
 *
 *******************************************************************************************************************************************
@@ -23,12 +23,12 @@
 
 
 /****************************************************************************************************************************************** 
-* º¯ÊýÃû³Æ:	SPI_Init()
-* ¹¦ÄÜ˵Ã÷:	SPIͬ²½´®Ðнӿڳõʼ»¯£¬°üÀ¨Ö¡³¤¶ÈÉ趨¡¢Ê±ÐòÉ趨¡¢ËÙ¶ÈÉ趨¡¢ÖжÏÉ趨¡¢FIFO´¥·¢É趨
-* Êä    Èë: SPI_TypeDef * SPIx		Ö¸¶¨Òª±»ÉèÖõÄSPI£¬ÓÐЧֵ°üÀ¨SPI0¡¢SPI1
-*			SPI_InitStructure * initStruct	°üº¬SPIÏà¹ØÉ趨ֵµÄ½á¹¹Ìå
-* Êä    ³ö: ÎÞ
-* ×¢ÒâÊÂÏî: ÎÞ
+* 函数�称:	SPI_Init()
+* 功能说明:	SPI�步串行接��始化,包括帧长度设定�时�设定�速度设定�中断设定�FIFO触�设定
+* 输    入: SPI_TypeDef * SPIx		指定�被设置的SPI,有效值包括SPI0�SPI1
+*			SPI_InitStructure * initStruct	包�SPI相关设定值的结构体
+* 输    出: 无
+* 注�事项: 无
 ******************************************************************************************************************************************/
 void SPI_Init(SPI_TypeDef * SPIx, SPI_InitStructure * initStruct)
 {
@@ -39,11 +39,11 @@ void SPI_Init(SPI_TypeDef * SPIx, SPI_InitStructure * initStruct)
 		break;
 
 	case ((uint32_t)SPI1):
-		SYS->CLKEN |= (0x01 << SYS_CLKEN_SPI0_Pos);		//ÓëSPI0ʹÓÃͬһλʱÖÓʹÄÜ
+		SYS->CLKEN |= (0x01 << SYS_CLKEN_SPI0_Pos);		//与SPI0使用�一�时钟使能
 		break;
 	}
 	
-	SPI_Close(SPIx);	//һЩ¹Ø¼ü¼Ä´æÆ÷Ö»ÄÜÔÚSPI¹Ø±ÕʱÉèÖÃ
+	SPI_Close(SPIx);	//一些关键寄存器�能在SPI关闭时设置
 	
 	SPIx->CTRL &= ~(SPI_CTRL_FFS_Msk | SPI_CTRL_CPHA_Msk | SPI_CTRL_CPOL_Msk |
 				  SPI_CTRL_SIZE_Msk | SPI_CTRL_MSTR_Msk | SPI_CTRL_CLKDIV_Msk | SPI_CTRL_SSN_H_Msk);
@@ -55,7 +55,7 @@ void SPI_Init(SPI_TypeDef * SPIx, SPI_InitStructure * initStruct)
 				(initStruct->clkDiv        << SPI_CTRL_CLKDIV_Pos) |
 				(0                         << SPI_CTRL_SSN_H_Pos);
 	
-	SPIx->IF = (0x01 << SPI_IF_RFOVF_Pos);	//Çå³ýÖжϱêÖ¾
+	SPIx->IF = (0x01 << SPI_IF_RFOVF_Pos);	//清除中断标志
 	SPIx->IE &= ~(SPI_IE_RFHF_Msk | SPI_IE_TFHF_Msk | SPI_IE_FTC_Msk);
 	SPIx->IE |= (initStruct->RXHFullIEn << SPI_IE_RFHF_Pos) |
 				(initStruct->TXEmptyIEn << SPI_IE_TFHF_Pos) |
@@ -88,11 +88,11 @@ void SPI_Init(SPI_TypeDef * SPIx, SPI_InitStructure * initStruct)
 }
 
 /****************************************************************************************************************************************** 
-* º¯ÊýÃû³Æ:	SPI_Open()
-* ¹¦ÄÜ˵Ã÷:	SPI´ò¿ª£¬ÔÊÐíÊÕ·¢
-* Êä    Èë: SPI_TypeDef * SPIx		Ö¸¶¨Òª±»ÉèÖõÄSPI£¬ÓÐЧֵ°üÀ¨SPI0¡¢SPI1
-* Êä    ³ö: ÎÞ
-* ×¢ÒâÊÂÏî: ÎÞ
+* 函数�称:	SPI_Open()
+* 功能说明:	SPI打开,�许收�
+* 输    入: SPI_TypeDef * SPIx		指定�被设置的SPI,有效值包括SPI0�SPI1
+* 输    出: 无
+* 注�事项: 无
 ******************************************************************************************************************************************/
 void SPI_Open(SPI_TypeDef * SPIx)
 {
@@ -100,11 +100,11 @@ void SPI_Open(SPI_TypeDef * SPIx)
 }
 
 /****************************************************************************************************************************************** 
-* º¯ÊýÃû³Æ:	SPI_Close()
-* ¹¦ÄÜ˵Ã÷:	SPI¹Ø±Õ£¬½ûÖ¹ÊÕ·¢
-* Êä    Èë: SPI_TypeDef * SPIx		Ö¸¶¨Òª±»ÉèÖõÄSPI£¬ÓÐЧֵ°üÀ¨SPI0¡¢SPI1
-* Êä    ³ö: ÎÞ
-* ×¢ÒâÊÂÏî: ÎÞ
+* 函数�称:	SPI_Close()
+* 功能说明:	SPI关闭,�止收�
+* 输    入: SPI_TypeDef * SPIx		指定�被设置的SPI,有效值包括SPI0�SPI1
+* 输    出: 无
+* 注�事项: 无
 ******************************************************************************************************************************************/
 void SPI_Close(SPI_TypeDef * SPIx)
 {
@@ -112,11 +112,11 @@ void SPI_Close(SPI_TypeDef * SPIx)
 }
 
 /****************************************************************************************************************************************** 
-* º¯ÊýÃû³Æ:	SPI_Read()
-* ¹¦ÄÜ˵Ã÷:	¶Áȡһ¸öÊý¾Ý
-* Êä    Èë: SPI_TypeDef * SPIx		Ö¸¶¨Òª±»ÉèÖõÄSPI£¬ÓÐЧֵ°üÀ¨SPI0¡¢SPI1
-* Êä    ³ö: uint32_t				¶ÁÈ¡µ½µÄÊý¾Ý
-* ×¢ÒâÊÂÏî: ÎÞ
+* 函数�称:	SPI_Read()
+* 功能说明:	读�一个数�
+* 输    入: SPI_TypeDef * SPIx		指定�被设置的SPI,有效值包括SPI0�SPI1
+* 输    出: uint32_t				读�到的数�
+* 注�事项: 无
 ******************************************************************************************************************************************/
 uint32_t SPI_Read(SPI_TypeDef * SPIx)
 {
@@ -124,12 +124,12 @@ uint32_t SPI_Read(SPI_TypeDef * SPIx)
 }
 
 /****************************************************************************************************************************************** 
-* º¯ÊýÃû³Æ:	SPI_Write()
-* ¹¦ÄÜ˵Ã÷:	дÈëÒ»¸öÊý¾Ý
-* Êä    Èë: SPI_TypeDef * SPIx		Ö¸¶¨Òª±»ÉèÖõÄSPI£¬ÓÐЧֵ°üÀ¨SPI0¡¢SPI1
-*			uint32_t				ҪдÈëµÄÊý¾Ý
-* Êä    ³ö: ÎÞ
-* ×¢ÒâÊÂÏî: ÎÞ
+* 函数�称:	SPI_Write()
+* 功能说明:	写入一个数�
+* 输    入: SPI_TypeDef * SPIx		指定�被设置的SPI,有效值包括SPI0�SPI1
+*			uint32_t				�写入的数�
+* 输    出: 无
+* 注�事项: 无
 ******************************************************************************************************************************************/
 void SPI_Write(SPI_TypeDef * SPIx, uint32_t data)
 {
@@ -137,12 +137,12 @@ void SPI_Write(SPI_TypeDef * SPIx, uint32_t data)
 }
 
 /****************************************************************************************************************************************** 
-* º¯ÊýÃû³Æ:	SPI_WriteWithWait()
-* ¹¦ÄÜ˵Ã÷:	дÈëÒ»¸öÊý¾Ý²¢µÈ´ýÊý¾ÝÍêÈ«·¢ËͳöÈ¥
-* Êä    Èë: SPI_TypeDef * SPIx		Ö¸¶¨Òª±»ÉèÖõÄSPI£¬ÓÐЧֵ°üÀ¨SPI0¡¢SPI1¡¢SPI1
-*			uint32_t				ҪдÈëµÄÊý¾Ý
-* Êä    ³ö: ÎÞ
-* ×¢ÒâÊÂÏî: ÎÞ
+* 函数�称:	SPI_WriteWithWait()
+* 功能说明:	写入一个数�并等待数�完全��出去
+* 输    入: SPI_TypeDef * SPIx		指定�被设置的SPI,有效值包括SPI0�SPI1�SPI1
+*			uint32_t				�写入的数�
+* 输    出: 无
+* 注�事项: 无
 ******************************************************************************************************************************************/
 void SPI_WriteWithWait(SPI_TypeDef * SPIx, uint32_t data)
 {
@@ -154,12 +154,12 @@ void SPI_WriteWithWait(SPI_TypeDef * SPIx, uint32_t data)
 }
 
 /****************************************************************************************************************************************** 
-* º¯ÊýÃû³Æ: SPI_ReadWrite()
-* ¹¦ÄÜ˵Ã÷: ·¢ËÍÒ»¸öÊý¾Ý£¬²¢·µ»Ø·¢Ë͹ý³ÌÖнÓÊÕµ½µÄ
-* Êä    Èë: SPI_TypeDef * SPIx		Ö¸¶¨Òª±»ÉèÖõÄSPI£¬ÓÐЧֵ°üÀ¨SPI0¡¢SPI1
-*			uint32_t data 			Òª·¢Ë͵ÄÊý¾Ý
-* Êä    ³ö: uint32_t				½ÓÊÕµ½µÄÊý¾Ý
-* ×¢ÒâÊÂÏî: ¶ÔÓÚͬһ¸öSPIÄ£¿é£¬´Ëº¯Êý²»Ó¦ÓëSPI_Write()»ì×ÅÓã¬ÒòΪSPI_Write()²»Çå³ýSPI_STAT_RFNE״̬
+* 函数�称: SPI_ReadWrite()
+* 功能说明: ��一个数�,并返回��过程中接收到的
+* 输    入: SPI_TypeDef * SPIx		指定�被设置的SPI,有效值包括SPI0�SPI1
+*			uint32_t data 			���的数�
+* 输    出: uint32_t				接收到的数�
+* 注�事项: 对于�一个SPI模�,此函数�应与SPI_Write()混�用,因为SPI_Write()�清除SPI_STAT_RFNE状�
 ******************************************************************************************************************************************/
 uint32_t SPI_ReadWrite(SPI_TypeDef * SPIx, uint32_t data)
 {
@@ -170,11 +170,11 @@ uint32_t SPI_ReadWrite(SPI_TypeDef * SPIx, uint32_t data)
 }
 
 /****************************************************************************************************************************************** 
-* º¯ÊýÃû³Æ:	SPI_IsRXEmpty()
-* ¹¦ÄÜ˵Ã÷:	½ÓÊÕFIFOÊÇ·ñ¿Õ£¬Èç¹û²»¿ÕÔò¿ÉÒÔ¼ÌÐøSPI_Read()
-* Êä    Èë: SPI_TypeDef * SPIx		Ö¸¶¨Òª±»ÉèÖõÄSPI£¬ÓÐЧֵ°üÀ¨SPI0¡¢SPI1
-* Êä    ³ö: uint32_t				1 ½ÓÊÕFIFO¿Õ    0 ½ÓÊÕFIFO·Ç¿Õ
-* ×¢ÒâÊÂÏî: ÎÞ
+* 函数�称:	SPI_IsRXEmpty()
+* 功能说明:	接收FIFO是�空,如果�空则�以继续SPI_Read()
+* 输    入: SPI_TypeDef * SPIx		指定�被设置的SPI,有效值包括SPI0�SPI1
+* 输    出: uint32_t				1 接收FIFO空    0 接收FIFO�空
+* 注�事项: 无
 ******************************************************************************************************************************************/
 uint32_t SPI_IsRXEmpty(SPI_TypeDef * SPIx)
 {
@@ -182,11 +182,11 @@ uint32_t SPI_IsRXEmpty(SPI_TypeDef * SPIx)
 }
 
 /****************************************************************************************************************************************** 
-* º¯ÊýÃû³Æ:	SPI_IsTXFull()
-* ¹¦ÄÜ˵Ã÷:	·¢ËÍFIFOÊÇ·ñÂú£¬Èç¹û²»ÂúÔò¿ÉÒÔ¼ÌÐøSPI_Write()
-* Êä    Èë: SPI_TypeDef * SPIx		Ö¸¶¨Òª±»ÉèÖõÄSPI£¬ÓÐЧֵ°üÀ¨SPI0¡¢SPI1
-* Êä    ³ö: uint32_t				1 ·¢ËÍFIFOÂú    0 ·¢ËÍFIFO²»Âú
-* ×¢ÒâÊÂÏî: ÎÞ
+* 函数�称:	SPI_IsTXFull()
+* 功能说明:	��FIFO是�满,如果�满则�以继续SPI_Write()
+* 输    入: SPI_TypeDef * SPIx		指定�被设置的SPI,有效值包括SPI0�SPI1
+* 输    出: uint32_t				1 ��FIFO满    0 ��FIFO�满
+* 注�事项: 无
 ******************************************************************************************************************************************/
 uint32_t SPI_IsTXFull(SPI_TypeDef * SPIx)
 {
@@ -194,11 +194,11 @@ uint32_t SPI_IsTXFull(SPI_TypeDef * SPIx)
 }
 
 /****************************************************************************************************************************************** 
-* º¯ÊýÃû³Æ:	SPI_IsTXEmpty()
-* ¹¦ÄÜ˵Ã÷:	·¢ËÍFIFOÊÇ·ñ¿Õ
-* Êä    Èë: SPI_TypeDef * SPIx		Ö¸¶¨Òª±»ÉèÖõÄSPI£¬ÓÐЧֵ°üÀ¨SPI0¡¢SPI1
-* Êä    ³ö: uint32_t				1 ·¢ËÍFIFO¿Õ    0 ·¢ËÍFIFO·Ç¿Õ
-* ×¢ÒâÊÂÏî: ÎÞ
+* 函数�称:	SPI_IsTXEmpty()
+* 功能说明:	��FIFO是�空
+* 输    入: SPI_TypeDef * SPIx		指定�被设置的SPI,有效值包括SPI0�SPI1
+* 输    出: uint32_t				1 ��FIFO空    0 ��FIFO�空
+* 注�事项: 无
 ******************************************************************************************************************************************/
 uint32_t SPI_IsTXEmpty(SPI_TypeDef * SPIx)
 {
@@ -207,11 +207,11 @@ uint32_t SPI_IsTXEmpty(SPI_TypeDef * SPIx)
 
 
 /****************************************************************************************************************************************** 
-* º¯ÊýÃû³Æ:	SPI_INTRXHalfFullEn()
-* ¹¦ÄÜ˵Ã÷:	½ÓÊÕFIFO°ëÂúÖжÏʹÄÜ
-* Êä    Èë: SPI_TypeDef * SPIx		Ö¸¶¨Òª±»ÉèÖõÄSPI£¬ÓÐЧֵ°üÀ¨SPI0¡¢SPI1
-* Êä    ³ö: ÎÞ
-* ×¢ÒâÊÂÏî: ÎÞ
+* 函数�称:	SPI_INTRXHalfFullEn()
+* 功能说明:	接收FIFO�满中断使能
+* 输    入: SPI_TypeDef * SPIx		指定�被设置的SPI,有效值包括SPI0�SPI1
+* 输    出: 无
+* 注�事项: 无
 ******************************************************************************************************************************************/
 void SPI_INTRXHalfFullEn(SPI_TypeDef * SPIx)
 {
@@ -219,11 +219,11 @@ void SPI_INTRXHalfFullEn(SPI_TypeDef * SPIx)
 }
 
 /****************************************************************************************************************************************** 
-* º¯ÊýÃû³Æ:	SPI_INTRXHalfFullDis()
-* ¹¦ÄÜ˵Ã÷:	½ÓÊÕFIFO°ëÂúÖжϽûÖ¹
-* Êä    Èë: SPI_TypeDef * SPIx		Ö¸¶¨Òª±»ÉèÖõÄSPI£¬ÓÐЧֵ°üÀ¨SPI0¡¢SPI1
-* Êä    ³ö: ÎÞ
-* ×¢ÒâÊÂÏî: ÎÞ
+* 函数�称:	SPI_INTRXHalfFullDis()
+* 功能说明:	接收FIFO�满中断�止
+* 输    入: SPI_TypeDef * SPIx		指定�被设置的SPI,有效值包括SPI0�SPI1
+* 输    出: 无
+* 注�事项: 无
 ******************************************************************************************************************************************/
 void SPI_INTRXHalfFullDis(SPI_TypeDef * SPIx)
 {
@@ -231,11 +231,11 @@ void SPI_INTRXHalfFullDis(SPI_TypeDef * SPIx)
 }
 
 /****************************************************************************************************************************************** 
-* º¯ÊýÃû³Æ:	SPI_INTRXHalfFullClr()
-* ¹¦ÄÜ˵Ã÷:	½ÓÊÕFIFO°ëÂúÖжϱêÖ¾Çå³ý
-* Êä    Èë: SPI_TypeDef * SPIx		Ö¸¶¨Òª±»ÉèÖõÄSPI£¬ÓÐЧֵ°üÀ¨SPI0¡¢SPI1
-* Êä    ³ö: ÎÞ
-* ×¢ÒâÊÂÏî: ÎÞ
+* 函数�称:	SPI_INTRXHalfFullClr()
+* 功能说明:	接收FIFO�满中断标志清除
+* 输    入: SPI_TypeDef * SPIx		指定�被设置的SPI,有效值包括SPI0�SPI1
+* 输    出: 无
+* 注�事项: 无
 ******************************************************************************************************************************************/
 void SPI_INTRXHalfFullClr(SPI_TypeDef * SPIx)
 {
@@ -243,11 +243,11 @@ void SPI_INTRXHalfFullClr(SPI_TypeDef * SPIx)
 }
 
 /****************************************************************************************************************************************** 
-* º¯ÊýÃû³Æ:	SPI_INTRXHalfFullStat()
-* ¹¦ÄÜ˵Ã÷:	½ÓÊÕFIFO°ëÂúÖжÏ״̬
-* Êä    Èë: SPI_TypeDef * SPIx		Ö¸¶¨Òª±»ÉèÖõÄSPI£¬ÓÐЧֵ°üÀ¨SPI0¡¢SPI1
-* Êä    ³ö: uint32_t				1 ½ÓÊÕFIFO´ïµ½°ëÂú    0 ½ÓÊÕFIFOδ´ïµ½°ëÂú
-* ×¢ÒâÊÂÏî: ÎÞ
+* 函数�称:	SPI_INTRXHalfFullStat()
+* 功能说明:	接收FIFO�满中断状�
+* 输    入: SPI_TypeDef * SPIx		指定�被设置的SPI,有效值包括SPI0�SPI1
+* 输    出: uint32_t				1 接收FIFO达到�满    0 接收FIFO未达到�满
+* 注�事项: 无
 ******************************************************************************************************************************************/
 uint32_t SPI_INTRXHalfFullStat(SPI_TypeDef * SPIx)
 {
@@ -255,11 +255,11 @@ uint32_t SPI_INTRXHalfFullStat(SPI_TypeDef * SPIx)
 }
 
 /****************************************************************************************************************************************** 
-* º¯ÊýÃû³Æ:	SPI_INTRXFullEn()
-* ¹¦ÄÜ˵Ã÷:	½ÓÊÕFIFOÂúÖжÏʹÄÜ
-* Êä    Èë: SPI_TypeDef * SPIx		Ö¸¶¨Òª±»ÉèÖõÄSPI£¬ÓÐЧֵ°üÀ¨SPI0¡¢SPI1
-* Êä    ³ö: ÎÞ
-* ×¢ÒâÊÂÏî: ÎÞ
+* 函数�称:	SPI_INTRXFullEn()
+* 功能说明:	接收FIFO满中断使能
+* 输    入: SPI_TypeDef * SPIx		指定�被设置的SPI,有效值包括SPI0�SPI1
+* 输    出: 无
+* 注�事项: 无
 ******************************************************************************************************************************************/
 void SPI_INTRXFullEn(SPI_TypeDef * SPIx)
 {
@@ -267,11 +267,11 @@ void SPI_INTRXFullEn(SPI_TypeDef * SPIx)
 }
 
 /****************************************************************************************************************************************** 
-* º¯ÊýÃû³Æ:	SPI_INTRXFullDis()
-* ¹¦ÄÜ˵Ã÷:	½ÓÊÕFIFOÂúÖжϽûÖ¹
-* Êä    Èë: SPI_TypeDef * SPIx		Ö¸¶¨Òª±»ÉèÖõÄSPI£¬ÓÐЧֵ°üÀ¨SPI0¡¢SPI1
-* Êä    ³ö: ÎÞ
-* ×¢ÒâÊÂÏî: ÎÞ
+* 函数�称:	SPI_INTRXFullDis()
+* 功能说明:	接收FIFO满中断�止
+* 输    入: SPI_TypeDef * SPIx		指定�被设置的SPI,有效值包括SPI0�SPI1
+* 输    出: 无
+* 注�事项: 无
 ******************************************************************************************************************************************/
 void SPI_INTRXFullDis(SPI_TypeDef * SPIx)
 {
@@ -279,11 +279,11 @@ void SPI_INTRXFullDis(SPI_TypeDef * SPIx)
 }
 
 /****************************************************************************************************************************************** 
-* º¯ÊýÃû³Æ:	SPI_INTRXFullClr()
-* ¹¦ÄÜ˵Ã÷:	½ÓÊÕFIFOÂúÖжϱêÖ¾Çå³ý
-* Êä    Èë: SPI_TypeDef * SPIx		Ö¸¶¨Òª±»ÉèÖõÄSPI£¬ÓÐЧֵ°üÀ¨SPI0¡¢SPI1
-* Êä    ³ö: ÎÞ
-* ×¢ÒâÊÂÏî: ÎÞ
+* 函数�称:	SPI_INTRXFullClr()
+* 功能说明:	接收FIFO满中断标志清除
+* 输    入: SPI_TypeDef * SPIx		指定�被设置的SPI,有效值包括SPI0�SPI1
+* 输    出: 无
+* 注�事项: 无
 ******************************************************************************************************************************************/
 void SPI_INTRXFullClr(SPI_TypeDef * SPIx)
 {
@@ -291,11 +291,11 @@ void SPI_INTRXFullClr(SPI_TypeDef * SPIx)
 }
 
 /****************************************************************************************************************************************** 
-* º¯ÊýÃû³Æ:	SPI_INTRXFullStat()
-* ¹¦ÄÜ˵Ã÷:	½ÓÊÕFIFOÂúÖжÏ״̬
-* Êä    Èë: SPI_TypeDef * SPIx		Ö¸¶¨Òª±»ÉèÖõÄSPI£¬ÓÐЧֵ°üÀ¨SPI0¡¢SPI1
-* Êä    ³ö: uint32_t				1 ½ÓÊÕFIFOÂú    0 ½ÓÊÕFIFOδÂú
-* ×¢ÒâÊÂÏî: ÎÞ
+* 函数�称:	SPI_INTRXFullStat()
+* 功能说明:	接收FIFO满中断状�
+* 输    入: SPI_TypeDef * SPIx		指定�被设置的SPI,有效值包括SPI0�SPI1
+* 输    出: uint32_t				1 接收FIFO满    0 接收FIFO未满
+* 注�事项: 无
 ******************************************************************************************************************************************/
 uint32_t SPI_INTRXFullStat(SPI_TypeDef * SPIx)
 {
@@ -303,11 +303,11 @@ uint32_t SPI_INTRXFullStat(SPI_TypeDef * SPIx)
 }
 
 /****************************************************************************************************************************************** 
-* º¯ÊýÃû³Æ:	SPI_INTRXOverflowEn()
-* ¹¦ÄÜ˵Ã÷:	½ÓÊÕFIFOÒç³öÖжÏʹÄÜ
-* Êä    Èë: SPI_TypeDef * SPIx		Ö¸¶¨Òª±»ÉèÖõÄSPI£¬ÓÐЧֵ°üÀ¨SPI0¡¢SPI1
-* Êä    ³ö: ÎÞ
-* ×¢ÒâÊÂÏî: ÎÞ
+* 函数�称:	SPI_INTRXOverflowEn()
+* 功能说明:	接收FIFO溢出中断使能
+* 输    入: SPI_TypeDef * SPIx		指定�被设置的SPI,有效值包括SPI0�SPI1
+* 输    出: 无
+* 注�事项: 无
 ******************************************************************************************************************************************/
 void SPI_INTRXOverflowEn(SPI_TypeDef * SPIx)
 {
@@ -315,11 +315,11 @@ void SPI_INTRXOverflowEn(SPI_TypeDef * SPIx)
 }
 
 /****************************************************************************************************************************************** 
-* º¯ÊýÃû³Æ:	SPI_INTRXOverflowDis()
-* ¹¦ÄÜ˵Ã÷:	½ÓÊÕFIFOÒç³öÖжϽûÖ¹
-* Êä    Èë: SPI_TypeDef * SPIx		Ö¸¶¨Òª±»ÉèÖõÄSPI£¬ÓÐЧֵ°üÀ¨SPI0¡¢SPI1
-* Êä    ³ö: ÎÞ
-* ×¢ÒâÊÂÏî: ÎÞ
+* 函数�称:	SPI_INTRXOverflowDis()
+* 功能说明:	接收FIFO溢出中断�止
+* 输    入: SPI_TypeDef * SPIx		指定�被设置的SPI,有效值包括SPI0�SPI1
+* 输    出: 无
+* 注�事项: 无
 ******************************************************************************************************************************************/
 void SPI_INTRXOverflowDis(SPI_TypeDef * SPIx)
 {
@@ -327,11 +327,11 @@ void SPI_INTRXOverflowDis(SPI_TypeDef * SPIx)
 }
 
 /****************************************************************************************************************************************** 
-* º¯ÊýÃû³Æ:	SPI_INTRXOverflowClr()
-* ¹¦ÄÜ˵Ã÷:	½ÓÊÕFIFOÒç³öÖжϱêÖ¾Çå³ý
-* Êä    Èë: SPI_TypeDef * SPIx		Ö¸¶¨Òª±»ÉèÖõÄSPI£¬ÓÐЧֵ°üÀ¨SPI0¡¢SPI1
-* Êä    ³ö: ÎÞ
-* ×¢ÒâÊÂÏî: ÎÞ
+* 函数�称:	SPI_INTRXOverflowClr()
+* 功能说明:	接收FIFO溢出中断标志清除
+* 输    入: SPI_TypeDef * SPIx		指定�被设置的SPI,有效值包括SPI0�SPI1
+* 输    出: 无
+* 注�事项: 无
 ******************************************************************************************************************************************/
 void SPI_INTRXOverflowClr(SPI_TypeDef * SPIx)
 {
@@ -339,11 +339,11 @@ void SPI_INTRXOverflowClr(SPI_TypeDef * SPIx)
 }
 
 /****************************************************************************************************************************************** 
-* º¯ÊýÃû³Æ:	SPI_INTRXOverflowStat()
-* ¹¦ÄÜ˵Ã÷:	½ÓÊÕFIFOÒç³öÖжÏ״̬
-* Êä    Èë: SPI_TypeDef * SPIx		Ö¸¶¨Òª±»ÉèÖõÄSPI£¬ÓÐЧֵ°üÀ¨SPI0¡¢SPI1
-* Êä    ³ö: uint32_t				1 ½ÓÊÕFIFOÒç³ö    0 ½ÓÊÕFIFOδÒç³ö
-* ×¢ÒâÊÂÏî: ÎÞ
+* 函数�称:	SPI_INTRXOverflowStat()
+* 功能说明:	接收FIFO溢出中断状�
+* 输    入: SPI_TypeDef * SPIx		指定�被设置的SPI,有效值包括SPI0�SPI1
+* 输    出: uint32_t				1 接收FIFO溢出    0 接收FIFO未溢出
+* 注�事项: 无
 ******************************************************************************************************************************************/
 uint32_t SPI_INTRXOverflowStat(SPI_TypeDef * SPIx)
 {
@@ -351,11 +351,11 @@ uint32_t SPI_INTRXOverflowStat(SPI_TypeDef * SPIx)
 }
 
 /****************************************************************************************************************************************** 
-* º¯ÊýÃû³Æ:	SPI_INTTXHalfFullEn()
-* ¹¦ÄÜ˵Ã÷:	·¢ËÍFIFO°ëÂúÖжÏʹÄÜ
-* Êä    Èë: SPI_TypeDef * SPIx		Ö¸¶¨Òª±»ÉèÖõÄSPI£¬ÓÐЧֵ°üÀ¨SPI0¡¢SPI1
-* Êä    ³ö: ÎÞ
-* ×¢ÒâÊÂÏî: ÎÞ
+* 函数�称:	SPI_INTTXHalfFullEn()
+* 功能说明:	��FIFO�满中断使能
+* 输    入: SPI_TypeDef * SPIx		指定�被设置的SPI,有效值包括SPI0�SPI1
+* 输    出: 无
+* 注�事项: 无
 ******************************************************************************************************************************************/
 void SPI_INTTXHalfFullEn(SPI_TypeDef * SPIx)
 {
@@ -363,11 +363,11 @@ void SPI_INTTXHalfFullEn(SPI_TypeDef * SPIx)
 }
 
 /****************************************************************************************************************************************** 
-* º¯ÊýÃû³Æ:	SPI_INTTXHalfFullDis()
-* ¹¦ÄÜ˵Ã÷:	·¢ËÍFIFO°ëÂúÖжϽûÖ¹
-* Êä    Èë: SPI_TypeDef * SPIx		Ö¸¶¨Òª±»ÉèÖõÄSPI£¬ÓÐЧֵ°üÀ¨SPI0¡¢SPI1
-* Êä    ³ö: ÎÞ
-* ×¢ÒâÊÂÏî: ÎÞ
+* 函数�称:	SPI_INTTXHalfFullDis()
+* 功能说明:	��FIFO�满中断�止
+* 输    入: SPI_TypeDef * SPIx		指定�被设置的SPI,有效值包括SPI0�SPI1
+* 输    出: 无
+* 注�事项: 无
 ******************************************************************************************************************************************/
 void SPI_INTTXHalfFullDis(SPI_TypeDef * SPIx)
 {
@@ -375,11 +375,11 @@ void SPI_INTTXHalfFullDis(SPI_TypeDef * SPIx)
 }
 
 /****************************************************************************************************************************************** 
-* º¯ÊýÃû³Æ:	SPI_INTTXHalfFullClr()
-* ¹¦ÄÜ˵Ã÷:	·¢ËÍFIFO°ëÂúÖжϱêÖ¾Çå³ý
-* Êä    Èë: SPI_TypeDef * SPIx		Ö¸¶¨Òª±»ÉèÖõÄSPI£¬ÓÐЧֵ°üÀ¨SPI0¡¢SPI1
-* Êä    ³ö: ÎÞ
-* ×¢ÒâÊÂÏî: ÎÞ
+* 函数�称:	SPI_INTTXHalfFullClr()
+* 功能说明:	��FIFO�满中断标志清除
+* 输    入: SPI_TypeDef * SPIx		指定�被设置的SPI,有效值包括SPI0�SPI1
+* 输    出: 无
+* 注�事项: 无
 ******************************************************************************************************************************************/
 void SPI_INTTXHalfFullClr(SPI_TypeDef * SPIx)
 {
@@ -387,11 +387,11 @@ void SPI_INTTXHalfFullClr(SPI_TypeDef * SPIx)
 }
 
 /****************************************************************************************************************************************** 
-* º¯ÊýÃû³Æ:	SPI_INTTXHalfFullStat()
-* ¹¦ÄÜ˵Ã÷:	·¢ËÍFIFO°ëÂúÖжÏ״̬
-* Êä    Èë: SPI_TypeDef * SPIx		Ö¸¶¨Òª±»ÉèÖõÄSPI£¬ÓÐЧֵ°üÀ¨SPI0¡¢SPI1
-* Êä    ³ö: uint32_t				1 ·¢ËÍFIFO´ïµ½°ëÂú    0 ·¢ËÍFIFOδ´ïµ½°ëÂú
-* ×¢ÒâÊÂÏî: ÎÞ
+* 函数�称:	SPI_INTTXHalfFullStat()
+* 功能说明:	��FIFO�满中断状�
+* 输    入: SPI_TypeDef * SPIx		指定�被设置的SPI,有效值包括SPI0�SPI1
+* 输    出: uint32_t				1 ��FIFO达到�满    0 ��FIFO未达到�满
+* 注�事项: 无
 ******************************************************************************************************************************************/
 uint32_t SPI_INTTXHalfFullStat(SPI_TypeDef * SPIx)
 {
@@ -399,11 +399,11 @@ uint32_t SPI_INTTXHalfFullStat(SPI_TypeDef * SPIx)
 }
 
 /****************************************************************************************************************************************** 
-* º¯ÊýÃû³Æ:	SPI_INTTXEmptyEn()
-* ¹¦ÄÜ˵Ã÷:	·¢ËÍFIFO¿ÕÖжÏʹÄÜ
-* Êä    Èë: SPI_TypeDef * SPIx		Ö¸¶¨Òª±»ÉèÖõÄSPI£¬ÓÐЧֵ°üÀ¨SPI0¡¢SPI1
-* Êä    ³ö: ÎÞ
-* ×¢ÒâÊÂÏî: ÎÞ
+* 函数�称:	SPI_INTTXEmptyEn()
+* 功能说明:	��FIFO空中断使能
+* 输    入: SPI_TypeDef * SPIx		指定�被设置的SPI,有效值包括SPI0�SPI1
+* 输    出: 无
+* 注�事项: 无
 ******************************************************************************************************************************************/
 void SPI_INTTXEmptyEn(SPI_TypeDef * SPIx)
 {
@@ -411,11 +411,11 @@ void SPI_INTTXEmptyEn(SPI_TypeDef * SPIx)
 }
 
 /****************************************************************************************************************************************** 
-* º¯ÊýÃû³Æ:	SPI_INTTXEmptyDis()
-* ¹¦ÄÜ˵Ã÷:	·¢ËÍFIFO¿ÕÖжϽûÖ¹
-* Êä    Èë: SPI_TypeDef * SPIx		Ö¸¶¨Òª±»ÉèÖõÄSPI£¬ÓÐЧֵ°üÀ¨SPI0¡¢SPI1
-* Êä    ³ö: ÎÞ
-* ×¢ÒâÊÂÏî: ÎÞ
+* 函数�称:	SPI_INTTXEmptyDis()
+* 功能说明:	��FIFO空中断�止
+* 输    入: SPI_TypeDef * SPIx		指定�被设置的SPI,有效值包括SPI0�SPI1
+* 输    出: 无
+* 注�事项: 无
 ******************************************************************************************************************************************/
 void SPI_INTTXEmptyDis(SPI_TypeDef * SPIx)
 {
@@ -423,11 +423,11 @@ void SPI_INTTXEmptyDis(SPI_TypeDef * SPIx)
 }
 
 /****************************************************************************************************************************************** 
-* º¯ÊýÃû³Æ:	SPI_INTTXEmptyClr()
-* ¹¦ÄÜ˵Ã÷:	·¢ËÍFIFO¿ÕÖжϱêÖ¾Çå³ý
-* Êä    Èë: SPI_TypeDef * SPIx		Ö¸¶¨Òª±»ÉèÖõÄSPI£¬ÓÐЧֵ°üÀ¨SPI0¡¢SPI1
-* Êä    ³ö: ÎÞ
-* ×¢ÒâÊÂÏî: ÎÞ
+* 函数�称:	SPI_INTTXEmptyClr()
+* 功能说明:	��FIFO空中断标志清除
+* 输    入: SPI_TypeDef * SPIx		指定�被设置的SPI,有效值包括SPI0�SPI1
+* 输    出: 无
+* 注�事项: 无
 ******************************************************************************************************************************************/
 void SPI_INTTXEmptyClr(SPI_TypeDef * SPIx)
 {
@@ -435,11 +435,11 @@ void SPI_INTTXEmptyClr(SPI_TypeDef * SPIx)
 }
 
 /****************************************************************************************************************************************** 
-* º¯ÊýÃû³Æ:	SPI_INTTXEmptyStat()
-* ¹¦ÄÜ˵Ã÷:	·¢ËÍFIFO¿ÕÖжÏ״̬
-* Êä    Èë: SPI_TypeDef * SPIx		Ö¸¶¨Òª±»ÉèÖõÄSPI£¬ÓÐЧֵ°üÀ¨SPI0¡¢SPI1
-* Êä    ³ö: uint32_t				1 ·¢ËÍFIFO¿Õ    0 ·¢ËÍFIFO·Ç¿Õ
-* ×¢ÒâÊÂÏî: ÎÞ
+* 函数�称:	SPI_INTTXEmptyStat()
+* 功能说明:	��FIFO空中断状�
+* 输    入: SPI_TypeDef * SPIx		指定�被设置的SPI,有效值包括SPI0�SPI1
+* 输    出: uint32_t				1 ��FIFO空    0 ��FIFO�空
+* 注�事项: 无
 ******************************************************************************************************************************************/
 uint32_t SPI_INTTXEmptyStat(SPI_TypeDef * SPIx)
 {
@@ -447,11 +447,11 @@ uint32_t SPI_INTTXEmptyStat(SPI_TypeDef * SPIx)
 }
 
 /****************************************************************************************************************************************** 
-* º¯ÊýÃû³Æ:	SPI_INTTXCompleteEn()
-* ¹¦ÄÜ˵Ã÷:	·¢ËÍFIFO¿ÕÇÒ·¢ËÍÒÆÎ»¼Ä´æÆ÷¿ÕÖжÏʹÄÜ
-* Êä    Èë: SPI_TypeDef * SPIx		Ö¸¶¨Òª±»ÉèÖõÄSPI£¬ÓÐЧֵ°üÀ¨SPI0¡¢SPI1
-* Êä    ³ö: ÎÞ
-* ×¢ÒâÊÂÏî: ÎÞ
+* 函数�称:	SPI_INTTXCompleteEn()
+* 功能说明:	��FIFO空且��移�寄存器空中断使能
+* 输    入: SPI_TypeDef * SPIx		指定�被设置的SPI,有效值包括SPI0�SPI1
+* 输    出: 无
+* 注�事项: 无
 ******************************************************************************************************************************************/
 void SPI_INTTXCompleteEn(SPI_TypeDef * SPIx)
 {
@@ -459,11 +459,11 @@ void SPI_INTTXCompleteEn(SPI_TypeDef * SPIx)
 }
 
 /****************************************************************************************************************************************** 
-* º¯ÊýÃû³Æ:	SPI_INTTXCompleteDis()
-* ¹¦ÄÜ˵Ã÷:	·¢ËÍFIFO¿ÕÇÒ·¢ËÍÒÆÎ»¼Ä´æÆ÷¿ÕÖжϽûÖ¹
-* Êä    Èë: SPI_TypeDef * SPIx		Ö¸¶¨Òª±»ÉèÖõÄSPI£¬ÓÐЧֵ°üÀ¨SPI0¡¢SPI1
-* Êä    ³ö: ÎÞ
-* ×¢ÒâÊÂÏî: ÎÞ
+* 函数�称:	SPI_INTTXCompleteDis()
+* 功能说明:	��FIFO空且��移�寄存器空中断�止
+* 输    入: SPI_TypeDef * SPIx		指定�被设置的SPI,有效值包括SPI0�SPI1
+* 输    出: 无
+* 注�事项: 无
 ******************************************************************************************************************************************/
 void SPI_INTTXCompleteDis(SPI_TypeDef * SPIx)
 {
@@ -471,11 +471,11 @@ void SPI_INTTXCompleteDis(SPI_TypeDef * SPIx)
 }
 
 /****************************************************************************************************************************************** 
-* º¯ÊýÃû³Æ:	SPI_INTTXCompleteClr()
-* ¹¦ÄÜ˵Ã÷:	·¢ËÍFIFO¿ÕÇÒ·¢ËÍÒÆÎ»¼Ä´æÆ÷¿ÕÖжÏ״̬Çå³ý
-* Êä    Èë: SPI_TypeDef * SPIx		Ö¸¶¨Òª±»ÉèÖõÄSPI£¬ÓÐЧֵ°üÀ¨SPI0¡¢SPI1
-* Êä    ³ö: ÎÞ
-* ×¢ÒâÊÂÏî: ÎÞ
+* 函数�称:	SPI_INTTXCompleteClr()
+* 功能说明:	��FIFO空且��移�寄存器空中断状�清除
+* 输    入: SPI_TypeDef * SPIx		指定�被设置的SPI,有效值包括SPI0�SPI1
+* 输    出: 无
+* 注�事项: 无
 ******************************************************************************************************************************************/
 void SPI_INTTXCompleteClr(SPI_TypeDef * SPIx)
 {
@@ -483,11 +483,11 @@ void SPI_INTTXCompleteClr(SPI_TypeDef * SPIx)
 }
 
 /****************************************************************************************************************************************** 
-* º¯ÊýÃû³Æ:	SPI_INTTXCompleteStat()
-* ¹¦ÄÜ˵Ã÷:	·¢ËÍFIFO¿ÕÇÒ·¢ËÍÒÆÎ»¼Ä´æÆ÷¿ÕÖжÏ״̬
-* Êä    Èë: SPI_TypeDef * SPIx		Ö¸¶¨Òª±»ÉèÖõÄSPI£¬ÓÐЧֵ°üÀ¨SPI0¡¢SPI1
-* Êä    ³ö: uint32_t				1 ·¢ËÍFIFO¿ÕÇÒ·¢ËÍÒÆÎ»¼Ä´æÆ÷¿Õ    0 ·¢ËÍFIFO»ò·¢ËÍÒÆÎ»¼Ä´æÆ÷·Ç¿Õ
-* ×¢ÒâÊÂÏî: ÎÞ
+* 函数�称:	SPI_INTTXCompleteStat()
+* 功能说明:	��FIFO空且��移�寄存器空中断状�
+* 输    入: SPI_TypeDef * SPIx		指定�被设置的SPI,有效值包括SPI0�SPI1
+* 输    出: uint32_t				1 ��FIFO空且��移�寄存器空    0 ��FIFO或��移�寄存器�空
+* 注�事项: 无
 ******************************************************************************************************************************************/
 uint32_t SPI_INTTXCompleteStat(SPI_TypeDef * SPIx)
 {
@@ -495,11 +495,11 @@ uint32_t SPI_INTTXCompleteStat(SPI_TypeDef * SPIx)
 }
 
 /****************************************************************************************************************************************** 
-* º¯ÊýÃû³Æ:	SPI_INTTXWordCompleteEn()
-* ¹¦ÄÜ˵Ã÷:	·¢ËÍFIFO×Ö·¢ËÍÍê³ÉÖжÏʹÄÜ
-* Êä    Èë: SPI_TypeDef * SPIx		Ö¸¶¨Òª±»ÉèÖõÄSPI£¬ÓÐЧֵ°üÀ¨SPI0¡¢SPI1
-* Êä    ³ö: ÎÞ
-* ×¢ÒâÊÂÏî: ÎÞ
+* 函数�称:	SPI_INTTXWordCompleteEn()
+* 功能说明:	��FIFO字��完�中断使能
+* 输    入: SPI_TypeDef * SPIx		指定�被设置的SPI,有效值包括SPI0�SPI1
+* 输    出: 无
+* 注�事项: 无
 ******************************************************************************************************************************************/
 void SPI_INTTXWordCompleteEn(SPI_TypeDef * SPIx)
 {
@@ -507,11 +507,11 @@ void SPI_INTTXWordCompleteEn(SPI_TypeDef * SPIx)
 }
 
 /****************************************************************************************************************************************** 
-* º¯ÊýÃû³Æ:	SPI_INTTXWordCompleteDis()
-* ¹¦ÄÜ˵Ã÷:	·¢ËÍFIFO×Ö·¢ËÍÍê³ÉÖжϽûÖ¹
-* Êä    Èë: SPI_TypeDef * SPIx		Ö¸¶¨Òª±»ÉèÖõÄSPI£¬ÓÐЧֵ°üÀ¨SPI0¡¢SPI1
-* Êä    ³ö: ÎÞ
-* ×¢ÒâÊÂÏî: ÎÞ
+* 函数�称:	SPI_INTTXWordCompleteDis()
+* 功能说明:	��FIFO字��完�中断�止
+* 输    入: SPI_TypeDef * SPIx		指定�被设置的SPI,有效值包括SPI0�SPI1
+* 输    出: 无
+* 注�事项: 无
 ******************************************************************************************************************************************/
 void SPI_INTTXWordCompleteDis(SPI_TypeDef * SPIx)
 {
@@ -519,11 +519,11 @@ void SPI_INTTXWordCompleteDis(SPI_TypeDef * SPIx)
 }
 
 /****************************************************************************************************************************************** 
-* º¯ÊýÃû³Æ:	SPI_INTTXWordCompleteClr()
-* ¹¦ÄÜ˵Ã÷:	·¢ËÍFIFO×Ö·¢ËÍÍê³ÉÖжϱêÖ¾Çå³ý
-* Êä    Èë: SPI_TypeDef * SPIx		Ö¸¶¨Òª±»ÉèÖõÄSPI£¬ÓÐЧֵ°üÀ¨SPI0¡¢SPI1
-* Êä    ³ö: ÎÞ
-* ×¢ÒâÊÂÏî: ÎÞ
+* 函数�称:	SPI_INTTXWordCompleteClr()
+* 功能说明:	��FIFO字��完�中断标志清除
+* 输    入: SPI_TypeDef * SPIx		指定�被设置的SPI,有效值包括SPI0�SPI1
+* 输    出: 无
+* 注�事项: 无
 ******************************************************************************************************************************************/
 void SPI_INTTXWordCompleteClr(SPI_TypeDef * SPIx)
 {
@@ -531,11 +531,11 @@ void SPI_INTTXWordCompleteClr(SPI_TypeDef * SPIx)
 }
 
 /****************************************************************************************************************************************** 
-* º¯ÊýÃû³Æ:	SPI_INTTXWordCompleteStat()
-* ¹¦ÄÜ˵Ã÷:	·¢ËÍFIFO×Ö·¢ËÍÍê³ÉÖжÏ״̬
-* Êä    Èë: SPI_TypeDef * SPIx		Ö¸¶¨Òª±»ÉèÖõÄSPI£¬ÓÐЧֵ°üÀ¨SPI0¡¢SPI1
-* Êä    ³ö: uint32_t				1 ·¢ËÍÍê³ÉÖжÏÒÑ·¢Éú    0 ·¢ËÍÍê³ÉÖжÏδ·¢Éú
-* ×¢ÒâÊÂÏî: ÎÞ
+* 函数�称:	SPI_INTTXWordCompleteStat()
+* 功能说明:	��FIFO字��完�中断状�
+* 输    入: SPI_TypeDef * SPIx		指定�被设置的SPI,有效值包括SPI0�SPI1
+* 输    出: uint32_t				1 ��完�中断已�生    0 ��完�中断未�生
+* 注�事项: 无
 ******************************************************************************************************************************************/
 uint32_t SPI_INTTXWordCompleteStat(SPI_TypeDef * SPIx)
 {

+ 21 - 21
bsp/swm320/libraries/SWM320_StdPeriph_Driver/SWM320_spi.h

@@ -2,26 +2,26 @@
 #define __SWM320_SPI_H__
 
 typedef struct {
-	uint8_t  FrameFormat;	//帧格式:SPI_FORMAT_SPI、SPI_FORMAT_TI_SSI
-	uint8_t  SampleEdge;	//在SPI帧格式下,选择数据采样边沿:SPI_FIRST_EDGE、SPI_SECOND_EDGE
-	uint8_t  IdleLevel;		//在SPI帧格式下,选择空闲时(无数据传输时)时钟线的电平:SPI_LOW_LEVEL、SPI_HIGH_LEVEL
-	uint8_t  WordSize;		//字长度, 有效值4-16
-	uint8_t  Master;		//1 主机模式    0 从机模式
-	uint8_t  clkDiv;		//SPI_CLK = SYS_CLK / clkDiv,有效值:SPI_CLKDIV_4、SPI_CLKDIV_8、... ... 、SPI_CLKDIV_512
+	uint8_t  FrameFormat;	//甯ф牸寮忥細SPI_FORMAT_SPI銆丼PI_FORMAT_TI_SSI
+	uint8_t  SampleEdge;	//鍦⊿PI甯ф牸寮忎笅锛岄€夋嫨鏁版嵁閲囨牱杈规部锛歋PI_FIRST_EDGE銆丼PI_SECOND_EDGE
+	uint8_t  IdleLevel;		//鍦⊿PI甯ф牸寮忎笅锛岄€夋嫨绌洪棽鏃讹紙鏃犳暟鎹�紶杈撴椂锛夋椂閽熺嚎鐨勭數骞筹細SPI_LOW_LEVEL銆丼PI_HIGH_LEVEL
+	uint8_t  WordSize;		//瀛楅暱搴�, 鏈夋晥鍊�4-16
+	uint8_t  Master;		//1 涓绘満妯″紡    0 浠庢満妯″紡
+	uint8_t  clkDiv;		//SPI_CLK = SYS_CLK / clkDiv锛屾湁鏁堝€硷細SPI_CLKDIV_4銆丼PI_CLKDIV_8銆�... ... 銆丼PI_CLKDIV_512
 	
-	uint8_t  RXHFullIEn;	//接收FIFO半满中断使能
-	uint8_t  TXEmptyIEn;	//发送FIFO  空中断使能
-	uint8_t  TXCompleteIEn;	//发送FIFO  空且发送移位寄存器空中断使能
+	uint8_t  RXHFullIEn;	//鎺ユ敹FIFO鍗婃弧涓�柇浣胯兘
+	uint8_t  TXEmptyIEn;	//鍙戦€丗IFO  绌轰腑鏂�娇鑳�
+	uint8_t  TXCompleteIEn;	//鍙戦€丗IFO  绌轰笖鍙戦€佺Щ浣嶅瘎瀛樺櫒绌轰腑鏂�娇鑳�
 } SPI_InitStructure;
 
-#define SPI_FORMAT_SPI			0		//Motorola SPI 格式
-#define SPI_FORMAT_TI_SSI		1		//TI SSI 格式
+#define SPI_FORMAT_SPI			0		//Motorola SPI 鏍煎紡
+#define SPI_FORMAT_TI_SSI		1		//TI SSI 鏍煎紡
 
-#define SPI_FIRST_EDGE			0		//第一个时钟沿开始采样
-#define SPI_SECOND_EDGE			1		//第二个时钟沿开始采样
+#define SPI_FIRST_EDGE			0		//绗�竴涓�椂閽熸部寮€濮嬮噰鏍�
+#define SPI_SECOND_EDGE			1		//绗�簩涓�椂閽熸部寮€濮嬮噰鏍�
 
-#define SPI_LOW_LEVEL			0		//空闲时时钟线保持低电平
-#define SPI_HIGH_LEVEL			1		//空闲时时钟线保持高电平
+#define SPI_LOW_LEVEL			0		//绌洪棽鏃舵椂閽熺嚎淇濇寔浣庣數骞�
+#define SPI_HIGH_LEVEL			1		//绌洪棽鏃舵椂閽熺嚎淇濇寔楂樼數骞�
 
 #define SPI_CLKDIV_4			0
 #define SPI_CLKDIV_8			1
@@ -34,18 +34,18 @@ typedef struct {
 
 
 
-void SPI_Init(SPI_TypeDef * SPIx, SPI_InitStructure * initStruct);		//SPI初始化
-void SPI_Open(SPI_TypeDef * SPIx);										//SPI打开,允许收发
-void SPI_Close(SPI_TypeDef * SPIx);										//SPI关闭,禁止收发
+void SPI_Init(SPI_TypeDef * SPIx, SPI_InitStructure * initStruct);		//SPI鍒濆�鍖�
+void SPI_Open(SPI_TypeDef * SPIx);										//SPI鎵撳紑锛屽厑璁告敹鍙�
+void SPI_Close(SPI_TypeDef * SPIx);										//SPI鍏抽棴锛岀�姝㈡敹鍙�
 
 uint32_t SPI_Read(SPI_TypeDef * SPIx);
 void SPI_Write(SPI_TypeDef * SPIx, uint32_t data);
 void SPI_WriteWithWait(SPI_TypeDef * SPIx, uint32_t data);
 uint32_t SPI_ReadWrite(SPI_TypeDef * SPIx, uint32_t data);
 
-uint32_t SPI_IsRXEmpty(SPI_TypeDef * SPIx);				//接收FIFO是否空,如果不空则可以继续SPI_Read()
-uint32_t SPI_IsTXFull(SPI_TypeDef * SPIx);				//发送FIFO是否满,如果不满则可以继续SPI_Write()
-uint32_t SPI_IsTXEmpty(SPI_TypeDef * SPIx);				//发送FIFO是否空
+uint32_t SPI_IsRXEmpty(SPI_TypeDef * SPIx);				//鎺ユ敹FIFO鏄�惁绌猴紝濡傛灉涓嶇┖鍒欏彲浠ョ户缁璖PI_Read()
+uint32_t SPI_IsTXFull(SPI_TypeDef * SPIx);				//鍙戦€丗IFO鏄�惁婊★紝濡傛灉涓嶆弧鍒欏彲浠ョ户缁璖PI_Write()
+uint32_t SPI_IsTXEmpty(SPI_TypeDef * SPIx);				//鍙戦€丗IFO鏄�惁绌�
 
 
 void SPI_INTRXHalfFullEn(SPI_TypeDef * SPIx);

+ 13 - 13
bsp/swm320/libraries/SWM320_StdPeriph_Driver/SWM320_sram.c

@@ -1,10 +1,10 @@
 /****************************************************************************************************************************************** 
-* 恅璃靡備: SWM320_sram.c
-* 髡夔佽隴:	SWM320等⑵儂腔SRAMЙ雄最唗
-* 撮扲盓厥:	http://www.synwit.com.cn/e/tool/gbook/?bid=1
-* 蛁砩岈砐:
-* 唳掛゜ヽ: V1.1.0		2017爛10堎25゜
-* 汔撰暮翹: 
+* ��辣�滨妍: SWM320_sram.c
+* �蠘�霂湔�:	SWM320�閧��箇�SRAM撽勗𢆡蝔见�
+* ���舀𣈲��:	http://www.synwit.com.cn/e/tool/gbook/?bid=1
+* 瘜冽�鈭钅★:
+* ��𧋦�交�: V1.1.0		2017撟�10��25��
+* ��漣霈啣�: 
 *
 *
 *******************************************************************************************************************************************
@@ -23,17 +23,17 @@
 
 
 /****************************************************************************************************************************************** 
-* 滲杅靡備:	SRAM_Init()
-* 髡夔佽隴:	SRAM諷秶け場宎趙
-* 怀    ⻌: SRAM_InitStructure * initStruct    婦漪 SRAM 諷秶け眈壽扢隅硉腔賦凳极
-* 怀    堤: 拸
-* 蛁砩岈砐: 拸
+* �賣㺭�滨妍:	SRAM_Init()
+* �蠘�霂湔�:	SRAM�批��典�憪见�
+* 颲�    ��: SRAM_InitStructure * initStruct    ��鉄 SRAM �批��函㮾�唾挽摰𡁜�潛�蝏𤘪�雿�
+* 颲�    ��: ��
+* 瘜冽�鈭钅★: ��
 ******************************************************************************************************************************************/
 void SRAM_Init(SRAM_InitStructure * initStruct)
 {
 	uint32_t i;
 	
-	// 饜离SRAMゴ剒猁芃陔狟SDRAM諷秶け
+	// �滨蔭SRAM�漤�閬���唬�SDRAM�批���
 	do {
 		SYS->CLKEN |=  (1 << SYS_CLKEN_SDRAM_Pos);
 		
@@ -49,5 +49,5 @@ void SRAM_Init(SRAM_InitStructure * initStruct)
 	
 	SRAMC->CR = (initStruct->ClkDiv << SRAMC_CR_RWTIME_Pos) |
 				(initStruct->DataWidth << SRAMC_CR_BYTEIF_Pos) |
-			    (0 << SRAMC_CR_HBLBDIS_Pos);	// 妏夔趼誹﹜圉趼溼恀
+			    (0 << SRAMC_CR_HBLBDIS_Pos);	// 雿輯�摮𡑒����摮𡑒挪��
 }

+ 2 - 2
bsp/swm320/libraries/SWM320_StdPeriph_Driver/SWM320_sram.h

@@ -2,8 +2,8 @@
 #define __SWM320_SRAM_H__
 
 typedef struct {
-	uint8_t ClkDiv;				//SRAM_CLKDIV_5...SRAM_CLKDIV_16,根据SRAM芯片所能跑的最高频率选择合适分频
-	uint8_t DataWidth;			//SRAM_DATAWIDTH_8、SRAM_DATAWIDTH_16
+	uint8_t ClkDiv;				//SRAM_CLKDIV_5...SRAM_CLKDIV_16锛屾牴鎹甋RAM鑺�墖鎵€鑳借窇鐨勬渶楂橀�鐜囬€夋嫨鍚堥€傚垎棰�
+	uint8_t DataWidth;			//SRAM_DATAWIDTH_8銆丼RAM_DATAWIDTH_16
 } SRAM_InitStructure;
 
 

+ 91 - 91
bsp/swm320/libraries/SWM320_StdPeriph_Driver/SWM320_timr.c

@@ -1,10 +1,10 @@
 /****************************************************************************************************************************************** 
-* ÎļþÃû³Æ: SWM320_timr.c
-* ¹¦ÄÜ˵Ã÷:	SWM320µ¥Æ¬»úµÄ¼ÆÊýÆ÷/¶¨Ê±Æ÷¹¦ÄÜÇý¶¯¿â
-* ¼¼ÊõÖ§³Ö:	http://www.synwit.com.cn/e/tool/gbook/?bid=1
-* ×¢ÒâÊÂÏî:
-* °æ±¾ÈÕÆÚ:	V1.1.0		2017Äê10ÔÂ25ÈÕ
-* Éý¼¶¼Ç¼: 
+* 文件�称: SWM320_timr.c
+* 功能说明:	SWM320�片机的计数器/定时器功能驱动库
+* 技术支�:	http://www.synwit.com.cn/e/tool/gbook/?bid=1
+* 注�事项:
+* 版本日期:	V1.1.0		2017年10月25日
+* �级记录: 
 *
 *
 *******************************************************************************************************************************************
@@ -23,20 +23,20 @@
 
 
 /****************************************************************************************************************************************** 
-* º¯ÊýÃû³Æ: TIMR_Init()
-* ¹¦ÄÜ˵Ã÷:	TIMR¶¨Ê±Æ÷/¼ÆÊýÆ÷³õʼ»¯
-* Êä    Èë: TIMR_TypeDef * TIMRx	Ö¸¶¨Òª±»ÉèÖõĶ¨Ê±Æ÷£¬ÓÐЧֵ°üÀ¨TIMR0¡¢TIMR1¡¢TIMR2¡¢TIMR3¡¢TIMR4¡¢TIMR5
-*			uint32_t mode			TIMR_MODE_TIMER ¶¨Ê±Æ÷ģʽ    TIMR_MODE_COUNTER ¼ÆÊýÆ÷ģʽ
-*			uint32_t period			¶¨Ê±/¼ÆÊýÖÜÆÚ
-*			uint32_t int_en			ÖжÏʹÄÜ
-* Êä    ³ö: ÎÞ
-* ×¢ÒâÊÂÏî: ÎÞ
+* 函数�称: TIMR_Init()
+* 功能说明:	TIMR定时器/计数器�始化
+* 输    入: TIMR_TypeDef * TIMRx	指定�被设置的定时器,有效值包括TIMR0�TIMR1�TIMR2�TIMR3�TIMR4�TIMR5
+*			uint32_t mode			TIMR_MODE_TIMER 定时器模�    TIMR_MODE_COUNTER 计数器模�
+*			uint32_t period			定时/计数周期
+*			uint32_t int_en			中断使能
+* 输    出: 无
+* 注�事项: 无
 ******************************************************************************************************************************************/
 void TIMR_Init(TIMR_TypeDef * TIMRx, uint32_t mode, uint32_t period, uint32_t int_en)
 {
 	SYS->CLKEN |= (0x01 << SYS_CLKEN_TIMR_Pos);
 	
-	TIMR_Stop(TIMRx);	//һЩ¹Ø¼ü¼Ä´æÆ÷Ö»ÄÜÔÚ¶¨Ê±Æ÷ֹͣʱÉèÖÃ
+	TIMR_Stop(TIMRx);	//一些关键寄存器�能在定时器�止时设置
 	
 	TIMRx->CTRL &= ~TIMR_CTRL_CLKSRC_Msk;
 	TIMRx->CTRL |= mode << TIMR_CTRL_CLKSRC_Pos;
@@ -46,7 +46,7 @@ void TIMR_Init(TIMR_TypeDef * TIMRx, uint32_t mode, uint32_t period, uint32_t in
 	switch((uint32_t)TIMRx)
 	{
 	case ((uint32_t)TIMR0):
-		TIMRG->IF = (1 << TIMRG_IF_TIMR0_Pos);		//ʹÄÜÖжÏǰÇå³ýÖжϱêÖ¾
+		TIMRG->IF = (1 << TIMRG_IF_TIMR0_Pos);		//使能中断�清除中断标志
 		TIMRG->IE &= ~TIMRG_IE_TIMR0_Msk;
 		TIMRG->IE |= (int_en << TIMRG_IE_TIMR0_Pos);
 	
@@ -96,11 +96,11 @@ void TIMR_Init(TIMR_TypeDef * TIMRx, uint32_t mode, uint32_t period, uint32_t in
 }
 
 /****************************************************************************************************************************************** 
-* º¯ÊýÃû³Æ:	TIMR_Start()
-* ¹¦ÄÜ˵Ã÷:	Æô¶¯¶¨Ê±Æ÷£¬´Ó³õʼֵ¿ªÊ¼¼ÆÊ±/¼ÆÊý
-* Êä    Èë: TIMR_TypeDef * TIMRx	Ö¸¶¨Òª±»ÉèÖõĶ¨Ê±Æ÷£¬¿Éȡֵ°üÀ¨TIMR0¡¢TIMR1¡¢TIMR2¡¢TIMR3¡¢TIMR4¡¢TIMR5
-* Êä    ³ö: ÎÞ
-* ×¢ÒâÊÂÏî: ÎÞ
+* 函数�称:	TIMR_Start()
+* 功能说明:	�动定时器,从�始值开始计时/计数
+* 输    入: TIMR_TypeDef * TIMRx	指定�被设置的定时器,��值包括TIMR0�TIMR1�TIMR2�TIMR3�TIMR4�TIMR5
+* 输    出: 无
+* 注�事项: 无
 ******************************************************************************************************************************************/
 void TIMR_Start(TIMR_TypeDef * TIMRx)
 {
@@ -108,11 +108,11 @@ void TIMR_Start(TIMR_TypeDef * TIMRx)
 }
 
 /****************************************************************************************************************************************** 
-* º¯ÊýÃû³Æ:	TIMR_Stop()
-* ¹¦ÄÜ˵Ã÷:	Í£Ö¹¶¨Ê±Æ÷
-* Êä    Èë: TIMR_TypeDef * TIMRx	Ö¸¶¨Òª±»ÉèÖõĶ¨Ê±Æ÷£¬¿Éȡֵ°üÀ¨TIMR0¡¢TIMR1¡¢TIMR2¡¢TIMR3¡¢TIMR4¡¢TIMR5
-* Êä    ³ö: ÎÞ
-* ×¢ÒâÊÂÏî: ÎÞ
+* 函数�称:	TIMR_Stop()
+* 功能说明:	�止定时器
+* 输    入: TIMR_TypeDef * TIMRx	指定�被设置的定时器,��值包括TIMR0�TIMR1�TIMR2�TIMR3�TIMR4�TIMR5
+* 输    出: 无
+* 注�事项: 无
 ******************************************************************************************************************************************/
 void TIMR_Stop(TIMR_TypeDef * TIMRx)
 {
@@ -120,11 +120,11 @@ void TIMR_Stop(TIMR_TypeDef * TIMRx)
 }
 
 /****************************************************************************************************************************************** 
-* º¯ÊýÃû³Æ:	TIMR_Halt()
-* ¹¦ÄÜ˵Ã÷:	ÔÝÍ£¶¨Ê±Æ÷£¬¼ÆÊýÖµ±£³Ö²»±ä
-* Êä    Èë: TIMR_TypeDef * TIMRx	Ö¸¶¨Òª±»ÉèÖõĶ¨Ê±Æ÷£¬¿Éȡֵ°üÀ¨TIMR0¡¢TIMR1¡¢TIMR2¡¢TIMR3¡¢TIMR4¡¢TIMR5
-* Êä    ³ö: ÎÞ
-* ×¢ÒâÊÂÏî: ÎÞ
+* 函数�称:	TIMR_Halt()
+* 功能说明:	暂�定时器,计数值����
+* 输    入: TIMR_TypeDef * TIMRx	指定�被设置的定时器,��值包括TIMR0�TIMR1�TIMR2�TIMR3�TIMR4�TIMR5
+* 输    出: 无
+* 注�事项: 无
 ******************************************************************************************************************************************/
 void TIMR_Halt(TIMR_TypeDef * TIMRx)
 {
@@ -157,11 +157,11 @@ void TIMR_Halt(TIMR_TypeDef * TIMRx)
 }
 
 /****************************************************************************************************************************************** 
-* º¯ÊýÃû³Æ:	TIMR_Resume()
-* ¹¦ÄÜ˵Ã÷:	»Ö¸´¶¨Ê±Æ÷£¬´ÓÔÝÍ£´¦¼ÌÐø¼ÆÊý
-* Êä    Èë: TIMR_TypeDef * TIMRx	Ö¸¶¨Òª±»ÉèÖõĶ¨Ê±Æ÷£¬¿Éȡֵ°üÀ¨TIMR0¡¢TIMR1¡¢TIMR2¡¢TIMR3¡¢TIMR4¡¢TIMR5
-* Êä    ³ö: ÎÞ
-* ×¢ÒâÊÂÏî: ÎÞ
+* 函数�称:	TIMR_Resume()
+* 功能说明:	��定时器,从暂�处继续计数
+* 输    入: TIMR_TypeDef * TIMRx	指定�被设置的定时器,��值包括TIMR0�TIMR1�TIMR2�TIMR3�TIMR4�TIMR5
+* 输    出: 无
+* 注�事项: 无
 ******************************************************************************************************************************************/
 void TIMR_Resume(TIMR_TypeDef * TIMRx)
 {
@@ -194,12 +194,12 @@ void TIMR_Resume(TIMR_TypeDef * TIMRx)
 }
 
 /****************************************************************************************************************************************** 
-* º¯ÊýÃû³Æ: TIMR_SetPeriod()
-* ¹¦ÄÜ˵Ã÷:	ÉèÖö¨Ê±/¼ÆÊýÖÜÆÚ
-* Êä    Èë: TIMR_TypeDef * TIMRx	Ö¸¶¨Òª±»ÉèÖõĶ¨Ê±Æ÷£¬¿Éȡֵ°üÀ¨TIMR0¡¢TIMR1¡¢TIMR2¡¢TIMR3¡¢TIMR4¡¢TIMR5
-*			uint32_t period			¶¨Ê±/¼ÆÊýÖÜÆÚ
-* Êä    ³ö: ÎÞ
-* ×¢ÒâÊÂÏî: ÎÞ
+* 函数�称: TIMR_SetPeriod()
+* 功能说明:	设置定时/计数周期
+* 输    入: TIMR_TypeDef * TIMRx	指定�被设置的定时器,��值包括TIMR0�TIMR1�TIMR2�TIMR3�TIMR4�TIMR5
+*			uint32_t period			定时/计数周期
+* 输    出: 无
+* 注�事项: 无
 ******************************************************************************************************************************************/
 void TIMR_SetPeriod(TIMR_TypeDef * TIMRx, uint32_t period)
 {
@@ -207,11 +207,11 @@ void TIMR_SetPeriod(TIMR_TypeDef * TIMRx, uint32_t period)
 }
 
 /****************************************************************************************************************************************** 
-* º¯ÊýÃû³Æ: TIMR_GetPeriod()
-* ¹¦ÄÜ˵Ã÷:	»ñÈ¡¶¨Ê±/¼ÆÊýÖÜÆÚ
-* Êä    Èë: TIMR_TypeDef * TIMRx	Ö¸¶¨Òª±»ÉèÖõĶ¨Ê±Æ÷£¬¿Éȡֵ°üÀ¨TIMR0¡¢TIMR1¡¢TIMR2¡¢TIMR3¡¢TIMR4¡¢TIMR5
-* Êä    ³ö: uint32_t				µ±Ç°¶¨Ê±/¼ÆÊýÖÜÆÚ
-* ×¢ÒâÊÂÏî: ÎÞ
+* 函数�称: TIMR_GetPeriod()
+* 功能说明:	获�定时/计数周期
+* 输    入: TIMR_TypeDef * TIMRx	指定�被设置的定时器,��值包括TIMR0�TIMR1�TIMR2�TIMR3�TIMR4�TIMR5
+* 输    出: uint32_t				当�定时/计数周期
+* 注�事项: 无
 ******************************************************************************************************************************************/
 uint32_t TIMR_GetPeriod(TIMR_TypeDef * TIMRx)
 {
@@ -219,11 +219,11 @@ uint32_t TIMR_GetPeriod(TIMR_TypeDef * TIMRx)
 }
 
 /****************************************************************************************************************************************** 
-* º¯ÊýÃû³Æ:	TIMR_GetCurValue()
-* ¹¦ÄÜ˵Ã÷:	»ñÈ¡µ±Ç°¼ÆÊýÖµ
-* Êä    Èë: TIMR_TypeDef * TIMRx	Ö¸¶¨Òª±»ÉèÖõĶ¨Ê±Æ÷£¬¿Éȡֵ°üÀ¨TIMR0¡¢TIMR1¡¢TIMR2¡¢TIMR3¡¢TIMR4¡¢TIMR5
-* Êä    ³ö: uint32_t				µ±Ç°¼ÆÊýÖµ
-* ×¢ÒâÊÂÏî: ÎÞ
+* 函数�称:	TIMR_GetCurValue()
+* 功能说明:	获�当�计数值
+* 输    入: TIMR_TypeDef * TIMRx	指定�被设置的定时器,��值包括TIMR0�TIMR1�TIMR2�TIMR3�TIMR4�TIMR5
+* 输    出: uint32_t				当�计数值
+* 注�事项: 无
 ******************************************************************************************************************************************/
 uint32_t TIMR_GetCurValue(TIMR_TypeDef * TIMRx)
 {
@@ -231,11 +231,11 @@ uint32_t TIMR_GetCurValue(TIMR_TypeDef * TIMRx)
 }
 
 /****************************************************************************************************************************************** 
-* º¯ÊýÃû³Æ:	TIMR_INTEn()
-* ¹¦ÄÜ˵Ã÷:	ʹÄÜÖжÏ
-* Êä    Èë: TIMR_TypeDef * TIMRx	Ö¸¶¨Òª±»ÉèÖõĶ¨Ê±Æ÷£¬¿Éȡֵ°üÀ¨TIMR0¡¢TIMR1¡¢TIMR2¡¢TIMR3¡¢TIMR4¡¢TIMR5
-* Êä    ³ö: ÎÞ
-* ×¢ÒâÊÂÏî: ÎÞ
+* 函数�称:	TIMR_INTEn()
+* 功能说明:	使能中断
+* 输    入: TIMR_TypeDef * TIMRx	指定�被设置的定时器,��值包括TIMR0�TIMR1�TIMR2�TIMR3�TIMR4�TIMR5
+* 输    出: 无
+* 注�事项: 无
 ******************************************************************************************************************************************/
 void TIMR_INTEn(TIMR_TypeDef * TIMRx)
 {
@@ -274,11 +274,11 @@ void TIMR_INTEn(TIMR_TypeDef * TIMRx)
 }
 
 /****************************************************************************************************************************************** 
-* º¯ÊýÃû³Æ: TIMR_INTDis()
-* ¹¦ÄÜ˵Ã÷:	½ûÄÜÖжÏ
-* Êä    Èë: TIMR_TypeDef * TIMRx	Ö¸¶¨Òª±»ÉèÖõĶ¨Ê±Æ÷£¬¿Éȡֵ°üÀ¨TIMR0¡¢TIMR1¡¢TIMR2¡¢TIMR3¡¢TIMR4¡¢TIMR5
-* Êä    ³ö: ÎÞ
-* ×¢ÒâÊÂÏî: ÎÞ
+* 函数�称: TIMR_INTDis()
+* 功能说明:	�能中断
+* 输    入: TIMR_TypeDef * TIMRx	指定�被设置的定时器,��值包括TIMR0�TIMR1�TIMR2�TIMR3�TIMR4�TIMR5
+* 输    出: 无
+* 注�事项: 无
 ******************************************************************************************************************************************/
 void TIMR_INTDis(TIMR_TypeDef * TIMRx)
 {
@@ -311,11 +311,11 @@ void TIMR_INTDis(TIMR_TypeDef * TIMRx)
 }
 
 /****************************************************************************************************************************************** 
-* º¯ÊýÃû³Æ:	TIMR_INTClr()
-* ¹¦ÄÜ˵Ã÷:	Çå³ýÖжϱêÖ¾
-* Êä    Èë: TIMR_TypeDef * TIMRx	Ö¸¶¨Òª±»ÉèÖõĶ¨Ê±Æ÷£¬¿Éȡֵ°üÀ¨TIMR0¡¢TIMR1¡¢TIMR2¡¢TIMR3¡¢TIMR4¡¢TIMR5
-* Êä    ³ö: ÎÞ
-* ×¢ÒâÊÂÏî: ÎÞ
+* 函数�称:	TIMR_INTClr()
+* 功能说明:	清除中断标志
+* 输    入: TIMR_TypeDef * TIMRx	指定�被设置的定时器,��值包括TIMR0�TIMR1�TIMR2�TIMR3�TIMR4�TIMR5
+* 输    出: 无
+* 注�事项: 无
 ******************************************************************************************************************************************/
 void TIMR_INTClr(TIMR_TypeDef * TIMRx)
 {
@@ -348,11 +348,11 @@ void TIMR_INTClr(TIMR_TypeDef * TIMRx)
 }
 
 /****************************************************************************************************************************************** 
-* º¯ÊýÃû³Æ: TIMR_INTStat()
-* ¹¦ÄÜ˵Ã÷:	»ñÈ¡ÖжÏ״̬
-* Êä    Èë: TIMR_TypeDef * TIMRx	Ö¸¶¨Òª±»ÉèÖõĶ¨Ê±Æ÷£¬¿Éȡֵ°üÀ¨TIMR0¡¢TIMR1¡¢TIMR2¡¢TIMR3¡¢TIMR4¡¢TIMR5
-* Êä    ³ö: uint32_t 				0 TIMRxδ²úÉúÖÐ¶Ï    1 TIMRx²úÉúÁËÖжÏ
-* ×¢ÒâÊÂÏî: ÎÞ
+* 函数�称: TIMR_INTStat()
+* 功能说明:	获�中断状�
+* 输    入: TIMR_TypeDef * TIMRx	指定�被设置的定时器,��值包括TIMR0�TIMR1�TIMR2�TIMR3�TIMR4�TIMR5
+* 输    出: uint32_t 				0 TIMRx未产生中断    1 TIMRx产生了中断
+* 注�事项: 无
 ******************************************************************************************************************************************/
 uint32_t TIMR_INTStat(TIMR_TypeDef * TIMRx)
 {
@@ -382,32 +382,32 @@ uint32_t TIMR_INTStat(TIMR_TypeDef * TIMRx)
 
 
 /****************************************************************************************************************************************** 
-* º¯ÊýÃû³Æ: Pulse_Init()
-* ¹¦ÄÜ˵Ã÷:	Âö¿í²âÁ¿¹¦Äܳõʼ»¯
-* Êä    Èë: uint32_t pulse			PULSE_LOW ²âÁ¿µÍÂö³å¿í¶È   PULSE_HIGH ²âÁ¿¸ßÂö³å¿í¶È
-*			uint32_t int_en			ÊÇ·ñʹÄÜÂö³å²âÁ¿Íê³ÉÖжÏ
-* Êä    ³ö: ÎÞ
-* ×¢ÒâÊÂÏî: ÎÞ
+* 函数�称: Pulse_Init()
+* 功能说明:	脉宽测�功能�始化
+* 输    入: uint32_t pulse			PULSE_LOW 测�低脉冲宽度   PULSE_HIGH 测�高脉冲宽度
+*			uint32_t int_en			是�使能脉冲测�完�中断
+* 输    出: 无
+* 注�事项: 无
 ******************************************************************************************************************************************/
 void Pulse_Init(uint32_t pulse, uint32_t int_en)
 {	
 	SYS->CLKEN |= (0x01 << SYS_CLKEN_TIMR_Pos);
 	
-	TIMRG->PCTRL = (0     << TIMRG_PCTRL_CLKSRC_Pos) |		// ϵͳʱÖÓ×÷ΪʱÖÓÔ´
+	TIMRG->PCTRL = (0     << TIMRG_PCTRL_CLKSRC_Pos) |		// 系统时钟作为时钟�
 				   (pulse << TIMRG_PCTRL_HIGH_Pos)   |
 				   (0     << TIMRG_PCTRL_EN_Pos);
 	
-	TIMRG->IE |= (1 << TIMRG_IE_PULSE_Pos);		//ʹÄܲÅÄܲéѯÖжϱêÖ¾
+	TIMRG->IE |= (1 << TIMRG_IE_PULSE_Pos);		//使能�能查询中断标志
 	
 	if(int_en)  NVIC_EnableIRQ(PULSE_IRQn);
 }
 
 /****************************************************************************************************************************************** 
-* º¯ÊýÃû³Æ: Pulse_Start()
-* ¹¦ÄÜ˵Ã÷:	Âö¿í²âÁ¿¹¦ÄÜÆô¶¯£¬²âÁ¿µ½Âö¿íºó»á×Ô¶¯¹Ø±Õ²âÁ¿¹¦ÄÜ
-* Êä    Èë: ÎÞ
-* Êä    ³ö: ÎÞ
-* ×¢ÒâÊÂÏî: ÎÞ
+* 函数�称: Pulse_Start()
+* 功能说明:	脉宽测�功能�动,测�到脉宽�会自动关闭测�功能
+* 输    入: 无
+* 输    出: 无
+* 注�事项: 无
 ******************************************************************************************************************************************/
 void Pulse_Start(void)
 {	
@@ -415,17 +415,17 @@ void Pulse_Start(void)
 }
 
 /****************************************************************************************************************************************** 
-* º¯ÊýÃû³Æ: Pulse_Done()
-* ¹¦ÄÜ˵Ã÷:	Âö¿í²âÁ¿ÊÇ·ñÍê³É
-* Êä    Èë: ÎÞ
-* Êä    ³ö: uint32_t				1 ²âÁ¿ÒÑÍê³É    0 ²âÁ¿Î´Íê³É
-* ×¢ÒâÊÂÏî: ÎÞ
+* 函数�称: Pulse_Done()
+* 功能说明:	脉宽测�是�完�
+* 输    入: 无
+* 输    出: uint32_t				1 测�已完�    0 测�未完�
+* 注�事项: 无
 ******************************************************************************************************************************************/
 uint32_t Pulse_Done(void)
 {
 	if(TIMRG->IF & TIMRG_IF_PULSE_Msk)
 	{
-		TIMRG->IF = TIMRG_IF_PULSE_Msk;		// Çå³ýÖжϱêÖ¾
+		TIMRG->IF = TIMRG_IF_PULSE_Msk;		// 清除中断标志
 		
 		return 1;
 	}

+ 14 - 14
bsp/swm320/libraries/SWM320_StdPeriph_Driver/SWM320_timr.h

@@ -4,20 +4,20 @@
 #define TIMR_MODE_TIMER		0
 #define TIMR_MODE_COUNTER	1
 
-void TIMR_Init(TIMR_TypeDef * TIMRx, uint32_t mode, uint32_t period, uint32_t int_en);	//定时器/计数器初始化
-void TIMR_Start(TIMR_TypeDef * TIMRx);							//启动定时器,从初始值开始计时/计数
-void TIMR_Stop(TIMR_TypeDef * TIMRx);							//停止定时器
-void TIMR_Halt(TIMR_TypeDef * TIMRx);							//暂停定时器,计数值保持不变
-void TIMR_Resume(TIMR_TypeDef * TIMRx);							//恢复定时器,从暂停处继续计数
-
-void TIMR_SetPeriod(TIMR_TypeDef * TIMRx, uint32_t period);		//设置定时/计数周期
-uint32_t TIMR_GetPeriod(TIMR_TypeDef * TIMRx);					//获取定时/计数周期
-uint32_t TIMR_GetCurValue(TIMR_TypeDef * TIMRx);				//获取当前计数值
-
-void TIMR_INTEn(TIMR_TypeDef * TIMRx);							//使能中断
-void TIMR_INTDis(TIMR_TypeDef * TIMRx);							//禁能中断
-void TIMR_INTClr(TIMR_TypeDef * TIMRx);							//清除中断标志
-uint32_t TIMR_INTStat(TIMR_TypeDef * TIMRx);					//获取中断状态
+void TIMR_Init(TIMR_TypeDef * TIMRx, uint32_t mode, uint32_t period, uint32_t int_en);	//瀹氭椂鍣�/璁℃暟鍣ㄥ垵濮嬪寲
+void TIMR_Start(TIMR_TypeDef * TIMRx);							//鍚�姩瀹氭椂鍣�紝浠庡垵濮嬪€煎紑濮嬭�鏃�/璁℃暟
+void TIMR_Stop(TIMR_TypeDef * TIMRx);							//鍋滄�瀹氭椂鍣�
+void TIMR_Halt(TIMR_TypeDef * TIMRx);							//鏆傚仠瀹氭椂鍣�紝璁℃暟鍊间繚鎸佷笉鍙�
+void TIMR_Resume(TIMR_TypeDef * TIMRx);							//鎭㈠�瀹氭椂鍣�紝浠庢殏鍋滃�缁х画璁℃暟
+
+void TIMR_SetPeriod(TIMR_TypeDef * TIMRx, uint32_t period);		//璁剧疆瀹氭椂/璁℃暟鍛ㄦ湡
+uint32_t TIMR_GetPeriod(TIMR_TypeDef * TIMRx);					//鑾峰彇瀹氭椂/璁℃暟鍛ㄦ湡
+uint32_t TIMR_GetCurValue(TIMR_TypeDef * TIMRx);				//鑾峰彇褰撳墠璁℃暟鍊�
+
+void TIMR_INTEn(TIMR_TypeDef * TIMRx);							//浣胯兘涓�柇
+void TIMR_INTDis(TIMR_TypeDef * TIMRx);							//绂佽兘涓�柇
+void TIMR_INTClr(TIMR_TypeDef * TIMRx);							//娓呴櫎涓�柇鏍囧織
+uint32_t TIMR_INTStat(TIMR_TypeDef * TIMRx);					//鑾峰彇涓�柇鐘舵€�
 
 
 

+ 184 - 184
bsp/swm320/libraries/SWM320_StdPeriph_Driver/SWM320_uart.c

@@ -1,10 +1,10 @@
 /****************************************************************************************************************************************** 
-* 恅璃靡備:	SWM320_uart.c
-* 髡夔佽隴:	SWM320等⑵儂腔UART揹諳髡夔Й雄踱
-* 撮扲盓厥:	http://www.synwit.com.cn/e/tool/gbook/?bid=1
-* 蛁砩岈砐: 羶衄晤迡LIN髡夔眈壽腔滲杅
-* 唳掛゜ヽ:	V1.1.0		2017爛10堎25゜
-* 汔撰暮翹: 
+* ��辣�滨妍:	SWM320_uart.c
+* �蠘�霂湔�:	SWM320�閧��箇�UART銝脣藁�蠘�撽勗𢆡摨�
+* ���舀𣈲��:	http://www.synwit.com.cn/e/tool/gbook/?bid=1
+* 瘜冽�鈭钅★: 瘝⊥�蝻硋�LIN�蠘��詨���遆��
+* ��𧋦�交�:	V1.1.0		2017撟�10��25��
+* ��漣霈啣�: 
 *
 *
 *******************************************************************************************************************************************
@@ -23,12 +23,12 @@
 
 
 /****************************************************************************************************************************************** 
-* 滲杅靡備:	UART_Init()
-* 髡夔佽隴:	UART揹諳場宎趙
-* 怀    ⻌: UART_TypeDef * UARTx	硌隅猁掩扢离腔UART揹諳ㄛ衄虴硉婦嬤UART0﹜UART1﹜UART2﹜UART3
-*			UART_InitStructure * initStruct    婦漪UART揹諳眈壽扢隅硉腔賦凳极
-* 怀    堤: 拸
-* 蛁砩岈砐: 拸
+* �賣㺭�滨妍:	UART_Init()
+* �蠘�霂湔�:	UART銝脣藁�嘥���
+* 颲�    ��: UART_TypeDef * UARTx	���閬�◤霈曄蔭��ART銝脣藁嚗峕����澆��柿ART0��ART1��ART2��ART3
+*			UART_InitStructure * initStruct    ��鉄UART銝脣藁�詨�霈曉��潛�蝏𤘪�雿�
+* 颲�    ��: ��
+* 瘜冽�鈭钅★: ��
 ******************************************************************************************************************************************/
 void UART_Init(UART_TypeDef * UARTx, UART_InitStructure * initStruct)
 {	
@@ -51,7 +51,7 @@ void UART_Init(UART_TypeDef * UARTx, UART_InitStructure * initStruct)
 		break;
 	}
 	
-	UART_Close(UARTx);	//珨虳壽瑩敵湔け硐夔婓揹諳壽敕奀扢离
+	UART_Close(UARTx);	//銝�鈭𥕦��桀�摮睃膥�芾��其葡����剜𧒄霈曄蔭
 	
 	UARTx->CTRL |= (0x01 << UART_CTRL_BAUDEN_Pos);
 	UARTx->BAUD &= ~UART_BAUD_BAUD_Msk;
@@ -62,10 +62,10 @@ void UART_Init(UART_TypeDef * UARTx, UART_InitStructure * initStruct)
 				   (initStruct->Parity   << UART_CTRL_PARITY_Pos) |
 				   (initStruct->StopBits << UART_CTRL_STOP2b_Pos);
 	
-	/* 婓SWM320笢ㄛ絞 RXLVL >= RXTHR 奀揖楷笢剿ㄛ⺼彆RXTHR扢离峈0腔趕ㄛ婓帤諉彶善杅擂奀憩頗珨眻揖楷笢剿˙
-	   [坻郋⑵笢ㄛ絞 RXLVL >  RXTHR 奀揖楷笢剿ㄛ峈賤樵SWM320笢RXTHR祥夔峈0腔恀枙ㄛ甜苀珨踱滲杅APIㄛ涴爵蔚RXTHR扢离硉樓珨
+	/* �沒WM320銝哨�敶� RXLVL >= RXTHR �嗉圻�睲葉�哨�憒��RXTHR霈曄蔭銝�0���嚗�銁�芣𦻖�嗅��唳旿�嗅停隡帋��渲圻�睲葉�哨�
+	   �嗡��舐�銝哨�敶� RXLVL >  RXTHR �嗉圻�睲葉�哨�銝箄圾�袖WM320銝苧XTHR銝滩�銝�0��䔮憸矋�撟嗥�銝�摨枏遆�蚊PI嚗諹����RXTHR霈曄蔭�澆�銝�
 	*/
-	switch((uint32_t)UARTx)  // ⻏璃葩弇祥夔ラ錨 NVIC 敵湔けㄛ�祥忒雄ラ壺ㄛ狟醱腔測鎢ラ錨 RXTHR 奀頗絳祡珨眻輛⻌ ISR
+	switch((uint32_t)UARTx)  // 頧臭辣憭滢�銝滩�皜�妟 NVIC 撖���剁��乩��见𢆡皜�膄嚗䔶��Y�隞��皜�妟 RXTHR �嗡�撖潸稲銝��渲��� ISR
     {
     case ((uint32_t)UART0):  NVIC_DisableIRQ(UART0_IRQn);  break;
     case ((uint32_t)UART1):  NVIC_DisableIRQ(UART1_IRQn);  break;
@@ -133,11 +133,11 @@ void UART_Init(UART_TypeDef * UARTx, UART_InitStructure * initStruct)
 }
 
 /****************************************************************************************************************************************** 
-* 滲杅靡備:	UART_Open()
-* 髡夔佽隴:	UART揹諳湖羲
-* 怀    ⻌: UART_TypeDef * UARTx	硌隅猁掩扢离腔UART揹諳ㄛ衄虴硉婦嬤UART0﹜UART1﹜UART2﹜UART3
-* 怀    堤: 拸
-* 蛁砩岈砐: 拸
+* �賣㺭�滨妍:	UART_Open()
+* �蠘�霂湔�:	UART銝脣藁�枏�
+* 颲�    ��: UART_TypeDef * UARTx	���閬�◤霈曄蔭��ART銝脣藁嚗峕����澆��柿ART0��ART1��ART2��ART3
+* 颲�    ��: ��
+* 瘜冽�鈭钅★: ��
 ******************************************************************************************************************************************/
 void UART_Open(UART_TypeDef * UARTx)
 {
@@ -145,11 +145,11 @@ void UART_Open(UART_TypeDef * UARTx)
 }
 
 /****************************************************************************************************************************************** 
-* 滲杅靡備:	UART_Close()
-* 髡夔佽隴:	UART揹諳壽敕
-* 怀    ⻌: UART_TypeDef * UARTx	硌隅猁掩扢离腔UART揹諳ㄛ衄虴硉婦嬤UART0﹜UART1﹜UART2﹜UART3
-* 怀    堤: 拸
-* 蛁砩岈砐: 拸
+* �賣㺭�滨妍:	UART_Close()
+* �蠘�霂湔�:	UART銝脣藁�喲𡡒
+* 颲�    ��: UART_TypeDef * UARTx	���閬�◤霈曄蔭��ART銝脣藁嚗峕����澆��柿ART0��ART1��ART2��ART3
+* 颲�    ��: ��
+* 瘜冽�鈭钅★: ��
 ******************************************************************************************************************************************/
 void UART_Close(UART_TypeDef * UARTx)
 {
@@ -157,12 +157,12 @@ void UART_Close(UART_TypeDef * UARTx)
 }
 
 /****************************************************************************************************************************************** 
-* 滲杅靡備:	UART_WriteByte()
-* 髡夔佽隴:	楷冞珨跺趼誹杅擂
-* 怀    ⻌: UART_TypeDef * UARTx	硌隅猁掩扢离腔UART揹諳ㄛ褫龰硉婦嬤UART0﹜UART1﹜UART2﹜UART3﹜UART4
-*			uint32_t data			猁楷冞腔趼誹			
-* 怀    堤: 拸
-* 蛁砩岈砐: 拸
+* �賣㺭�滨妍:	UART_WriteByte()
+* �蠘�霂湔�:	�煾���銝芸���㺭��
+* 颲�    ��: UART_TypeDef * UARTx	���閬�◤霈曄蔭��ART銝脣藁嚗�虾�硋�澆��柿ART0��ART1��ART2��ART3��ART4
+*			uint32_t data			閬�����摮𡑒�			
+* 颲�    ��: ��
+* 瘜冽�鈭钅★: ��
 ******************************************************************************************************************************************/
 void UART_WriteByte(UART_TypeDef * UARTx, uint32_t data)
 {
@@ -170,12 +170,12 @@ void UART_WriteByte(UART_TypeDef * UARTx, uint32_t data)
 }
 
 /****************************************************************************************************************************************** 
-* 滲杅靡備:	UART_ReadByte()
-* 髡夔佽隴:	黍龰珨跺趼誹杅擂ㄛ甜硌堤杅擂岆瘁Valid
-* 怀    ⻌: UART_TypeDef * UARTx	硌隅猁掩扢离腔UART揹諳ㄛ褫龰硉婦嬤UART0﹜UART1﹜UART2﹜UART3﹜UART4
-*			uint32_t * data			諉彶善腔杅擂
-* 怀    堤: uint32_t				0 拸渣昫    UART_ERR_PARITY ✽髒苺桄渣昫
-* 蛁砩岈砐: 拸
+* �賣㺭�滨妍:	UART_ReadByte()
+* �蠘�霂湔�:	霂餃�銝�銝芸���㺭�殷�撟嗆��箸㺭�格糓�向alid
+* 颲�    ��: UART_TypeDef * UARTx	���閬�◤霈曄蔭��ART銝脣藁嚗�虾�硋�澆��柿ART0��ART1��ART2��ART3��ART4
+*			uint32_t * data			�交𤣰�啁��唳旿
+* 颲�    ��: uint32_t				0 �𣳇�霂�    UART_ERR_PARITY 憟���⊿��躰秤
+* 瘜冽�鈭钅★: ��
 ******************************************************************************************************************************************/
 uint32_t UART_ReadByte(UART_TypeDef * UARTx, uint32_t * data)
 {
@@ -189,11 +189,11 @@ uint32_t UART_ReadByte(UART_TypeDef * UARTx, uint32_t * data)
 }
 
 /****************************************************************************************************************************************** 
-* 滲杅靡備:	UART_IsTXBusy()
-* 髡夔佽隴:	UART岆瘁淏婓楷冞杅擂
-* 怀    ⻌: UART_TypeDef * UARTx	硌隅猁掩扢离腔UART揹諳ㄛ衄虴硉婦嬤UART0﹜UART1﹜UART2﹜UART3
-* 怀    堤: uint32_t				1 UART淏婓楷冞杅擂    0 杅擂眒楷俇
-* 蛁砩岈砐: 拸
+* �賣㺭�滨妍:	UART_IsTXBusy()
+* �蠘�霂湔�:	UART�臬炏甇�銁�煾��㺭��
+* 颲�    ��: UART_TypeDef * UARTx	���閬�◤霈曄蔭��ART銝脣藁嚗峕����澆��柿ART0��ART1��ART2��ART3
+* 颲�    ��: uint32_t				1 UART甇�銁�煾��㺭��    0 �唳旿撌脣�摰�
+* 瘜冽�鈭钅★: ��
 ******************************************************************************************************************************************/
 uint32_t UART_IsTXBusy(UART_TypeDef * UARTx)
 {
@@ -201,11 +201,11 @@ uint32_t UART_IsTXBusy(UART_TypeDef * UARTx)
 }
 
 /****************************************************************************************************************************************** 
-* 滲杅靡備:	UART_IsRXFIFOEmpty()
-* 髡夔佽隴:	諉彶FIFO岆瘁峈諾ㄛ⺼彆祥諾寀佽隴[笢衄杅擂褫眕黍龰
-* 怀    ⻌: UART_TypeDef * UARTx	硌隅猁掩扢离腔UART揹諳ㄛ衄虴硉婦嬤UART0﹜UART1﹜UART2﹜UART3
-* 怀    堤: uint32_t				1 諉彶FIFO諾    0 諉彶FIFO準諾
-* 蛁砩岈砐: 拸
+* �賣㺭�滨妍:	UART_IsRXFIFOEmpty()
+* �蠘�霂湔�:	�交𤣰FIFO�臬炏銝箇征嚗���靝�蝛箏�霂湔��嗡葉�㗇㺭�桀虾隞亥粉��
+* 颲�    ��: UART_TypeDef * UARTx	���閬�◤霈曄蔭��ART銝脣藁嚗峕����澆��柿ART0��ART1��ART2��ART3
+* 颲�    ��: uint32_t				1 �交𤣰FIFO蝛�    0 �交𤣰FIFO�䂿征
+* 瘜冽�鈭钅★: ��
 ******************************************************************************************************************************************/
 uint32_t UART_IsRXFIFOEmpty(UART_TypeDef * UARTx)
 {
@@ -213,11 +213,11 @@ uint32_t UART_IsRXFIFOEmpty(UART_TypeDef * UARTx)
 }
 
 /****************************************************************************************************************************************** 
-* 滲杅靡備:	UART_IsTXFIFOFull()
-* 髡夔佽隴:	楷冞FIFO岆瘁峈雛ㄛ⺼彆祥雛寀褫眕樟哿砃[笢迡⻌杅擂
-* 怀    ⻌: UART_TypeDef * UARTx	硌隅猁掩扢离腔UART揹諳ㄛ衄虴硉婦嬤UART0﹜UART1﹜UART2﹜UART3
-* 怀    堤: uint32_t				1 楷冞FIFO雛    0 楷冞FIFO祥雛
-* 蛁砩岈砐: 拸
+* �賣㺭�滨妍:	UART_IsTXFIFOFull()
+* �蠘�霂湔�:	�煾��IFO�臬炏銝箸說嚗���靝�皛∪��臭誑蝏抒賒�穃�銝剖��交㺭��
+* 颲�    ��: UART_TypeDef * UARTx	���閬�◤霈曄蔭��ART銝脣藁嚗峕����澆��柿ART0��ART1��ART2��ART3
+* 颲�    ��: uint32_t				1 �煾��IFO皛�    0 �煾��IFO銝齿說
+* 瘜冽�鈭钅★: ��
 ******************************************************************************************************************************************/
 uint32_t UART_IsTXFIFOFull(UART_TypeDef * UARTx)
 {
@@ -225,12 +225,12 @@ uint32_t UART_IsTXFIFOFull(UART_TypeDef * UARTx)
 }
 
 /****************************************************************************************************************************************** 
-* 滲杅靡備:	UART_SetBaudrate()
-* 髡夔佽隴:	扢离疏杻薹
-* 怀    ⻌: UART_TypeDef * UARTx	硌隅猁掩扢离腔UART揹諳ㄛ衄虴硉婦嬤UART0﹜UART1﹜UART2﹜UART3
-*			uint32_t baudrate		猁扢离腔疏杻薹
-* 怀    堤: 拸
-* 蛁砩岈砐: 祥猁婓揹諳馱釬奀載蜊疏杻薹ㄛ妏蚚森滲杅ゴワ珂覃蚚UART_Close()壽敕揹諳
+* �賣㺭�滨妍:	UART_SetBaudrate()
+* �蠘�霂湔�:	霈曄蔭瘜Y鸌��
+* 颲�    ��: UART_TypeDef * UARTx	���閬�◤霈曄蔭��ART銝脣藁嚗峕����澆��柿ART0��ART1��ART2��ART3
+*			uint32_t baudrate		閬�挽蝵桃�瘜Y鸌��
+* 颲�    ��: ��
+* 瘜冽�鈭钅★: 銝滩��其葡��極雿𨀣𧒄�湔㺿瘜Y鸌���雿輻鍂甇文遆�啣�霂瑕�靚�鍂UART_Close()�喲𡡒銝脣藁
 ******************************************************************************************************************************************/
 void UART_SetBaudrate(UART_TypeDef * UARTx, uint32_t baudrate)
 {
@@ -239,11 +239,11 @@ void UART_SetBaudrate(UART_TypeDef * UARTx, uint32_t baudrate)
 }
 
 /****************************************************************************************************************************************** 
-* 滲杅靡備:	UART_GetBaudrate()
-* 髡夔佽隴:	脤戙疏杻薹
-* 怀    ⻌: UART_TypeDef * UARTx	硌隅猁掩扢离腔UART揹諳ㄛ衄虴硉婦嬤UART0﹜UART1﹜UART2﹜UART3
-* 怀    堤: uint32_t				絞ゴ疏杻薹
-* 蛁砩岈砐: 拸
+* �賣㺭�滨妍:	UART_GetBaudrate()
+* �蠘�霂湔�:	�亥砭瘜Y鸌��
+* 颲�    ��: UART_TypeDef * UARTx	���閬�◤霈曄蔭��ART銝脣藁嚗峕����澆��柿ART0��ART1��ART2��ART3
+* 颲�    ��: uint32_t				敶枏�瘜Y鸌��
+* 瘜冽�鈭钅★: ��
 ******************************************************************************************************************************************/
 uint32_t UART_GetBaudrate(UART_TypeDef * UARTx)
 {
@@ -251,13 +251,13 @@ uint32_t UART_GetBaudrate(UART_TypeDef * UARTx)
 }
 
 /****************************************************************************************************************************************** 
-* 滲杅靡備:	UART_CTSConfig()
-* 髡夔佽隴:	UART CTS霜諷饜离
-* 怀    ⻌: UART_TypeDef * UARTx	硌隅猁掩扢离腔UART揹諳ㄛ衄虴硉婦嬤UART0﹜UART1﹜UART2﹜UART3
-*			uint32_t enable			1 妏夔CTS霜諷    0 輦砦CTS霜諷
-*			uint32_t polarity		0 CTS怀⻌峈腴桶尨褫眕楷冞杅擂    1 CTS怀⻌峈詢桶尨褫眕楷冞杅擂
-* 怀    堤: 拸
-* 蛁砩岈砐: 拸
+* �賣㺭�滨妍:	UART_CTSConfig()
+* �蠘�霂湔�:	UART CTS瘚�綉�滨蔭
+* 颲�    ��: UART_TypeDef * UARTx	���閬�◤霈曄蔭��ART銝脣藁嚗峕����澆��柿ART0��ART1��ART2��ART3
+*			uint32_t enable			1 雿輯�CTS瘚�綉    0 蝳�迫CTS瘚�綉
+*			uint32_t polarity		0 CTS颲枏�銝箔�銵函內�臭誑�煾��㺭��    1 CTS颲枏�銝粹�銵函內�臭誑�煾��㺭��
+* 颲�    ��: ��
+* 瘜冽�鈭钅★: ��
 ******************************************************************************************************************************************/
 void UART_CTSConfig(UART_TypeDef * UARTx, uint32_t enable, uint32_t polarity)
 {
@@ -267,11 +267,11 @@ void UART_CTSConfig(UART_TypeDef * UARTx, uint32_t enable, uint32_t polarity)
 }
 
 /****************************************************************************************************************************************** 
-* 滲杅靡備:	UART_CTSLineState()
-* 髡夔佽隴:	UART CTS盄絞ゴ袨怓
-* 怀    ⻌: UART_TypeDef * UARTx	硌隅猁掩扢离腔UART揹諳ㄛ衄虴硉婦嬤UART0﹜UART1﹜UART2﹜UART3
-* 怀    堤: uint32_t				0 CTS盄絞ゴ峈腴萇ⅸ    1 CTS盄絞ゴ峈詢萇ⅸ
-* 蛁砩岈砐: 拸
+* �賣㺭�滨妍:	UART_CTSLineState()
+* �蠘�霂湔�:	UART CTS蝥踹��滨𠶖��
+* 颲�    ��: UART_TypeDef * UARTx	���閬�◤霈曄蔭��ART銝脣藁嚗峕����澆��柿ART0��ART1��ART2��ART3
+* 颲�    ��: uint32_t				0 CTS蝥踹��滢蛹雿𡒊㩞撟�    1 CTS蝥踹��滢蛹擃条㩞撟�
+* 瘜冽�鈭钅★: ��
 ******************************************************************************************************************************************/
 uint32_t UART_CTSLineState(UART_TypeDef * UARTx)
 {
@@ -279,14 +279,14 @@ uint32_t UART_CTSLineState(UART_TypeDef * UARTx)
 }
 
 /****************************************************************************************************************************************** 
-* 滲杅靡備:	UART_RTSConfig()
-* 髡夔佽隴:	UART RTS霜諷饜离
-* 怀    ⻌: UART_TypeDef * UARTx	硌隅猁掩扢离腔UART揹諳ㄛ衄虴硉婦嬤UART0﹜UART1﹜UART2﹜UART3
-*			uint32_t enable			1 妏夔RTS霜諷    0 輦砦RTS霜諷
-*			uint32_t polarity		0 RTS怀堤腴桶尨褫眕諉彶杅擂    1 RTS怀堤詢桶尨褫眕諉彶杅擂
-*			uint32_t threshold		RTS霜諷腔揖楷蓒硉ㄛ褫龰硉UART_RTS_1BYTE﹜UART_RTS_2BYTE﹜UART_RTS_4BYTE﹜UART_RTS_6BYTE
-* 怀    堤: 拸
-* 蛁砩岈砐: 拸
+* �賣㺭�滨妍:	UART_RTSConfig()
+* �蠘�霂湔�:	UART RTS瘚�綉�滨蔭
+* 颲�    ��: UART_TypeDef * UARTx	���閬�◤霈曄蔭��ART銝脣藁嚗峕����澆��柿ART0��ART1��ART2��ART3
+*			uint32_t enable			1 雿輯�RTS瘚�綉    0 蝳�迫RTS瘚�綉
+*			uint32_t polarity		0 RTS颲枏枂雿舘”蝷箏虾隞交𦻖�嗆㺭��    1 RTS颲枏枂擃䁅”蝷箏虾隞交𦻖�嗆㺭��
+*			uint32_t threshold		RTS瘚�綉��圻�煾��潘��臬��墀ART_RTS_1BYTE��ART_RTS_2BYTE��ART_RTS_4BYTE��ART_RTS_6BYTE
+* 颲�    ��: ��
+* 瘜冽�鈭钅★: ��
 ******************************************************************************************************************************************/
 void UART_RTSConfig(UART_TypeDef * UARTx, uint32_t enable, uint32_t polarity, uint32_t threshold)
 {
@@ -297,11 +297,11 @@ void UART_RTSConfig(UART_TypeDef * UARTx, uint32_t enable, uint32_t polarity, ui
 }
 
 /****************************************************************************************************************************************** 
-* 滲杅靡備:	UART_RTSLineState()
-* 髡夔佽隴:	UART RTS盄絞ゴ袨怓
-* 怀    ⻌: UART_TypeDef * UARTx	硌隅猁掩扢离腔UART揹諳ㄛ衄虴硉婦嬤UART0﹜UART1﹜UART2﹜UART3
-* 怀    堤: uint32_t				0 RTS盄絞ゴ峈腴萇ⅸ    1 RTS盄絞ゴ峈詢萇ⅸ
-* 蛁砩岈砐: 拸
+* �賣㺭�滨妍:	UART_RTSLineState()
+* �蠘�霂湔�:	UART RTS蝥踹��滨𠶖��
+* 颲�    ��: UART_TypeDef * UARTx	���閬�◤霈曄蔭��ART銝脣藁嚗峕����澆��柿ART0��ART1��ART2��ART3
+* 颲�    ��: uint32_t				0 RTS蝥踹��滢蛹雿𡒊㩞撟�    1 RTS蝥踹��滢蛹擃条㩞撟�
+* 瘜冽�鈭钅★: ��
 ******************************************************************************************************************************************/
 uint32_t UART_RTSLineState(UART_TypeDef * UARTx)
 {
@@ -309,13 +309,13 @@ uint32_t UART_RTSLineState(UART_TypeDef * UARTx)
 }
 
 /****************************************************************************************************************************************** 
-* 滲杅靡備:	UART_LINConfig()
-* 髡夔佽隴:	UART LIN髡夔饜离
-* 怀    ⻌: UART_TypeDef * UARTx	硌隅猁掩扢离腔UART揹諳ㄛ衄虴硉婦嬤UART0﹜UART1﹜UART2﹜UART3
-*			uint32_t detectedIEn	潰聆善Break笢剿妏夔
-*			uint32_t generatedIEn	Break楷冞俇傖笢剿妏夔
-* 怀    堤: 拸
-* 蛁砩岈砐: 拸
+* �賣㺭�滨妍:	UART_LINConfig()
+* �蠘�霂湔�:	UART LIN�蠘��滨蔭
+* 颲�    ��: UART_TypeDef * UARTx	���閬�◤霈曄蔭��ART銝脣藁嚗峕����澆��柿ART0��ART1��ART2��ART3
+*			uint32_t detectedIEn	璉�瘚见�Break銝剜鱏雿輯�
+*			uint32_t generatedIEn	Break�煾����𣂷葉�凋蝙��
+* 颲�    ��: ��
+* 瘜冽�鈭钅★: ��
 ******************************************************************************************************************************************/
 void UART_LINConfig(UART_TypeDef * UARTx, uint32_t detectedIEn, uint32_t generatedIEn)
 {
@@ -325,11 +325,11 @@ void UART_LINConfig(UART_TypeDef * UARTx, uint32_t detectedIEn, uint32_t generat
 }
 
 /****************************************************************************************************************************************** 
-* 滲杅靡備:	UART_LINGenerate()
-* 髡夔佽隴:	UART LIN莉汜/楷冞Break
-* 怀    ⻌: UART_TypeDef * UARTx	硌隅猁掩扢离腔UART揹諳ㄛ衄虴硉婦嬤UART0﹜UART1﹜UART2﹜UART3
-* 怀    堤: 拸
-* 蛁砩岈砐: 拸
+* �賣㺭�滨妍:	UART_LINGenerate()
+* �蠘�霂湔�:	UART LIN鈭抒�/�煾��reak
+* 颲�    ��: UART_TypeDef * UARTx	���閬�◤霈曄蔭��ART銝脣藁嚗峕����澆��柿ART0��ART1��ART2��ART3
+* 颲�    ��: ��
+* 瘜冽�鈭钅★: ��
 ******************************************************************************************************************************************/
 void UART_LINGenerate(UART_TypeDef * UARTx)
 {
@@ -337,11 +337,11 @@ void UART_LINGenerate(UART_TypeDef * UARTx)
 }
 
 /****************************************************************************************************************************************** 
-* 滲杅靡備:	UART_LINIsDetected()
-* 髡夔佽隴:	UART LIN岆瘁潰聆善Break
-* 怀    ⻌: UART_TypeDef * UARTx	硌隅猁掩扢离腔UART揹諳ㄛ衄虴硉婦嬤UART0﹜UART1﹜UART2﹜UART3
-* 怀    堤: uint32_t				1 潰聆善LIN Break    0 帤潰聆善LIN Break
-* 蛁砩岈砐: 拸
+* �賣㺭�滨妍:	UART_LINIsDetected()
+* �蠘�霂湔�:	UART LIN�臬炏璉�瘚见�Break
+* 颲�    ��: UART_TypeDef * UARTx	���閬�◤霈曄蔭��ART銝脣藁嚗峕����澆��柿ART0��ART1��ART2��ART3
+* 颲�    ��: uint32_t				1 璉�瘚见�LIN Break    0 �芣�瘚见�LIN Break
+* 瘜冽�鈭钅★: ��
 ******************************************************************************************************************************************/
 uint32_t UART_LINIsDetected(UART_TypeDef * UARTx)
 {
@@ -349,11 +349,11 @@ uint32_t UART_LINIsDetected(UART_TypeDef * UARTx)
 }
 
 /****************************************************************************************************************************************** 
-* 滲杅靡備:	UART_LINIsGenerated()
-* 髡夔佽隴:	UART LIN Break岆瘁楷冞俇傖
-* 怀    ⻌: UART_TypeDef * UARTx	硌隅猁掩扢离腔UART揹諳ㄛ衄虴硉婦嬤UART0﹜UART1﹜UART2﹜UART3
-* 怀    堤: uint32_t				1 LIN Break 楷冞俇傖    0 LIN Break楷冞帤俇傖
-* 蛁砩岈砐: 拸
+* �賣㺭�滨妍:	UART_LINIsGenerated()
+* �蠘�霂湔�:	UART LIN Break�臬炏�煾�����
+* 颲�    ��: UART_TypeDef * UARTx	���閬�◤霈曄蔭��ART銝脣藁嚗峕����澆��柿ART0��ART1��ART2��ART3
+* 颲�    ��: uint32_t				1 LIN Break �煾�����    0 LIN Break�煾��𧊋摰峕�
+* 瘜冽�鈭钅★: ��
 ******************************************************************************************************************************************/
 uint32_t UART_LINIsGenerated(UART_TypeDef * UARTx)
 {
@@ -361,14 +361,14 @@ uint32_t UART_LINIsGenerated(UART_TypeDef * UARTx)
 }
 
 /****************************************************************************************************************************************** 
-* 滲杅靡備:	UART_ABRStart()
-* 髡夔佽隴:	UART 赻雄疏杻薹潰聆羲宎
-* 怀    ⻌: UART_TypeDef * UARTx	硌隅猁掩扢离腔UART揹諳ㄛ衄虴硉婦嬤UART0﹜UART1﹜UART2﹜UART3
-*			uint32_t detectChar		蚚衾赻雄潰聆﹜數呾疏杻薹腔潰聆趼睫
-*									8弇杅擂奀褫龰硉ㄩ0xFF﹜0xFE﹜0xF8﹜0x80ㄛ煦梗桶尨楷冞源斛剕楷冞0xFF﹜0xFE﹜0xF8﹜0x80
-*									9弇杅擂奀褫龰硉ㄩ0x1FF﹜0x1FE﹜0x1F8﹜0x180ㄛ煦梗桶尨楷冞源斛剕楷冞0x1FF﹜0x1FE﹜0x1F8﹜0x180
-* 怀    堤: 拸
-* 蛁砩岈砐: 赻雄疏杻薹潰聆奀祥夔羲ぎ✽髒苺桄
+* �賣㺭�滨妍:	UART_ABRStart()
+* �蠘�霂湔�:	UART �芸𢆡瘜Y鸌���瘚见�憪�
+* 颲�    ��: UART_TypeDef * UARTx	���閬�◤霈曄蔭��ART銝脣藁嚗峕����澆��柿ART0��ART1��ART2��ART3
+*			uint32_t detectChar		�其��芸𢆡璉�瘚卝��恣蝞埈郭�寧����瘚见�蝚�
+*									8雿齿㺭�格𧒄�臬��潘�0xFF��0xFE��0xF8��0x80嚗���怨”蝷箏���䲮敹�◆�煾��0xFF��0xFE��0xF8��0x80
+*									9雿齿㺭�格𧒄�臬��潘�0x1FF��0x1FE��0x1F8��0x180嚗���怨”蝷箏���䲮敹�◆�煾��0x1FF��0x1FE��0x1F8��0x180
+* 颲�    ��: ��
+* 瘜冽�鈭钅★: �芸𢆡瘜Y鸌���瘚𧢲𧒄銝滩�撘��臬��嗆嵗撉�
 ******************************************************************************************************************************************/
 void UART_ABRStart(UART_TypeDef * UARTx, uint32_t detectChar)
 {
@@ -386,11 +386,11 @@ void UART_ABRStart(UART_TypeDef * UARTx, uint32_t detectChar)
 }
 
 /****************************************************************************************************************************************** 
-* 滲杅靡備:	UART_ABRIsDone()
-* 髡夔佽隴:	UART 赻雄疏杻薹岆瘁俇傖
-* 怀    ⻌: UART_TypeDef * UARTx	硌隅猁掩扢离腔UART揹諳ㄛ衄虴硉婦嬤UART0﹜UART1﹜UART2﹜UART3
-* 怀    堤: uint32_t				0 帤俇傖    UART_ABR_RES_OK 眒俇傖ㄛブ傖髡    UART_ABR_RES_ERR 眒俇傖ㄛ筍囮啖﹜堤渣
-* 蛁砩岈砐: 拸
+* �賣㺭�滨妍:	UART_ABRIsDone()
+* �蠘�霂湔�:	UART �芸𢆡瘜Y鸌��糓�血���
+* 颲�    ��: UART_TypeDef * UARTx	���閬�◤霈曄蔭��ART銝脣藁嚗峕����澆��柿ART0��ART1��ART2��ART3
+* 颲�    ��: uint32_t				0 �芸���    UART_ABR_RES_OK 撌脣��琜�銝娍���    UART_ABR_RES_ERR 撌脣��琜�雿�仃韐乓��枂��
+* 瘜冽�鈭钅★: ��
 ******************************************************************************************************************************************/
 uint32_t UART_ABRIsDone(UART_TypeDef * UARTx)
 {
@@ -409,11 +409,11 @@ uint32_t UART_ABRIsDone(UART_TypeDef * UARTx)
 }
 
 /****************************************************************************************************************************************** 
-* 滲杅靡備:	UART_INTRXThresholdEn()
-* 髡夔佽隴:	絞RX FIFO笢杅擂跺杅 >= RXThreshold奀 揖楷笢剿
-* 怀    ⻌: UART_TypeDef * UARTx	硌隅猁掩扢离腔UART揹諳ㄛ衄虴硉婦嬤UART0﹜UART1﹜UART2﹜UART3
-* 怀    堤: 拸
-* 蛁砩岈砐: 拸
+* �賣㺭�滨妍:	UART_INTRXThresholdEn()
+* �蠘�霂湔�:	敶𣫮X FIFO銝剜㺭�桐葵�� >= RXThreshold�� 閫血�銝剜鱏
+* 颲�    ��: UART_TypeDef * UARTx	���閬�◤霈曄蔭��ART銝脣藁嚗峕����澆��柿ART0��ART1��ART2��ART3
+* 颲�    ��: ��
+* 瘜冽�鈭钅★: ��
 ******************************************************************************************************************************************/
 void UART_INTRXThresholdEn(UART_TypeDef * UARTx)
 {
@@ -421,11 +421,11 @@ void UART_INTRXThresholdEn(UART_TypeDef * UARTx)
 }
 
 /****************************************************************************************************************************************** 
-* 滲杅靡備:	UART_INTRXThresholdDis()
-* 髡夔佽隴:	絞RX FIFO笢杅擂跺杅 >= RXThreshold奀 祥揖楷笢剿
-* 怀    ⻌: UART_TypeDef * UARTx	硌隅猁掩扢离腔UART揹諳ㄛ衄虴硉婦嬤UART0﹜UART1﹜UART2﹜UART3
-* 怀    堤: 拸
-* 蛁砩岈砐: 拸
+* �賣㺭�滨妍:	UART_INTRXThresholdDis()
+* �蠘�霂湔�:	敶𣫮X FIFO銝剜㺭�桐葵�� >= RXThreshold�� 銝滩圻�睲葉��
+* 颲�    ��: UART_TypeDef * UARTx	���閬�◤霈曄蔭��ART銝脣藁嚗峕����澆��柿ART0��ART1��ART2��ART3
+* 颲�    ��: ��
+* 瘜冽�鈭钅★: ��
 ******************************************************************************************************************************************/
 void UART_INTRXThresholdDis(UART_TypeDef * UARTx)
 {
@@ -433,11 +433,11 @@ void UART_INTRXThresholdDis(UART_TypeDef * UARTx)
 }
 
 /****************************************************************************************************************************************** 
-* 滲杅靡備:	UART_INTRXThresholdStat()
-* 髡夔佽隴:	岆瘁RX FIFO笢杅擂跺杅 >= RXThreshold
-* 怀    ⻌: UART_TypeDef * UARTx	硌隅猁掩扢离腔UART揹諳ㄛ衄虴硉婦嬤UART0﹜UART1﹜UART2﹜UART3
-* 怀    堤: uint32_t				1 RX FIFO笢杅擂跺杅 >= RXThreshold		0 RX FIFO笢杅擂跺杅 < RXThreshold
-* 蛁砩岈砐: RXIF = RXTHRF & RXIE
+* �賣㺭�滨妍:	UART_INTRXThresholdStat()
+* �蠘�霂湔�:	�臬炏RX FIFO銝剜㺭�桐葵�� >= RXThreshold
+* 颲�    ��: UART_TypeDef * UARTx	���閬�◤霈曄蔭��ART銝脣藁嚗峕����澆��柿ART0��ART1��ART2��ART3
+* 颲�    ��: uint32_t				1 RX FIFO銝剜㺭�桐葵�� >= RXThreshold		0 RX FIFO銝剜㺭�桐葵�� < RXThreshold
+* 瘜冽�鈭钅★: RXIF = RXTHRF & RXIE
 ******************************************************************************************************************************************/
 uint32_t UART_INTRXThresholdStat(UART_TypeDef * UARTx)
 {
@@ -445,11 +445,11 @@ uint32_t UART_INTRXThresholdStat(UART_TypeDef * UARTx)
 }
 
 /****************************************************************************************************************************************** 
-* 滲杅靡備:	UART_INTTXThresholdEn()
-* 髡夔佽隴:	絞TX FIFO笢杅擂跺杅 <= TXThreshold奀 揖楷笢剿
-* 怀    ⻌: UART_TypeDef * UARTx	硌隅猁掩扢离腔UART揹諳ㄛ衄虴硉婦嬤UART0﹜UART1﹜UART2﹜UART3
-* 怀    堤: 拸
-* 蛁砩岈砐: 拸
+* �賣㺭�滨妍:	UART_INTTXThresholdEn()
+* �蠘�霂湔�:	敶孏X FIFO銝剜㺭�桐葵�� <= TXThreshold�� 閫血�銝剜鱏
+* 颲�    ��: UART_TypeDef * UARTx	���閬�◤霈曄蔭��ART銝脣藁嚗峕����澆��柿ART0��ART1��ART2��ART3
+* 颲�    ��: ��
+* 瘜冽�鈭钅★: ��
 ******************************************************************************************************************************************/
 void UART_INTTXThresholdEn(UART_TypeDef * UARTx)
 {
@@ -457,11 +457,11 @@ void UART_INTTXThresholdEn(UART_TypeDef * UARTx)
 }
 
 /****************************************************************************************************************************************** 
-* 滲杅靡備:	UART_INTTXThresholdDis()
-* 髡夔佽隴:	絞TX FIFO笢杅擂跺杅 <= TXThreshold奀 祥揖楷笢剿
-* 怀    ⻌: UART_TypeDef * UARTx	硌隅猁掩扢离腔UART揹諳ㄛ衄虴硉婦嬤UART0﹜UART1﹜UART2﹜UART3
-* 怀    堤: 拸
-* 蛁砩岈砐: 拸
+* �賣㺭�滨妍:	UART_INTTXThresholdDis()
+* �蠘�霂湔�:	敶孏X FIFO銝剜㺭�桐葵�� <= TXThreshold�� 銝滩圻�睲葉��
+* 颲�    ��: UART_TypeDef * UARTx	���閬�◤霈曄蔭��ART銝脣藁嚗峕����澆��柿ART0��ART1��ART2��ART3
+* 颲�    ��: ��
+* 瘜冽�鈭钅★: ��
 ******************************************************************************************************************************************/
 void UART_INTTXThresholdDis(UART_TypeDef * UARTx)
 {
@@ -469,11 +469,11 @@ void UART_INTTXThresholdDis(UART_TypeDef * UARTx)
 }
 
 /****************************************************************************************************************************************** 
-* 滲杅靡備:	UART_INTTXThresholdStat()
-* 髡夔佽隴:	岆瘁TX FIFO笢杅擂跺杅 <= TXThreshold
-* 怀    ⻌: UART_TypeDef * UARTx	硌隅猁掩扢离腔UART揹諳ㄛ衄虴硉婦嬤UART0﹜UART1﹜UART2﹜UART3
-* 怀    堤: uint32_t				1 TX FIFO笢杅擂跺杅 <= TXThreshold		0 TX FIFO笢杅擂跺杅 > TXThreshold
-* 蛁砩岈砐: TXIF = TXTHRF & TXIE
+* �賣㺭�滨妍:	UART_INTTXThresholdStat()
+* �蠘�霂湔�:	�臬炏TX FIFO銝剜㺭�桐葵�� <= TXThreshold
+* 颲�    ��: UART_TypeDef * UARTx	���閬�◤霈曄蔭��ART銝脣藁嚗峕����澆��柿ART0��ART1��ART2��ART3
+* 颲�    ��: uint32_t				1 TX FIFO銝剜㺭�桐葵�� <= TXThreshold		0 TX FIFO銝剜㺭�桐葵�� > TXThreshold
+* 瘜冽�鈭钅★: TXIF = TXTHRF & TXIE
 ******************************************************************************************************************************************/
 uint32_t UART_INTTXThresholdStat(UART_TypeDef * UARTx)
 {
@@ -481,11 +481,11 @@ uint32_t UART_INTTXThresholdStat(UART_TypeDef * UARTx)
 }
 
 /****************************************************************************************************************************************** 
-* 滲杅靡備:	UART_INTTimeoutEn()
-* 髡夔佽隴:	諉彶楷汜閉奀奀 揖楷笢剿
-* 怀    ⻌: UART_TypeDef * UARTx	硌隅猁掩扢离腔UART揹諳ㄛ衄虴硉婦嬤UART0﹜UART1﹜UART2﹜UART3
-* 怀    堤: 拸
-* 蛁砩岈砐: 拸
+* �賣㺭�滨妍:	UART_INTTimeoutEn()
+* �蠘�霂湔�:	�交𤣰�𤑳�頞�𧒄�� 閫血�銝剜鱏
+* 颲�    ��: UART_TypeDef * UARTx	���閬�◤霈曄蔭��ART銝脣藁嚗峕����澆��柿ART0��ART1��ART2��ART3
+* 颲�    ��: ��
+* 瘜冽�鈭钅★: ��
 ******************************************************************************************************************************************/
 void UART_INTTimeoutEn(UART_TypeDef * UARTx)
 {
@@ -493,11 +493,11 @@ void UART_INTTimeoutEn(UART_TypeDef * UARTx)
 }
 
 /****************************************************************************************************************************************** 
-* 滲杅靡備:	UART_INTTimeoutDis()
-* 髡夔佽隴:	諉彶楷汜閉奀奀 祥揖楷笢剿
-* 怀    ⻌: UART_TypeDef * UARTx	硌隅猁掩扢离腔UART揹諳ㄛ衄虴硉婦嬤UART0﹜UART1﹜UART2﹜UART3
-* 怀    堤: 拸
-* 蛁砩岈砐: 拸
+* �賣㺭�滨妍:	UART_INTTimeoutDis()
+* �蠘�霂湔�:	�交𤣰�𤑳�頞�𧒄�� 銝滩圻�睲葉��
+* 颲�    ��: UART_TypeDef * UARTx	���閬�◤霈曄蔭��ART銝脣藁嚗峕����澆��柿ART0��ART1��ART2��ART3
+* 颲�    ��: ��
+* 瘜冽�鈭钅★: ��
 ******************************************************************************************************************************************/
 void UART_INTTimeoutDis(UART_TypeDef * UARTx)
 {
@@ -505,11 +505,11 @@ void UART_INTTimeoutDis(UART_TypeDef * UARTx)
 }
 
 /****************************************************************************************************************************************** 
-* 滲杅靡備:	UART_INTTimeoutStat()
-* 髡夔佽隴:	岆瘁楷汜賸諉彶閉奀ㄛ撈閉徹 TimeoutTime/(Baudrate/10) 鏃羶衄婓RX盄奻諉彶善杅擂奀揖楷笢剿
-* 怀    ⻌: UART_TypeDef * UARTx	硌隅猁掩扢离腔UART揹諳ㄛ衄虴硉婦嬤UART0﹜UART1﹜UART2﹜UART3
-* 怀    堤: uint32_t				1 楷汜賸諉彶閉奀		0 帤楷汜諉彶閉奀
-* 蛁砩岈砐: 拸
+* �賣㺭�滨妍:	UART_INTTimeoutStat()
+* �蠘�霂湔�:	�臬炏�𤑳�鈭�𦻖�嗉��塚��唾�餈� TimeoutTime/(Baudrate/10) 蝘埝瓷�匧銁RX蝥蹂��交𤣰�唳㺭�格𧒄閫血�銝剜鱏
+* 颲�    ��: UART_TypeDef * UARTx	���閬�◤霈曄蔭��ART銝脣藁嚗峕����澆��柿ART0��ART1��ART2��ART3
+* 颲�    ��: uint32_t				1 �𤑳�鈭�𦻖�嗉���		0 �芸���𦻖�嗉���
+* 瘜冽�鈭钅★: ��
 ******************************************************************************************************************************************/
 uint32_t UART_INTTimeoutStat(UART_TypeDef * UARTx)
 {
@@ -517,11 +517,11 @@ uint32_t UART_INTTimeoutStat(UART_TypeDef * UARTx)
 }
 
 /****************************************************************************************************************************************** 
-* 滲杅靡備:	UART_INTTXDoneEn()
-* 髡夔佽隴:	楷冞FIFO諾ブ楷冞痄弇敵湔け諾笢剿妏夔
-* 怀    ⻌: UART_TypeDef * UARTx	硌隅猁掩扢离腔UART揹諳ㄛ衄虴硉婦嬤UART0﹜UART1﹜UART2﹜UART3
-* 怀    堤: 拸
-* 蛁砩岈砐: 拸
+* �賣㺭�滨妍:	UART_INTTXDoneEn()
+* �蠘�霂湔�:	�煾��IFO蝛箔��煾��宏雿滚�摮睃膥蝛箔葉�凋蝙��
+* 颲�    ��: UART_TypeDef * UARTx	���閬�◤霈曄蔭��ART銝脣藁嚗峕����澆��柿ART0��ART1��ART2��ART3
+* 颲�    ��: ��
+* 瘜冽�鈭钅★: ��
 ******************************************************************************************************************************************/
 void UART_INTTXDoneEn(UART_TypeDef * UARTx)
 {
@@ -529,11 +529,11 @@ void UART_INTTXDoneEn(UART_TypeDef * UARTx)
 }
 
 /****************************************************************************************************************************************** 
-* 滲杅靡備:	UART_INTTXDoneDis()
-* 髡夔佽隴:	楷冞FIFO諾ブ楷冞痄弇敵湔け諾笢剿輦砦
-* 怀    ⻌: UART_TypeDef * UARTx	硌隅猁掩扢离腔UART揹諳ㄛ衄虴硉婦嬤UART0﹜UART1﹜UART2﹜UART3
-* 怀    堤: 拸
-* 蛁砩岈砐: 拸
+* �賣㺭�滨妍:	UART_INTTXDoneDis()
+* �蠘�霂湔�:	�煾��IFO蝛箔��煾��宏雿滚�摮睃膥蝛箔葉�剔�甇�
+* 颲�    ��: UART_TypeDef * UARTx	���閬�◤霈曄蔭��ART銝脣藁嚗峕����澆��柿ART0��ART1��ART2��ART3
+* 颲�    ��: ��
+* 瘜冽�鈭钅★: ��
 ******************************************************************************************************************************************/
 void UART_INTTXDoneDis(UART_TypeDef * UARTx)
 {
@@ -541,11 +541,11 @@ void UART_INTTXDoneDis(UART_TypeDef * UARTx)
 }
 
 /****************************************************************************************************************************************** 
-* 滲杅靡備:	UART_INTTXDoneStat()
-* 髡夔佽隴:	楷冞FIFO諾ブ楷冞痄弇敵湔け諾笢剿袨怓
-* 怀    ⻌: UART_TypeDef * UARTx	硌隅猁掩扢离腔UART揹諳ㄛ衄虴硉婦嬤UART0﹜UART1﹜UART2﹜UART3
-* 怀    堤: uint32_t				1 楷冞FIFO諾ブ楷冞痄弇敵湔け諾		0 楷冞FIFO麼楷冞痄弇敵湔け帤諾
-* 蛁砩岈砐: 拸
+* �賣㺭�滨妍:	UART_INTTXDoneStat()
+* �蠘�霂湔�:	�煾��IFO蝛箔��煾��宏雿滚�摮睃膥蝛箔葉�剔𠶖��
+* 颲�    ��: UART_TypeDef * UARTx	���閬�◤霈曄蔭��ART銝脣藁嚗峕����澆��柿ART0��ART1��ART2��ART3
+* 颲�    ��: uint32_t				1 �煾��IFO蝛箔��煾��宏雿滚�摮睃膥蝛�		0 �煾��IFO�硋���宏雿滚�摮睃膥�芰征
+* 瘜冽�鈭钅★: ��
 ******************************************************************************************************************************************/
 uint32_t UART_INTTXDoneStat(UART_TypeDef * UARTx)
 {

+ 16 - 16
bsp/swm320/libraries/SWM320_StdPeriph_Driver/SWM320_uart.h

@@ -4,20 +4,20 @@
 typedef struct {
 	uint32_t Baudrate;
 	
-	uint8_t  DataBits;			//数据位位数,可取值UART_DATA_8BIT、UART_DATA_9BIT
+	uint8_t  DataBits;			//鏁版嵁浣嶄綅鏁帮紝鍙�彇鍊糢ART_DATA_8BIT銆乁ART_DATA_9BIT
 	
-	uint8_t  Parity;			//奇偶校验位,可取值UART_PARITY_NONE、UART_PARITY_ODD、UART_PARITY_EVEN、UART_PARITY_ONE、UART_PARITY_ZERO
+	uint8_t  Parity;			//濂囧伓鏍¢獙浣嶏紝鍙�彇鍊糢ART_PARITY_NONE銆乁ART_PARITY_ODD銆乁ART_PARITY_EVEN銆乁ART_PARITY_ONE銆乁ART_PARITY_ZERO
 	
-	uint8_t  StopBits;			//停止位位数,可取值UART_STOP_1BIT、UART_STOP_2BIT
+	uint8_t  StopBits;			//鍋滄�浣嶄綅鏁帮紝鍙�彇鍊糢ART_STOP_1BIT銆乁ART_STOP_2BIT
 	
-	uint8_t  RXThreshold;		//取值0--7
-	uint8_t  RXThresholdIEn;	//当RX FIFO中数据个数 >  RXThreshold时触发中断
+	uint8_t  RXThreshold;		//鍙栧€�0--7
+	uint8_t  RXThresholdIEn;	//褰揜X FIFO涓�暟鎹�釜鏁� >  RXThreshold鏃惰Е鍙戜腑鏂�
 	
-	uint8_t  TXThreshold;		//取值0--7
-	uint8_t  TXThresholdIEn;	//当TX FIFO中数据个数 <= TXThreshold时触发中断
+	uint8_t  TXThreshold;		//鍙栧€�0--7
+	uint8_t  TXThresholdIEn;	//褰揟X FIFO涓�暟鎹�釜鏁� <= TXThreshold鏃惰Е鍙戜腑鏂�
 	
-	uint8_t  TimeoutTime;		//超时时长 = TimeoutTime/(Baudrate/10) 秒
-	uint8_t  TimeoutIEn;		//超时中断,RX FIFO非空,且超过 TimeoutTime/(Baudrate/10) 秒没有在RX线上接收到数据时触发中断
+	uint8_t  TimeoutTime;		//瓒呮椂鏃堕暱 = TimeoutTime/(Baudrate/10) 绉�
+	uint8_t  TimeoutIEn;		//瓒呮椂涓�柇锛孯X FIFO闈炵┖锛屼笖瓒呰繃 TimeoutTime/(Baudrate/10) 绉掓病鏈夊湪RX绾夸笂鎺ユ敹鍒版暟鎹�椂瑙﹀彂涓�柇
 } UART_InitStructure;
 
 
@@ -46,20 +46,20 @@ typedef struct {
 #define UART_ERR_NOISE		3
 
 
-void UART_Init(UART_TypeDef * UARTx, UART_InitStructure * initStruct);	//UART串口初始化
+void UART_Init(UART_TypeDef * UARTx, UART_InitStructure * initStruct);	//UART涓插彛鍒濆�鍖�
 void UART_Open(UART_TypeDef * UARTx);
 void UART_Close(UART_TypeDef * UARTx);
 
-void UART_WriteByte(UART_TypeDef * UARTx, uint32_t data);				//发送一个字节数据
-uint32_t UART_ReadByte(UART_TypeDef * UARTx, uint32_t * data);			//读取一个字节数据,并指出数据是否Valid
+void UART_WriteByte(UART_TypeDef * UARTx, uint32_t data);				//鍙戦€佷竴涓�瓧鑺傛暟鎹�
+uint32_t UART_ReadByte(UART_TypeDef * UARTx, uint32_t * data);			//璇诲彇涓€涓�瓧鑺傛暟鎹�紝骞舵寚鍑烘暟鎹�槸鍚�alid
 
 uint32_t UART_IsTXBusy(UART_TypeDef * UARTx);
-uint32_t UART_IsRXFIFOEmpty(UART_TypeDef * UARTx);						//接收FIFO是否空,如果不空则可以继续UART_ReadByte()
-uint32_t UART_IsTXFIFOFull(UART_TypeDef * UARTx);						//发送FIFO是否满,如果不满则可以继续UART_WriteByte()
+uint32_t UART_IsRXFIFOEmpty(UART_TypeDef * UARTx);						//鎺ユ敹FIFO鏄�惁绌猴紝濡傛灉涓嶇┖鍒欏彲浠ョ户缁璘ART_ReadByte()
+uint32_t UART_IsTXFIFOFull(UART_TypeDef * UARTx);						//鍙戦€丗IFO鏄�惁婊★紝濡傛灉涓嶆弧鍒欏彲浠ョ户缁璘ART_WriteByte()
 
 
-void UART_SetBaudrate(UART_TypeDef * UARTx, uint32_t baudrate);			//设置波特率
-uint32_t UART_GetBaudrate(UART_TypeDef * UARTx);			 			//获取当前使用的波特率
+void UART_SetBaudrate(UART_TypeDef * UARTx, uint32_t baudrate);			//璁剧疆娉㈢壒鐜�
+uint32_t UART_GetBaudrate(UART_TypeDef * UARTx);			 			//鑾峰彇褰撳墠浣跨敤鐨勬尝鐗圭巼
 
 void UART_CTSConfig(UART_TypeDef * UARTx, uint32_t enable, uint32_t polarity);
 uint32_t UART_CTSLineState(UART_TypeDef * UARTx);

+ 44 - 44
bsp/swm320/libraries/SWM320_StdPeriph_Driver/SWM320_wdt.c

@@ -1,10 +1,10 @@
 /****************************************************************************************************************************************** 
-* 恅璃靡備: SWM320_wdt.c
-* 髡夔佽隴:	SWM320等⑵儂腔WDT艘藷僩髡夔Й雄踱
-* 撮扲盓厥:	http://www.synwit.com.cn/e/tool/gbook/?bid=1
-* 蛁砩岈砐:
-* 唳掛゜ヽ:	V1.1.0		2017爛10堎25゜
-* 汔撰暮翹:  
+* ��辣�滨妍: SWM320_wdt.c
+* �蠘�霂湔�:	SWM320�閧��箇�WDT�钅秄�堒��賡店�典�
+* ���舀𣈲��:	http://www.synwit.com.cn/e/tool/gbook/?bid=1
+* 瘜冽�鈭钅★:
+* ��𧋦�交�:	V1.1.0		2017撟�10��25��
+* ��漣霈啣�:  
 *
 *
 *******************************************************************************************************************************************
@@ -23,19 +23,19 @@
 
 
 /****************************************************************************************************************************************** 
-* 滲杅靡備:	WDT_Init()
-* 髡夔佽隴:	WDT艘藷僩場宎趙
-* 怀    ⻌: WDT_TypeDef * WDTx		硌隅猁掩扢离腔艘藷僩ㄛ衄虴硉婦嬤WDT
-*			uint32_t peroid			龰硉0--4294967295ㄛ等弇峈等⑵儂炵苀奀笘笚ヽ
-*			uint32_t mode			WDT_MODE_RESET 閉奀莉汜葩弇    WDT_MODE_INTERRUPT 閉奀莉汜笢剿
-* 怀    堤: 拸
-* 蛁砩岈砐: 葩弇妏夔奀笢剿祥お釬蚚ㄛ秪峈數杅笚ヽ賦旰奀郋⑵眻諉葩弇賸ㄛ拸楊砒茼笢剿
+* �賣㺭�滨妍:	WDT_Init()
+* �蠘�霂湔�:	WDT�钅秄�堒�憪见�
+* 颲�    ��: WDT_TypeDef * WDTx		���閬�◤霈曄蔭����函�嚗峕����澆��柱DT
+*			uint32_t peroid			�硋��0--4294967295嚗��雿滢蛹�閧��箇頂蝏�𧒄�笔𪂹��
+*			uint32_t mode			WDT_MODE_RESET 頞�𧒄鈭抒�憭滢�    WDT_MODE_INTERRUPT 頞�𧒄鈭抒�銝剜鱏
+* 颲�    ��: ��
+* 瘜冽�鈭钅★: 憭滢�雿輯��嗡葉�凋�韏瑚��剁��牐蛹霈⊥㺭�冽�蝏𤘪��嗉塳��凒�亙�雿滢�嚗峕�瘜訫�摨𥪯葉��
 ******************************************************************************************************************************************/
 void WDT_Init(WDT_TypeDef * WDTx, uint32_t peroid, uint32_t mode)
 {
 	SYS->CLKEN |= (0x01 << SYS_CLKEN_WDT_Pos);
 	
-	WDT_Stop(WDTx);		//扢离ゴ珂壽敕
+	WDT_Stop(WDTx);		//霈曄蔭�滚��喲𡡒
 	
 	WDTx->LOAD = peroid;
 	
@@ -54,11 +54,11 @@ void WDT_Init(WDT_TypeDef * WDTx, uint32_t peroid, uint32_t mode)
 }
 
 /****************************************************************************************************************************************** 
-* 滲杅靡備:	WDT_Start()
-* 髡夔佽隴:	ぎ雄硌隅WDTㄛ羲宎給數奀
-* 怀    ⻌: WDT_TypeDef * WDTx		硌隅猁掩扢离腔艘藷僩ㄛ衄虴硉婦嬤WDT
-* 怀    堤: 拸
-* 蛁砩岈砐: 拸
+* �賣㺭�滨妍:	WDT_Start()
+* �蠘�霂湔�:	�臬𢆡���WDT嚗��憪见�坿恣��
+* 颲�    ��: WDT_TypeDef * WDTx		���閬�◤霈曄蔭����函�嚗峕����澆��柱DT
+* 颲�    ��: ��
+* 瘜冽�鈭钅★: ��
 ******************************************************************************************************************************************/
 void WDT_Start(WDT_TypeDef * WDTx)
 {
@@ -66,11 +66,11 @@ void WDT_Start(WDT_TypeDef * WDTx)
 }
 
 /****************************************************************************************************************************************** 
-* 滲杅靡備:	WDT_Stop()
-* 髡夔佽隴:	壽敕硌隅WDTㄛ礿砦給數奀
-* 怀    ⻌: WDT_TypeDef * WDTx		硌隅猁掩扢离腔艘藷僩ㄛ衄虴硉婦嬤WDT
-* 怀    堤: 拸
-* 蛁砩岈砐: 拸
+* �賣㺭�滨妍:	WDT_Stop()
+* �蠘�霂湔�:	�喲𡡒���WDT嚗��甇W�坿恣��
+* 颲�    ��: WDT_TypeDef * WDTx		���閬�◤霈曄蔭����函�嚗峕����澆��柱DT
+* 颲�    ��: ��
+* 瘜冽�鈭钅★: ��
 ******************************************************************************************************************************************/
 void WDT_Stop(WDT_TypeDef * WDTx)
 {
@@ -78,11 +78,11 @@ void WDT_Stop(WDT_TypeDef * WDTx)
 }
 
 /****************************************************************************************************************************************** 
-* 滲杅靡備:	WDT_Feed()
-* 髡夔佽隴:	庣僩ㄛ笭陔植蚾婥硉羲宎給數奀
-* 怀    ⻌: WDT_TypeDef * WDTx		硌隅猁掩扢离腔艘藷僩ㄛ衄虴硉婦嬤WDT
-* 怀    堤: 拸
-* 蛁砩岈砐: 拸
+* �賣㺭�滨妍:	WDT_Feed()
+* �蠘�霂湔�:	���嚗屸��唬�鋆�蝸�澆�憪见�坿恣��
+* 颲�    ��: WDT_TypeDef * WDTx		���閬�◤霈曄蔭����函�嚗峕����澆��柱DT
+* 颲�    ��: ��
+* 瘜冽�鈭钅★: ��
 ******************************************************************************************************************************************/
 void WDT_Feed(WDT_TypeDef * WDTx)
 {
@@ -90,11 +90,11 @@ void WDT_Feed(WDT_TypeDef * WDTx)
 }
 
 /****************************************************************************************************************************************** 
-* 滲杅靡備:	WDT_GetValue()
-* 髡夔佽隴:	鳳龰硌隅艘藷僩隅奀け腔絞ゴ給數奀硉
-* 怀    ⻌: WDT_TypeDef * WDTx		硌隅猁掩扢离腔艘藷僩ㄛ衄虴硉婦嬤WDT
-* 怀    堤: int32_t					艘藷僩絞ゴ數杅硉
-* 蛁砩岈砐: 拸
+* �賣㺭�滨妍:	WDT_GetValue()
+* �蠘�霂湔�:	�瑕�����钅秄�堒��嗅膥����滚�坿恣�嗅��
+* 颲�    ��: WDT_TypeDef * WDTx		���閬�◤霈曄蔭����函�嚗峕����澆��柱DT
+* 颲�    ��: int32_t					�钅秄�堒��滩恣�啣��
+* 瘜冽�鈭钅★: ��
 ******************************************************************************************************************************************/
 int32_t WDT_GetValue(WDT_TypeDef * WDTx)
 {
@@ -102,11 +102,11 @@ int32_t WDT_GetValue(WDT_TypeDef * WDTx)
 }
 
 /****************************************************************************************************************************************** 
-* 滲杅靡備:	WDT_INTClr()
-* 髡夔佽隴:	笢剿梓祩ラ壺
-* 怀    ⻌: WDT_TypeDef * WDTx		硌隅猁掩扢离腔艘藷僩ㄛ衄虴硉婦嬤WDT
-* 怀    堤: 拸
-* 蛁砩岈砐: 拸
+* �賣㺭�滨妍:	WDT_INTClr()
+* �蠘�霂湔�:	銝剜鱏���皜�膄
+* 颲�    ��: WDT_TypeDef * WDTx		���閬�◤霈曄蔭����函�嚗峕����澆��柱DT
+* 颲�    ��: ��
+* 瘜冽�鈭钅★: ��
 ******************************************************************************************************************************************/
 void WDT_INTClr(WDT_TypeDef * WDTx)
 {
@@ -114,11 +114,11 @@ void WDT_INTClr(WDT_TypeDef * WDTx)
 }
 
 /****************************************************************************************************************************************** 
-* 滲杅靡備:	WDT_INTStat()
-* 髡夔佽隴:	笢剿袨怓脤戙
-* 怀    ⻌: WDT_TypeDef * WDTx		硌隅猁掩扢离腔艘藷僩ㄛ衄虴硉婦嬤WDT
-* 怀    堤: int32_t					1 楷汜笢剿祛堤    0 帤楷汜笢剿祛堤
-* 蛁砩岈砐: 拸
+* �賣㺭�滨妍:	WDT_INTStat()
+* �蠘�霂湔�:	銝剜鱏�嗆��䰻霂�
+* 颲�    ��: WDT_TypeDef * WDTx		���閬�◤霈曄蔭����函�嚗峕����澆��柱DT
+* 颲�    ��: int32_t					1 �𤑳�銝剜鱏皞W枂    0 �芸��煺葉�剜滯��
+* 瘜冽�鈭钅★: ��
 ******************************************************************************************************************************************/
 uint32_t WDT_INTStat(WDT_TypeDef * WDTx)
 {

+ 7 - 7
bsp/swm320/libraries/SWM320_StdPeriph_Driver/SWM320_wdt.h

@@ -4,16 +4,16 @@
 #define WDT_MODE_RESET		0
 #define WDT_MODE_INTERRUPT	1
 
-void WDT_Init(WDT_TypeDef * WDTx, uint32_t peroid, uint32_t mode);	//WDT看门狗初始化
-void WDT_Start(WDT_TypeDef * WDTx);			//启动指定WDT,开始倒计时
-void WDT_Stop(WDT_TypeDef * WDTx);			//关闭指定WDT,停止倒计时
+void WDT_Init(WDT_TypeDef * WDTx, uint32_t peroid, uint32_t mode);	//WDT鐪嬮棬鐙楀垵濮嬪寲
+void WDT_Start(WDT_TypeDef * WDTx);			//鍚�姩鎸囧畾WDT锛屽紑濮嬪€掕�鏃�
+void WDT_Stop(WDT_TypeDef * WDTx);			//鍏抽棴鎸囧畾WDT锛屽仠姝㈠€掕�鏃�
 
-void WDT_Feed(WDT_TypeDef * WDTx);			//喂狗,重新从装载值开始倒计时
+void WDT_Feed(WDT_TypeDef * WDTx);			//鍠傜嫍锛岄噸鏂颁粠瑁呰浇鍊煎紑濮嬪€掕�鏃�
 
-int32_t WDT_GetValue(WDT_TypeDef * WDTx);	//获取指定看门狗定时器的当前倒计时值
+int32_t WDT_GetValue(WDT_TypeDef * WDTx);	//鑾峰彇鎸囧畾鐪嬮棬鐙楀畾鏃跺櫒鐨勫綋鍓嶅€掕�鏃跺€�
 
 
-void WDT_INTClr(WDT_TypeDef * WDTx);		//中断标志清除
-uint32_t WDT_INTStat(WDT_TypeDef * WDTx);	//中断状态查询
+void WDT_INTClr(WDT_TypeDef * WDTx);		//涓�柇鏍囧織娓呴櫎
+uint32_t WDT_INTStat(WDT_TypeDef * WDTx);	//涓�柇鐘舵€佹煡璇�
  
 #endif //__SWM320_WDT_H__

Some files were not shown because too many files changed in this diff