Browse Source

[bsp]stm32f103-keysking 驱动:uart、pwm、pulse encoder (#10330)

qianjiuyuan 4 weeks ago
parent
commit
2cf21619fb

+ 12 - 7
bsp/stm32/stm32f103-keysking-learning/.ci/attachconfig/ci.attachconfig.yml

@@ -1,16 +1,21 @@
 scons.args: &scons
 scons.args: &scons
     scons_arg:
     scons_arg:
       - '--strict'
       - '--strict'
-system.use_nano:
+
+
+
+devices.uart:
   <<: *scons
   <<: *scons
   kconfig:
   kconfig:
-    CONFIG_RT_USING_NANO=y
-devices.gpio:
+    - CONFIG_BSP_USING_GPIO=y
+    - CONFIG_BSP_USING_UART=y
+    - CONFIG_USING_SERIAL=y
+devices.servo:
   <<: *scons
   <<: *scons
   kconfig:
   kconfig:
-    - CONFIG_BSP_USING_GPIO=y
-devices.uart:
+    - CONFIG_BSP_USING_SERVO=y
+devices.pulse_encoder:
   <<: *scons
   <<: *scons
   kconfig:
   kconfig:
-    - CONFIG_BSP_USING_UART=y
-    - CONFIG_USING_SERIAL=y
+    - CONFIG_BSP_USING_PULSE_ENCODER=y
+    - CONFIG_BSP_USING_PULSE_ENCODER1=y

+ 14 - 7
bsp/stm32/stm32f103-keysking-learning/README.md

@@ -41,12 +41,19 @@ Keysking学习板是B站UP主Keysking推出的一块基于ARM Cortex-M3内核的
 
 
 本BSP目前对外设的支持情况如下:
 本BSP目前对外设的支持情况如下:
 
 
-| 板载外设     | 支持情况     | 备注      |
-| -------- |:--------:| ------- |
-| USB转串口   | 支持       | UART2   |
-| **片上外设** | **支持情况** | **备注**  |
-| GPIO     | 支持       |         |
-| UART     | 支持       | UART1,2 |
+| 板载外设       |   支持情况   | 备注                                         |
+|------------|:--------:|--------------------------------------------|
+| USB转串口     |    支持    | UART2(用作finsh)                             |
+| 旋转编码器      |    支持    | A相(PA8),B相(PA9),按键(PB15)                   |
+| OLED       |          |                                            |
+| LED        |    支持    | GPIO or PWM: Blue(PA6),Green(PA7),Red(PB0) |
+| 无源蜂鸣器      |    支持    | PWM4_CH4                                   |
+| **片上外设**   | **支持情况** | **备注**                                     |
+| GPIO       |    支持    |                                            |
+| UART       |    支持    | UART2,3                                    |
+| PWM        |    支持    | PWM3,PWM4                                  |
+| **预留外设接口** | **支持情况** | **备注**                                     |
+| SERVO      |    支持    | PWM4_CH3                                   |
 
 
 ## 使用说明
 ## 使用说明
 
 
@@ -120,4 +127,4 @@ STM32F103C8T6的Flash在官方文档中的大小是64KB,但是其实该芯片
 
 
 维护人: 
 维护人: 
 
 
-* qianjiuyuan, 邮箱:<3211471056@qq.com>
+* qianjiuyuan, 邮箱:<qianjiuyuan05@qq.com>

File diff suppressed because it is too large
+ 0 - 0
bsp/stm32/stm32f103-keysking-learning/board/CubeMX_Config/.mxproject


+ 60 - 9
bsp/stm32/stm32f103-keysking-learning/board/CubeMX_Config/CubeMX_Config.ioc

@@ -10,20 +10,33 @@ Mcu.Family=STM32F1
 Mcu.IP0=NVIC
 Mcu.IP0=NVIC
 Mcu.IP1=RCC
 Mcu.IP1=RCC
 Mcu.IP2=SYS
 Mcu.IP2=SYS
-Mcu.IP3=USART2
-Mcu.IPNb=4
+Mcu.IP3=TIM1
+Mcu.IP4=TIM3
+Mcu.IP5=TIM4
+Mcu.IP6=USART2
+Mcu.IP7=USART3
+Mcu.IPNb=8
 Mcu.Name=STM32F103C(8-B)Tx
 Mcu.Name=STM32F103C(8-B)Tx
 Mcu.Package=LQFP48
 Mcu.Package=LQFP48
 Mcu.Pin0=PC14-OSC32_IN
 Mcu.Pin0=PC14-OSC32_IN
 Mcu.Pin1=PC15-OSC32_OUT
 Mcu.Pin1=PC15-OSC32_OUT
+Mcu.Pin10=PA9
+Mcu.Pin11=PA13
+Mcu.Pin12=PA14
+Mcu.Pin13=PB8
+Mcu.Pin14=PB9
+Mcu.Pin15=VP_SYS_VS_Systick
+Mcu.Pin16=VP_TIM3_VS_ClockSourceINT
+Mcu.Pin17=VP_TIM4_VS_ClockSourceINT
 Mcu.Pin2=PD0-OSC_IN
 Mcu.Pin2=PD0-OSC_IN
 Mcu.Pin3=PD1-OSC_OUT
 Mcu.Pin3=PD1-OSC_OUT
 Mcu.Pin4=PA2
 Mcu.Pin4=PA2
 Mcu.Pin5=PA3
 Mcu.Pin5=PA3
-Mcu.Pin6=PA13
-Mcu.Pin7=PA14
-Mcu.Pin8=VP_SYS_VS_Systick
-Mcu.PinsNb=9
+Mcu.Pin6=PA6
+Mcu.Pin7=PB10
+Mcu.Pin8=PB11
+Mcu.Pin9=PA8
+Mcu.PinsNb=18
 Mcu.ThirdPartyNb=0
 Mcu.ThirdPartyNb=0
 Mcu.UserConstants=
 Mcu.UserConstants=
 Mcu.UserName=STM32F103C8Tx
 Mcu.UserName=STM32F103C8Tx
@@ -52,6 +65,17 @@ PA3.GPIOParameters=GPIO_PuPd
 PA3.GPIO_PuPd=GPIO_PULLUP
 PA3.GPIO_PuPd=GPIO_PULLUP
 PA3.Mode=Asynchronous
 PA3.Mode=Asynchronous
 PA3.Signal=USART2_RX
 PA3.Signal=USART2_RX
+PA6.Locked=true
+PA6.Signal=S_TIM3_CH1
+PA8.Signal=S_TIM1_CH1
+PA9.Signal=S_TIM1_CH2
+PB10.Mode=Asynchronous
+PB10.Signal=USART3_TX
+PB11.Mode=Asynchronous
+PB11.Signal=USART3_RX
+PB8.Locked=true
+PB8.Signal=S_TIM4_CH3
+PB9.Signal=S_TIM4_CH4
 PC14-OSC32_IN.Mode=LSE-External-Oscillator
 PC14-OSC32_IN.Mode=LSE-External-Oscillator
 PC14-OSC32_IN.Signal=RCC_OSC32_IN
 PC14-OSC32_IN.Signal=RCC_OSC32_IN
 PC15-OSC32_OUT.Mode=LSE-External-Oscillator
 PC15-OSC32_OUT.Mode=LSE-External-Oscillator
@@ -91,7 +115,7 @@ ProjectManager.ToolChainLocation=
 ProjectManager.UAScriptAfterPath=
 ProjectManager.UAScriptAfterPath=
 ProjectManager.UAScriptBeforePath=
 ProjectManager.UAScriptBeforePath=
 ProjectManager.UnderRoot=false
 ProjectManager.UnderRoot=false
-ProjectManager.functionlistsort=1-MX_GPIO_Init-GPIO-false-HAL-true,2-SystemClock_Config-RCC-false-HAL-false,3-MX_USART2_UART_Init-USART2-false-HAL-true
+ProjectManager.functionlistsort=1-MX_GPIO_Init-GPIO-false-HAL-true,2-SystemClock_Config-RCC-false-HAL-false,3-MX_USART2_UART_Init-USART2-false-HAL-true,4-MX_USART3_UART_Init-USART3-false-HAL-true,5-MX_TIM3_Init-TIM3-false-HAL-true,6-MX_TIM4_Init-TIM4-false-HAL-true,7-MX_TIM1_Init-TIM1-false-HAL-true
 RCC.ADCFreqValue=12000000
 RCC.ADCFreqValue=12000000
 RCC.ADCPresc=RCC_ADCPCLK2_DIV6
 RCC.ADCPresc=RCC_ADCPCLK2_DIV6
 RCC.AHBFreq_Value=72000000
 RCC.AHBFreq_Value=72000000
@@ -103,20 +127,47 @@ RCC.APB2TimFreq_Value=72000000
 RCC.FCLKCortexFreq_Value=72000000
 RCC.FCLKCortexFreq_Value=72000000
 RCC.FamilyName=M
 RCC.FamilyName=M
 RCC.HCLKFreq_Value=72000000
 RCC.HCLKFreq_Value=72000000
-RCC.IPParameters=ADCFreqValue,ADCPresc,AHBFreq_Value,APB1CLKDivider,APB1Freq_Value,APB1TimFreq_Value,APB2Freq_Value,APB2TimFreq_Value,FCLKCortexFreq_Value,FamilyName,HCLKFreq_Value,MCOFreq_Value,PLLCLKFreq_Value,PLLMCOFreq_Value,PLLMUL,PLLSourceVirtual,SYSCLKFreq_VALUE,SYSCLKSource,TimSysFreq_Value,USBFreq_Value,USBPrescaler,VCOOutput2Freq_Value
-RCC.MCOFreq_Value=72000000
+RCC.IPParameters=ADCFreqValue,ADCPresc,AHBFreq_Value,APB1CLKDivider,APB1Freq_Value,APB1TimFreq_Value,APB2Freq_Value,APB2TimFreq_Value,FCLKCortexFreq_Value,FamilyName,HCLKFreq_Value,MCOFreq_Value,PLLCLKFreq_Value,PLLMCOFreq_Value,PLLMUL,PLLSourceVirtual,RCC_MCOSource,SYSCLKFreq_VALUE,SYSCLKSource,TimSysFreq_Value,USBFreq_Value,USBPrescaler,VCOOutput2Freq_Value
+RCC.MCOFreq_Value=36000000
 RCC.PLLCLKFreq_Value=72000000
 RCC.PLLCLKFreq_Value=72000000
 RCC.PLLMCOFreq_Value=36000000
 RCC.PLLMCOFreq_Value=36000000
 RCC.PLLMUL=RCC_PLL_MUL9
 RCC.PLLMUL=RCC_PLL_MUL9
 RCC.PLLSourceVirtual=RCC_PLLSOURCE_HSE
 RCC.PLLSourceVirtual=RCC_PLLSOURCE_HSE
+RCC.RCC_MCOSource=RCC_MCO1SOURCE_PLLCLK
 RCC.SYSCLKFreq_VALUE=72000000
 RCC.SYSCLKFreq_VALUE=72000000
 RCC.SYSCLKSource=RCC_SYSCLKSOURCE_PLLCLK
 RCC.SYSCLKSource=RCC_SYSCLKSOURCE_PLLCLK
 RCC.TimSysFreq_Value=72000000
 RCC.TimSysFreq_Value=72000000
 RCC.USBFreq_Value=48000000
 RCC.USBFreq_Value=48000000
 RCC.USBPrescaler=RCC_USBCLKSOURCE_PLL_DIV1_5
 RCC.USBPrescaler=RCC_USBCLKSOURCE_PLL_DIV1_5
 RCC.VCOOutput2Freq_Value=8000000
 RCC.VCOOutput2Freq_Value=8000000
+SH.S_TIM1_CH1.0=TIM1_CH1,Encoder_Interface
+SH.S_TIM1_CH1.ConfNb=1
+SH.S_TIM1_CH2.0=TIM1_CH2,Encoder_Interface
+SH.S_TIM1_CH2.ConfNb=1
+SH.S_TIM3_CH1.0=TIM3_CH1,PWM Generation1 CH1
+SH.S_TIM3_CH1.ConfNb=1
+SH.S_TIM4_CH3.0=TIM4_CH3,PWM Generation3 CH3
+SH.S_TIM4_CH3.ConfNb=1
+SH.S_TIM4_CH4.0=TIM4_CH4,PWM Generation4 CH4
+SH.S_TIM4_CH4.ConfNb=1
+TIM1.IPParameters=Prescaler
+TIM1.Prescaler=2-1
+TIM3.Channel-PWM\ Generation1\ CH1=TIM_CHANNEL_1
+TIM3.IPParameters=Channel-PWM Generation1 CH1,Prescaler,Period,Pulse-PWM Generation1 CH1
+TIM3.Period=10000-1
+TIM3.Prescaler=7200-1
+TIM3.Pulse-PWM\ Generation1\ CH1=50
+TIM4.Channel-PWM\ Generation3\ CH3=TIM_CHANNEL_3
+TIM4.Channel-PWM\ Generation4\ CH4=TIM_CHANNEL_4
+TIM4.IPParameters=Channel-PWM Generation3 CH3,Channel-PWM Generation4 CH4
 USART2.IPParameters=VirtualMode
 USART2.IPParameters=VirtualMode
 USART2.VirtualMode=VM_ASYNC
 USART2.VirtualMode=VM_ASYNC
+USART3.IPParameters=VirtualMode
+USART3.VirtualMode=VM_ASYNC
 VP_SYS_VS_Systick.Mode=SysTick
 VP_SYS_VS_Systick.Mode=SysTick
 VP_SYS_VS_Systick.Signal=SYS_VS_Systick
 VP_SYS_VS_Systick.Signal=SYS_VS_Systick
+VP_TIM3_VS_ClockSourceINT.Mode=Internal
+VP_TIM3_VS_ClockSourceINT.Signal=TIM3_VS_ClockSourceINT
+VP_TIM4_VS_ClockSourceINT.Mode=Internal
+VP_TIM4_VS_ClockSourceINT.Signal=TIM4_VS_ClockSourceINT
 board=custom
 board=custom

+ 1 - 1
bsp/stm32/stm32f103-keysking-learning/board/CubeMX_Config/Inc/stm32f1xx_hal_conf.h

@@ -64,7 +64,7 @@
 /*#define HAL_SMARTCARD_MODULE_ENABLED   */
 /*#define HAL_SMARTCARD_MODULE_ENABLED   */
 /*#define HAL_SPI_MODULE_ENABLED   */
 /*#define HAL_SPI_MODULE_ENABLED   */
 /*#define HAL_SRAM_MODULE_ENABLED   */
 /*#define HAL_SRAM_MODULE_ENABLED   */
-/*#define HAL_TIM_MODULE_ENABLED   */
+#define HAL_TIM_MODULE_ENABLED
 #define HAL_UART_MODULE_ENABLED
 #define HAL_UART_MODULE_ENABLED
 /*#define HAL_USART_MODULE_ENABLED   */
 /*#define HAL_USART_MODULE_ENABLED   */
 /*#define HAL_WWDG_MODULE_ENABLED   */
 /*#define HAL_WWDG_MODULE_ENABLED   */

+ 220 - 1
bsp/stm32/stm32f103-keysking-learning/board/CubeMX_Config/Src/stm32f1xx_hal_msp.c

@@ -58,7 +58,9 @@
 /* USER CODE BEGIN 0 */
 /* USER CODE BEGIN 0 */
 
 
 /* USER CODE END 0 */
 /* USER CODE END 0 */
-/**
+
+void HAL_TIM_MspPostInit(TIM_HandleTypeDef *htim);
+                                        /**
   * Initializes the Global MSP.
   * Initializes the Global MSP.
   */
   */
 void HAL_MspInit(void)
 void HAL_MspInit(void)
@@ -81,6 +83,178 @@ void HAL_MspInit(void)
   /* USER CODE END MspInit 1 */
   /* USER CODE END MspInit 1 */
 }
 }
 
 
+/**
+* @brief TIM_Encoder MSP Initialization
+* This function configures the hardware resources used in this example
+* @param htim_encoder: TIM_Encoder handle pointer
+* @retval None
+*/
+void HAL_TIM_Encoder_MspInit(TIM_HandleTypeDef* htim_encoder)
+{
+  GPIO_InitTypeDef GPIO_InitStruct = {0};
+  if(htim_encoder->Instance==TIM1)
+  {
+  /* USER CODE BEGIN TIM1_MspInit 0 */
+
+  /* USER CODE END TIM1_MspInit 0 */
+    /* Peripheral clock enable */
+    __HAL_RCC_TIM1_CLK_ENABLE();
+
+    __HAL_RCC_GPIOA_CLK_ENABLE();
+    /**TIM1 GPIO Configuration
+    PA8     ------> TIM1_CH1
+    PA9     ------> TIM1_CH2
+    */
+    GPIO_InitStruct.Pin = GPIO_PIN_8|GPIO_PIN_9;
+    GPIO_InitStruct.Mode = GPIO_MODE_INPUT;
+    GPIO_InitStruct.Pull = GPIO_NOPULL;
+    HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
+
+  /* USER CODE BEGIN TIM1_MspInit 1 */
+
+  /* USER CODE END TIM1_MspInit 1 */
+  }
+
+}
+
+/**
+* @brief TIM_Base MSP Initialization
+* This function configures the hardware resources used in this example
+* @param htim_base: TIM_Base handle pointer
+* @retval None
+*/
+void HAL_TIM_Base_MspInit(TIM_HandleTypeDef* htim_base)
+{
+  if(htim_base->Instance==TIM3)
+  {
+  /* USER CODE BEGIN TIM3_MspInit 0 */
+
+  /* USER CODE END TIM3_MspInit 0 */
+    /* Peripheral clock enable */
+    __HAL_RCC_TIM3_CLK_ENABLE();
+  /* USER CODE BEGIN TIM3_MspInit 1 */
+
+  /* USER CODE END TIM3_MspInit 1 */
+  }
+  else if(htim_base->Instance==TIM4)
+  {
+  /* USER CODE BEGIN TIM4_MspInit 0 */
+
+  /* USER CODE END TIM4_MspInit 0 */
+    /* Peripheral clock enable */
+    __HAL_RCC_TIM4_CLK_ENABLE();
+  /* USER CODE BEGIN TIM4_MspInit 1 */
+
+  /* USER CODE END TIM4_MspInit 1 */
+  }
+
+}
+
+void HAL_TIM_MspPostInit(TIM_HandleTypeDef* htim)
+{
+  GPIO_InitTypeDef GPIO_InitStruct = {0};
+  if(htim->Instance==TIM3)
+  {
+  /* USER CODE BEGIN TIM3_MspPostInit 0 */
+
+  /* USER CODE END TIM3_MspPostInit 0 */
+    __HAL_RCC_GPIOA_CLK_ENABLE();
+    /**TIM3 GPIO Configuration
+    PA6     ------> TIM3_CH1
+    */
+    GPIO_InitStruct.Pin = GPIO_PIN_6;
+    GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
+    GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
+    HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
+
+  /* USER CODE BEGIN TIM3_MspPostInit 1 */
+
+  /* USER CODE END TIM3_MspPostInit 1 */
+  }
+  else if(htim->Instance==TIM4)
+  {
+  /* USER CODE BEGIN TIM4_MspPostInit 0 */
+
+  /* USER CODE END TIM4_MspPostInit 0 */
+
+    __HAL_RCC_GPIOB_CLK_ENABLE();
+    /**TIM4 GPIO Configuration
+    PB8     ------> TIM4_CH3
+    PB9     ------> TIM4_CH4
+    */
+    GPIO_InitStruct.Pin = GPIO_PIN_8|GPIO_PIN_9;
+    GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
+    GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
+    HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
+
+  /* USER CODE BEGIN TIM4_MspPostInit 1 */
+
+  /* USER CODE END TIM4_MspPostInit 1 */
+  }
+
+}
+/**
+* @brief TIM_Encoder MSP De-Initialization
+* This function freeze the hardware resources used in this example
+* @param htim_encoder: TIM_Encoder handle pointer
+* @retval None
+*/
+void HAL_TIM_Encoder_MspDeInit(TIM_HandleTypeDef* htim_encoder)
+{
+  if(htim_encoder->Instance==TIM1)
+  {
+  /* USER CODE BEGIN TIM1_MspDeInit 0 */
+
+  /* USER CODE END TIM1_MspDeInit 0 */
+    /* Peripheral clock disable */
+    __HAL_RCC_TIM1_CLK_DISABLE();
+
+    /**TIM1 GPIO Configuration
+    PA8     ------> TIM1_CH1
+    PA9     ------> TIM1_CH2
+    */
+    HAL_GPIO_DeInit(GPIOA, GPIO_PIN_8|GPIO_PIN_9);
+
+  /* USER CODE BEGIN TIM1_MspDeInit 1 */
+
+  /* USER CODE END TIM1_MspDeInit 1 */
+  }
+
+}
+
+/**
+* @brief TIM_Base MSP De-Initialization
+* This function freeze the hardware resources used in this example
+* @param htim_base: TIM_Base handle pointer
+* @retval None
+*/
+void HAL_TIM_Base_MspDeInit(TIM_HandleTypeDef* htim_base)
+{
+  if(htim_base->Instance==TIM3)
+  {
+  /* USER CODE BEGIN TIM3_MspDeInit 0 */
+
+  /* USER CODE END TIM3_MspDeInit 0 */
+    /* Peripheral clock disable */
+    __HAL_RCC_TIM3_CLK_DISABLE();
+  /* USER CODE BEGIN TIM3_MspDeInit 1 */
+
+  /* USER CODE END TIM3_MspDeInit 1 */
+  }
+  else if(htim_base->Instance==TIM4)
+  {
+  /* USER CODE BEGIN TIM4_MspDeInit 0 */
+
+  /* USER CODE END TIM4_MspDeInit 0 */
+    /* Peripheral clock disable */
+    __HAL_RCC_TIM4_CLK_DISABLE();
+  /* USER CODE BEGIN TIM4_MspDeInit 1 */
+
+  /* USER CODE END TIM4_MspDeInit 1 */
+  }
+
+}
+
 /**
 /**
 * @brief UART MSP Initialization
 * @brief UART MSP Initialization
 * This function configures the hardware resources used in this example
 * This function configures the hardware resources used in this example
@@ -117,6 +291,33 @@ void HAL_UART_MspInit(UART_HandleTypeDef* huart)
 
 
   /* USER CODE END USART2_MspInit 1 */
   /* USER CODE END USART2_MspInit 1 */
   }
   }
+  else if(huart->Instance==USART3)
+  {
+  /* USER CODE BEGIN USART3_MspInit 0 */
+
+  /* USER CODE END USART3_MspInit 0 */
+    /* Peripheral clock enable */
+    __HAL_RCC_USART3_CLK_ENABLE();
+
+    __HAL_RCC_GPIOB_CLK_ENABLE();
+    /**USART3 GPIO Configuration
+    PB10     ------> USART3_TX
+    PB11     ------> USART3_RX
+    */
+    GPIO_InitStruct.Pin = GPIO_PIN_10;
+    GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
+    GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH;
+    HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
+
+    GPIO_InitStruct.Pin = GPIO_PIN_11;
+    GPIO_InitStruct.Mode = GPIO_MODE_INPUT;
+    GPIO_InitStruct.Pull = GPIO_NOPULL;
+    HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
+
+  /* USER CODE BEGIN USART3_MspInit 1 */
+
+  /* USER CODE END USART3_MspInit 1 */
+  }
 
 
 }
 }
 
 
@@ -146,6 +347,24 @@ void HAL_UART_MspDeInit(UART_HandleTypeDef* huart)
 
 
   /* USER CODE END USART2_MspDeInit 1 */
   /* USER CODE END USART2_MspDeInit 1 */
   }
   }
+  else if(huart->Instance==USART3)
+  {
+  /* USER CODE BEGIN USART3_MspDeInit 0 */
+
+  /* USER CODE END USART3_MspDeInit 0 */
+    /* Peripheral clock disable */
+    __HAL_RCC_USART3_CLK_DISABLE();
+
+    /**USART3 GPIO Configuration
+    PB10     ------> USART3_TX
+    PB11     ------> USART3_RX
+    */
+    HAL_GPIO_DeInit(GPIOB, GPIO_PIN_10|GPIO_PIN_11);
+
+  /* USER CODE BEGIN USART3_MspDeInit 1 */
+
+  /* USER CODE END USART3_MspDeInit 1 */
+  }
 
 
 }
 }
 
 

+ 66 - 1
bsp/stm32/stm32f103-keysking-learning/board/Kconfig

@@ -7,6 +7,13 @@ menu "Onboard Peripheral Drivers"
         select BSP_USING_UART
         select BSP_USING_UART
         select BSP_USING_UART2
         select BSP_USING_UART2
         default y
         default y
+    config BSP_USING_SERVO
+        bool "Enable Servo"
+        select BSP_USING_PWM
+        select BSP_USING_PWM4
+        select BSP_USING_PWM4_CH3
+        default n
+
 
 
 endmenu
 endmenu
 
 
@@ -23,7 +30,6 @@ menu "On-chip Peripheral Drivers"
         select RT_USING_SERIAL
         select RT_USING_SERIAL
         
         
         if BSP_USING_UART
         if BSP_USING_UART
-            
             config BSP_STM32_UART_V1_TX_TIMEOUT
             config BSP_STM32_UART_V1_TX_TIMEOUT
                 int "UART TX timeout"
                 int "UART TX timeout"
                 default 2000
                 default 2000
@@ -31,15 +37,74 @@ menu "On-chip Peripheral Drivers"
             config BSP_USING_UART2
             config BSP_USING_UART2
                 bool "Enable UART2"
                 bool "Enable UART2"
                 default y
                 default y
+            config BSP_USING_UART3
+                bool "Enable UART3"
+                default y
 
 
             #config BSP_UART2_RX_USING_DMA
             #config BSP_UART2_RX_USING_DMA
             #    bool "Enable UART2 RX DMA"
             #    bool "Enable UART2 RX DMA"
             #    depends on BSP_USING_UART2 && RT_SERIAL_USING_DMA
             #    depends on BSP_USING_UART2 && RT_SERIAL_USING_DMA
             #    default n
             #    default n
 
 
+        endif
+
+    menuconfig BSP_USING_PWM
+        bool "Enable PWM"
+        select RT_USING_PWM
+        default n
+
+        if BSP_USING_PWM
+            menuconfig BSP_USING_PWM3
+                bool "Enable PWM3"
+                default y
+                if BSP_USING_PWM3
+                    config BSP_USING_PWM3_CH1
+                        bool "Enable PWM3_CH1(PA6,Blue LED)"
+                        default y
+                    config BSP_USING_PWM3_CH2
+                        bool "Enable PWM3_CH2(PA7,Green LED)"
+                        default n
+                    config BSP_USING_PWM3_CH3
+                        bool "Enable PWM3_CH3(PB0,Red LED)"
+                        default n
+                    config BSP_USING_PWM3_CH4
+                        bool "Enable PWM3_CH4"
+                        default n
+                endif
+
+            menuconfig BSP_USING_PWM4
+                bool "Enable PWM4"
+                default n
+                if BSP_USING_PWM4
+                    config BSP_USING_PWM4_CH1
+                        bool "Enable PWM4_CH1"
+                        default n
+                    config BSP_USING_PWM4_CH2
+                        bool "Enable PWM4_CH2"
+                        default n
+                    config BSP_USING_PWM4_CH3
+                        bool "Enable PWM4_CH3(PB8,Servo)"
+                        default y
+                    config BSP_USING_PWM4_CH4
+                        bool "Enable PWM4_CH4(PB9,Beeper)"
+                        default y
+                endif
+
+        endif
+    menuconfig BSP_USING_PULSE_ENCODER
+        bool "Enable Pulse Encoder"
+        select RT_USING_PULSE_ENCODER
+        default n
+
+        if BSP_USING_PULSE_ENCODER
+            config BSP_USING_PULSE_ENCODER1
+            bool "Enable Pulse Encoder1"
+            default y
 
 
         endif
         endif
 
 
+
+
     source "$(BSP_DIR)/../libraries/HAL_Drivers/drivers/Kconfig"
     source "$(BSP_DIR)/../libraries/HAL_Drivers/drivers/Kconfig"
 
 
 endmenu
 endmenu

+ 52 - 52
bsp/stm32/stm32f103-keysking-learning/project.ewp

@@ -348,30 +348,30 @@
         <option>
         <option>
           <name>CCIncludePath2</name>
           <name>CCIncludePath2</name>
           <state />
           <state />
-          <state>$PROJ_DIR$\..\libraries\HAL_Drivers\drivers\config</state>
-          <state>$PROJ_DIR$\..\..\..\components\drivers\phy</state>
-          <state>$PROJ_DIR$\..\libraries\HAL_Drivers\drivers</state>
-          <state>$PROJ_DIR$\board\CubeMX_Config\Inc</state>
+          <state>$PROJ_DIR$\applications</state>
           <state>$PROJ_DIR$\packages\CMSIS-Core-latest\Include</state>
           <state>$PROJ_DIR$\packages\CMSIS-Core-latest\Include</state>
+          <state>$PROJ_DIR$\..\..\..\include</state>
           <state>$PROJ_DIR$\..\..\..\libcpu\arm\cortex-m3</state>
           <state>$PROJ_DIR$\..\..\..\libcpu\arm\cortex-m3</state>
-          <state>$PROJ_DIR$\..\..\..\components\libc\posix\io\eventfd</state>
-          <state>$PROJ_DIR$\..\..\..\components\libc\posix\io\poll</state>
+          <state>$PROJ_DIR$\..\libraries\HAL_Drivers\drivers</state>
+          <state>$PROJ_DIR$\..\..\..\components\finsh</state>
+          <state>$PROJ_DIR$\..\libraries\HAL_Drivers\drivers\config</state>
+          <state>$PROJ_DIR$\..\..\..\components\libc\posix\ipc</state>
+          <state>$PROJ_DIR$\board\CubeMX_Config\Inc</state>
           <state>$PROJ_DIR$\packages\stm32f1_hal_driver-latest\Inc</state>
           <state>$PROJ_DIR$\packages\stm32f1_hal_driver-latest\Inc</state>
+          <state>$PROJ_DIR$\.</state>
           <state>$PROJ_DIR$\..\..\..\components\libc\posix\io\epoll</state>
           <state>$PROJ_DIR$\..\..\..\components\libc\posix\io\epoll</state>
-          <state>$PROJ_DIR$\board</state>
+          <state>$PROJ_DIR$\..\..\..\components\drivers\include</state>
+          <state>$PROJ_DIR$\..\..\..\components\drivers\phy</state>
+          <state>$PROJ_DIR$\..\..\..\components\drivers\smp_call</state>
+          <state>$PROJ_DIR$\..\..\..\components\libc\compilers\common\include</state>
           <state>$PROJ_DIR$\..\..\..\components\libc\compilers\common\extension\fcntl\octal</state>
           <state>$PROJ_DIR$\..\..\..\components\libc\compilers\common\extension\fcntl\octal</state>
-          <state>$PROJ_DIR$\..\..\..\components\finsh</state>
-          <state>$PROJ_DIR$\..\..\..\include</state>
-          <state>$PROJ_DIR$\applications</state>
-          <state>$PROJ_DIR$\..\..\..\libcpu\arm\common</state>
+          <state>$PROJ_DIR$\..\..\..\components\libc\posix\io\poll</state>
           <state>$PROJ_DIR$\packages\stm32f1_cmsis_driver-latest\Include</state>
           <state>$PROJ_DIR$\packages\stm32f1_cmsis_driver-latest\Include</state>
           <state>$PROJ_DIR$\..\..\..\components\libc\compilers\common\extension</state>
           <state>$PROJ_DIR$\..\..\..\components\libc\compilers\common\extension</state>
-          <state>$PROJ_DIR$\.</state>
-          <state>$PROJ_DIR$\..\..\..\components\libc\compilers\common\include</state>
+          <state>$PROJ_DIR$\board</state>
           <state>$PROJ_DIR$\..\libraries\HAL_Drivers</state>
           <state>$PROJ_DIR$\..\libraries\HAL_Drivers</state>
-          <state>$PROJ_DIR$\..\..\..\components\drivers\include</state>
-          <state>$PROJ_DIR$\..\..\..\components\drivers\smp_call</state>
-          <state>$PROJ_DIR$\..\..\..\components\libc\posix\ipc</state>
+          <state>$PROJ_DIR$\..\..\..\components\libc\posix\io\eventfd</state>
+          <state>$PROJ_DIR$\..\..\..\libcpu\arm\common</state>
         </option>
         </option>
         <option>
         <option>
           <name>CCStdIncCheck</name>
           <name>CCStdIncCheck</name>
@@ -1394,30 +1394,30 @@
         <option>
         <option>
           <name>CCIncludePath2</name>
           <name>CCIncludePath2</name>
           <state />
           <state />
-          <state>$PROJ_DIR$\..\libraries\HAL_Drivers\drivers\config</state>
-          <state>$PROJ_DIR$\..\..\..\components\drivers\phy</state>
-          <state>$PROJ_DIR$\..\libraries\HAL_Drivers\drivers</state>
-          <state>$PROJ_DIR$\board\CubeMX_Config\Inc</state>
+          <state>$PROJ_DIR$\applications</state>
           <state>$PROJ_DIR$\packages\CMSIS-Core-latest\Include</state>
           <state>$PROJ_DIR$\packages\CMSIS-Core-latest\Include</state>
+          <state>$PROJ_DIR$\..\..\..\include</state>
           <state>$PROJ_DIR$\..\..\..\libcpu\arm\cortex-m3</state>
           <state>$PROJ_DIR$\..\..\..\libcpu\arm\cortex-m3</state>
-          <state>$PROJ_DIR$\..\..\..\components\libc\posix\io\eventfd</state>
-          <state>$PROJ_DIR$\..\..\..\components\libc\posix\io\poll</state>
+          <state>$PROJ_DIR$\..\libraries\HAL_Drivers\drivers</state>
+          <state>$PROJ_DIR$\..\..\..\components\finsh</state>
+          <state>$PROJ_DIR$\..\libraries\HAL_Drivers\drivers\config</state>
+          <state>$PROJ_DIR$\..\..\..\components\libc\posix\ipc</state>
+          <state>$PROJ_DIR$\board\CubeMX_Config\Inc</state>
           <state>$PROJ_DIR$\packages\stm32f1_hal_driver-latest\Inc</state>
           <state>$PROJ_DIR$\packages\stm32f1_hal_driver-latest\Inc</state>
+          <state>$PROJ_DIR$\.</state>
           <state>$PROJ_DIR$\..\..\..\components\libc\posix\io\epoll</state>
           <state>$PROJ_DIR$\..\..\..\components\libc\posix\io\epoll</state>
-          <state>$PROJ_DIR$\board</state>
+          <state>$PROJ_DIR$\..\..\..\components\drivers\include</state>
+          <state>$PROJ_DIR$\..\..\..\components\drivers\phy</state>
+          <state>$PROJ_DIR$\..\..\..\components\drivers\smp_call</state>
+          <state>$PROJ_DIR$\..\..\..\components\libc\compilers\common\include</state>
           <state>$PROJ_DIR$\..\..\..\components\libc\compilers\common\extension\fcntl\octal</state>
           <state>$PROJ_DIR$\..\..\..\components\libc\compilers\common\extension\fcntl\octal</state>
-          <state>$PROJ_DIR$\..\..\..\components\finsh</state>
-          <state>$PROJ_DIR$\..\..\..\include</state>
-          <state>$PROJ_DIR$\applications</state>
-          <state>$PROJ_DIR$\..\..\..\libcpu\arm\common</state>
+          <state>$PROJ_DIR$\..\..\..\components\libc\posix\io\poll</state>
           <state>$PROJ_DIR$\packages\stm32f1_cmsis_driver-latest\Include</state>
           <state>$PROJ_DIR$\packages\stm32f1_cmsis_driver-latest\Include</state>
           <state>$PROJ_DIR$\..\..\..\components\libc\compilers\common\extension</state>
           <state>$PROJ_DIR$\..\..\..\components\libc\compilers\common\extension</state>
-          <state>$PROJ_DIR$\.</state>
-          <state>$PROJ_DIR$\..\..\..\components\libc\compilers\common\include</state>
+          <state>$PROJ_DIR$\board</state>
           <state>$PROJ_DIR$\..\libraries\HAL_Drivers</state>
           <state>$PROJ_DIR$\..\libraries\HAL_Drivers</state>
-          <state>$PROJ_DIR$\..\..\..\components\drivers\include</state>
-          <state>$PROJ_DIR$\..\..\..\components\drivers\smp_call</state>
-          <state>$PROJ_DIR$\..\..\..\components\libc\posix\ipc</state>
+          <state>$PROJ_DIR$\..\..\..\components\libc\posix\io\eventfd</state>
+          <state>$PROJ_DIR$\..\..\..\libcpu\arm\common</state>
         </option>
         </option>
         <option>
         <option>
           <name>CCStdIncCheck</name>
           <name>CCStdIncCheck</name>
@@ -2208,18 +2208,18 @@
   </group>
   </group>
   <group>
   <group>
     <name>Finsh</name>
     <name>Finsh</name>
-    <file>
-      <name>$PROJ_DIR$\..\..\..\components\finsh\msh_parse.c</name>
-    </file>
     <file>
     <file>
       <name>$PROJ_DIR$\..\..\..\components\finsh\msh.c</name>
       <name>$PROJ_DIR$\..\..\..\components\finsh\msh.c</name>
     </file>
     </file>
     <file>
     <file>
-      <name>$PROJ_DIR$\..\..\..\components\finsh\cmd.c</name>
+      <name>$PROJ_DIR$\..\..\..\components\finsh\msh_parse.c</name>
     </file>
     </file>
     <file>
     <file>
       <name>$PROJ_DIR$\..\..\..\components\finsh\shell.c</name>
       <name>$PROJ_DIR$\..\..\..\components\finsh\shell.c</name>
     </file>
     </file>
+    <file>
+      <name>$PROJ_DIR$\..\..\..\components\finsh\cmd.c</name>
+    </file>
   </group>
   </group>
   <group>
   <group>
     <name>Kernel</name>
     <name>Kernel</name>
@@ -2272,19 +2272,19 @@
   <group>
   <group>
     <name>klibc</name>
     <name>klibc</name>
     <file>
     <file>
-      <name>$PROJ_DIR$\..\..\..\src\klibc\kerrno.c</name>
+      <name>$PROJ_DIR$\..\..\..\src\klibc\rt_vsnprintf_tiny.c</name>
     </file>
     </file>
     <file>
     <file>
-      <name>$PROJ_DIR$\..\..\..\src\klibc\rt_vsscanf.c</name>
+      <name>$PROJ_DIR$\..\..\..\src\klibc\kstring.c</name>
     </file>
     </file>
     <file>
     <file>
-      <name>$PROJ_DIR$\..\..\..\src\klibc\kstring.c</name>
+      <name>$PROJ_DIR$\..\..\..\src\klibc\kerrno.c</name>
     </file>
     </file>
     <file>
     <file>
-      <name>$PROJ_DIR$\..\..\..\src\klibc\kstdio.c</name>
+      <name>$PROJ_DIR$\..\..\..\src\klibc\rt_vsscanf.c</name>
     </file>
     </file>
     <file>
     <file>
-      <name>$PROJ_DIR$\..\..\..\src\klibc\rt_vsnprintf_tiny.c</name>
+      <name>$PROJ_DIR$\..\..\..\src\klibc\kstdio.c</name>
     </file>
     </file>
   </group>
   </group>
   <group>
   <group>
@@ -2320,40 +2320,40 @@
   <group>
   <group>
     <name>STM32F1-HAL</name>
     <name>STM32F1-HAL</name>
     <file>
     <file>
-      <name>$PROJ_DIR$\packages\stm32f1_hal_driver-latest\Src\stm32f1xx_hal_usart.c</name>
+      <name>$PROJ_DIR$\packages\stm32f1_hal_driver-latest\Src\stm32f1xx_hal_dma.c</name>
     </file>
     </file>
     <file>
     <file>
-      <name>$PROJ_DIR$\packages\stm32f1_hal_driver-latest\Src\stm32f1xx_hal_uart.c</name>
+      <name>$PROJ_DIR$\packages\stm32f1_hal_driver-latest\Src\stm32f1xx_hal_rcc.c</name>
     </file>
     </file>
     <file>
     <file>
-      <name>$PROJ_DIR$\packages\stm32f1_hal_driver-latest\Src\stm32f1xx_hal.c</name>
+      <name>$PROJ_DIR$\packages\stm32f1_hal_driver-latest\Src\stm32f1xx_hal_gpio.c</name>
     </file>
     </file>
     <file>
     <file>
-      <name>$PROJ_DIR$\packages\stm32f1_hal_driver-latest\Src\stm32f1xx_hal_gpio_ex.c</name>
+      <name>$PROJ_DIR$\packages\stm32f1_hal_driver-latest\Src\stm32f1xx_hal_usart.c</name>
     </file>
     </file>
     <file>
     <file>
       <name>$PROJ_DIR$\packages\stm32f1_hal_driver-latest\Src\stm32f1xx_hal_crc.c</name>
       <name>$PROJ_DIR$\packages\stm32f1_hal_driver-latest\Src\stm32f1xx_hal_crc.c</name>
     </file>
     </file>
     <file>
     <file>
-      <name>$PROJ_DIR$\packages\stm32f1_hal_driver-latest\Src\stm32f1xx_hal_dma.c</name>
+      <name>$PROJ_DIR$\packages\stm32f1_hal_driver-latest\Src\stm32f1xx_hal_uart.c</name>
     </file>
     </file>
     <file>
     <file>
-      <name>$PROJ_DIR$\packages\stm32f1_hal_driver-latest\Src\stm32f1xx_hal_pwr.c</name>
+      <name>$PROJ_DIR$\packages\stm32f1_hal_driver-latest\Src\stm32f1xx_hal.c</name>
     </file>
     </file>
     <file>
     <file>
-      <name>$PROJ_DIR$\packages\stm32f1_hal_driver-latest\Src\stm32f1xx_hal_cortex.c</name>
+      <name>$PROJ_DIR$\packages\stm32f1_hal_driver-latest\Src\stm32f1xx_hal_pwr.c</name>
     </file>
     </file>
     <file>
     <file>
-      <name>$PROJ_DIR$\packages\stm32f1_hal_driver-latest\Src\stm32f1xx_hal_rcc.c</name>
+      <name>$PROJ_DIR$\packages\stm32f1_hal_driver-latest\Src\stm32f1xx_hal_cec.c</name>
     </file>
     </file>
     <file>
     <file>
-      <name>$PROJ_DIR$\packages\stm32f1_hal_driver-latest\Src\stm32f1xx_hal_cec.c</name>
+      <name>$PROJ_DIR$\packages\stm32f1_hal_driver-latest\Src\stm32f1xx_hal_rcc_ex.c</name>
     </file>
     </file>
     <file>
     <file>
-      <name>$PROJ_DIR$\packages\stm32f1_hal_driver-latest\Src\stm32f1xx_hal_gpio.c</name>
+      <name>$PROJ_DIR$\packages\stm32f1_hal_driver-latest\Src\stm32f1xx_hal_cortex.c</name>
     </file>
     </file>
     <file>
     <file>
-      <name>$PROJ_DIR$\packages\stm32f1_hal_driver-latest\Src\stm32f1xx_hal_rcc_ex.c</name>
+      <name>$PROJ_DIR$\packages\stm32f1_hal_driver-latest\Src\stm32f1xx_hal_gpio_ex.c</name>
     </file>
     </file>
   </group>
   </group>
   <group>
   <group>

+ 42 - 42
bsp/stm32/stm32f103-keysking-learning/project.uvprojx

@@ -334,9 +334,9 @@
             <v6Rtti>0</v6Rtti>
             <v6Rtti>0</v6Rtti>
             <VariousControls>
             <VariousControls>
               <MiscControls />
               <MiscControls />
-              <Define>RT_USING_ARMLIBC, RT_USING_LIBC, __STDC_LIMIT_MACROS, __RTTHREAD__, __CLK_TCK=RT_TICK_PER_SECOND, USE_HAL_DRIVER</Define>
+              <Define>__STDC_LIMIT_MACROS, USE_HAL_DRIVER, RT_USING_ARMLIBC, __RTTHREAD__, __CLK_TCK=RT_TICK_PER_SECOND, RT_USING_LIBC</Define>
               <Undefine />
               <Undefine />
-              <IncludePath>..\..\..\components\libc\posix\io\eventfd;..\..\..\components\drivers\smp_call;..\libraries\HAL_Drivers\drivers\config;..\..\..\include;board;..\..\..\components\libc\compilers\common\extension\fcntl\octal;board\CubeMX_Config\Inc;..\..\..\components\drivers\include;..\..\..\components\libc\compilers\common\include;..\..\..\components\libc\compilers\common\extension;..\..\..\libcpu\arm\common;..\..\..\components\drivers\phy;..\libraries\HAL_Drivers;.;..\..\..\components\drivers\include;..\libraries\HAL_Drivers\drivers;..\..\..\components\libc\posix\io\epoll;..\..\..\components\drivers\include;applications;..\..\..\components\libc\posix\ipc;packages\CMSIS-Core-latest\Include;..\..\..\libcpu\arm\cortex-m3;..\..\..\components\drivers\include;packages\stm32f1_hal_driver-latest\Inc;..\..\..\components\finsh;..\..\..\components\drivers\include;..\..\..\components\libc\posix\io\poll;packages\stm32f1_cmsis_driver-latest\Include</IncludePath>
+              <IncludePath>packages\CMSIS-Core-latest\Include;..\..\..\components\drivers\include;..\..\..\components\libc\posix\io\epoll;packages\stm32f1_cmsis_driver-latest\Include;..\..\..\components\libc\posix\io\eventfd;..\..\..\libcpu\arm\cortex-m3;..\..\..\libcpu\arm\common;board;.;packages\stm32f1_hal_driver-latest\Inc;..\..\..\components\drivers\include;..\..\..\components\drivers\include;..\..\..\components\libc\compilers\common\include;..\..\..\components\drivers\smp_call;..\..\..\components\drivers\include;..\..\..\components\libc\posix\io\poll;..\..\..\components\libc\compilers\common\extension\fcntl\octal;..\..\..\components\libc\compilers\common\extension;..\..\..\include;..\..\..\components\finsh;..\libraries\HAL_Drivers\drivers;..\..\..\components\drivers\phy;applications;board\CubeMX_Config\Inc;..\libraries\HAL_Drivers;..\..\..\components\libc\posix\ipc;..\libraries\HAL_Drivers\drivers\config;..\..\..\components\drivers\include</IncludePath>
             </VariousControls>
             </VariousControls>
           </Cads>
           </Cads>
           <Aads>
           <Aads>
@@ -719,30 +719,30 @@
           <GroupName>Finsh</GroupName>
           <GroupName>Finsh</GroupName>
           <Files>
           <Files>
             <File>
             <File>
-              <FileName>msh_parse.c</FileName>
+              <FileName>shell.c</FileName>
               <FileType>1</FileType>
               <FileType>1</FileType>
-              <FilePath>..\..\..\components\finsh\msh_parse.c</FilePath>
+              <FilePath>..\..\..\components\finsh\shell.c</FilePath>
             </File>
             </File>
           </Files>
           </Files>
           <Files>
           <Files>
             <File>
             <File>
-              <FileName>cmd.c</FileName>
+              <FileName>msh.c</FileName>
               <FileType>1</FileType>
               <FileType>1</FileType>
-              <FilePath>..\..\..\components\finsh\cmd.c</FilePath>
+              <FilePath>..\..\..\components\finsh\msh.c</FilePath>
             </File>
             </File>
           </Files>
           </Files>
           <Files>
           <Files>
             <File>
             <File>
-              <FileName>msh.c</FileName>
+              <FileName>msh_parse.c</FileName>
               <FileType>1</FileType>
               <FileType>1</FileType>
-              <FilePath>..\..\..\components\finsh\msh.c</FilePath>
+              <FilePath>..\..\..\components\finsh\msh_parse.c</FilePath>
             </File>
             </File>
           </Files>
           </Files>
           <Files>
           <Files>
             <File>
             <File>
-              <FileName>shell.c</FileName>
+              <FileName>cmd.c</FileName>
               <FileType>1</FileType>
               <FileType>1</FileType>
-              <FilePath>..\..\..\components\finsh\shell.c</FilePath>
+              <FilePath>..\..\..\components\finsh\cmd.c</FilePath>
             </File>
             </File>
           </Files>
           </Files>
         </Group>
         </Group>
@@ -1038,37 +1038,37 @@
           <GroupName>klibc</GroupName>
           <GroupName>klibc</GroupName>
           <Files>
           <Files>
             <File>
             <File>
-              <FileName>rt_vsscanf.c</FileName>
+              <FileName>kerrno.c</FileName>
               <FileType>1</FileType>
               <FileType>1</FileType>
-              <FilePath>..\..\..\src\klibc\rt_vsscanf.c</FilePath>
+              <FilePath>..\..\..\src\klibc\kerrno.c</FilePath>
             </File>
             </File>
           </Files>
           </Files>
           <Files>
           <Files>
             <File>
             <File>
-              <FileName>kstdio.c</FileName>
+              <FileName>rt_vsscanf.c</FileName>
               <FileType>1</FileType>
               <FileType>1</FileType>
-              <FilePath>..\..\..\src\klibc\kstdio.c</FilePath>
+              <FilePath>..\..\..\src\klibc\rt_vsscanf.c</FilePath>
             </File>
             </File>
           </Files>
           </Files>
           <Files>
           <Files>
             <File>
             <File>
-              <FileName>rt_vsnprintf_tiny.c</FileName>
+              <FileName>kstring.c</FileName>
               <FileType>1</FileType>
               <FileType>1</FileType>
-              <FilePath>..\..\..\src\klibc\rt_vsnprintf_tiny.c</FilePath>
+              <FilePath>..\..\..\src\klibc\kstring.c</FilePath>
             </File>
             </File>
           </Files>
           </Files>
           <Files>
           <Files>
             <File>
             <File>
-              <FileName>kerrno.c</FileName>
+              <FileName>rt_vsnprintf_tiny.c</FileName>
               <FileType>1</FileType>
               <FileType>1</FileType>
-              <FilePath>..\..\..\src\klibc\kerrno.c</FilePath>
+              <FilePath>..\..\..\src\klibc\rt_vsnprintf_tiny.c</FilePath>
             </File>
             </File>
           </Files>
           </Files>
           <Files>
           <Files>
             <File>
             <File>
-              <FileName>kstring.c</FileName>
+              <FileName>kstdio.c</FileName>
               <FileType>1</FileType>
               <FileType>1</FileType>
-              <FilePath>..\..\..\src\klibc\kstring.c</FilePath>
+              <FilePath>..\..\..\src\klibc\kstdio.c</FilePath>
             </File>
             </File>
           </Files>
           </Files>
         </Group>
         </Group>
@@ -1131,72 +1131,72 @@
           <GroupName>STM32F1-HAL</GroupName>
           <GroupName>STM32F1-HAL</GroupName>
           <Files>
           <Files>
             <File>
             <File>
-              <FileName>stm32f1xx_hal_dma.c</FileName>
+              <FileName>stm32f1xx_hal_uart.c</FileName>
               <FileType>1</FileType>
               <FileType>1</FileType>
-              <FilePath>packages\stm32f1_hal_driver-latest\Src\stm32f1xx_hal_dma.c</FilePath>
+              <FilePath>packages\stm32f1_hal_driver-latest\Src\stm32f1xx_hal_uart.c</FilePath>
             </File>
             </File>
           </Files>
           </Files>
           <Files>
           <Files>
             <File>
             <File>
-              <FileName>stm32f1xx_hal_pwr.c</FileName>
+              <FileName>stm32f1xx_hal.c</FileName>
               <FileType>1</FileType>
               <FileType>1</FileType>
-              <FilePath>packages\stm32f1_hal_driver-latest\Src\stm32f1xx_hal_pwr.c</FilePath>
+              <FilePath>packages\stm32f1_hal_driver-latest\Src\stm32f1xx_hal.c</FilePath>
             </File>
             </File>
           </Files>
           </Files>
           <Files>
           <Files>
             <File>
             <File>
-              <FileName>stm32f1xx_hal_cec.c</FileName>
+              <FileName>stm32f1xx_hal_pwr.c</FileName>
               <FileType>1</FileType>
               <FileType>1</FileType>
-              <FilePath>packages\stm32f1_hal_driver-latest\Src\stm32f1xx_hal_cec.c</FilePath>
+              <FilePath>packages\stm32f1_hal_driver-latest\Src\stm32f1xx_hal_pwr.c</FilePath>
             </File>
             </File>
           </Files>
           </Files>
           <Files>
           <Files>
             <File>
             <File>
-              <FileName>stm32f1xx_hal_cortex.c</FileName>
+              <FileName>stm32f1xx_hal_usart.c</FileName>
               <FileType>1</FileType>
               <FileType>1</FileType>
-              <FilePath>packages\stm32f1_hal_driver-latest\Src\stm32f1xx_hal_cortex.c</FilePath>
+              <FilePath>packages\stm32f1_hal_driver-latest\Src\stm32f1xx_hal_usart.c</FilePath>
             </File>
             </File>
           </Files>
           </Files>
           <Files>
           <Files>
             <File>
             <File>
-              <FileName>stm32f1xx_hal_uart.c</FileName>
+              <FileName>stm32f1xx_hal_rcc.c</FileName>
               <FileType>1</FileType>
               <FileType>1</FileType>
-              <FilePath>packages\stm32f1_hal_driver-latest\Src\stm32f1xx_hal_uart.c</FilePath>
+              <FilePath>packages\stm32f1_hal_driver-latest\Src\stm32f1xx_hal_rcc.c</FilePath>
             </File>
             </File>
           </Files>
           </Files>
           <Files>
           <Files>
             <File>
             <File>
-              <FileName>stm32f1xx_hal_gpio_ex.c</FileName>
+              <FileName>stm32f1xx_hal_crc.c</FileName>
               <FileType>1</FileType>
               <FileType>1</FileType>
-              <FilePath>packages\stm32f1_hal_driver-latest\Src\stm32f1xx_hal_gpio_ex.c</FilePath>
+              <FilePath>packages\stm32f1_hal_driver-latest\Src\stm32f1xx_hal_crc.c</FilePath>
             </File>
             </File>
           </Files>
           </Files>
           <Files>
           <Files>
             <File>
             <File>
-              <FileName>stm32f1xx_hal_usart.c</FileName>
+              <FileName>stm32f1xx_hal_cec.c</FileName>
               <FileType>1</FileType>
               <FileType>1</FileType>
-              <FilePath>packages\stm32f1_hal_driver-latest\Src\stm32f1xx_hal_usart.c</FilePath>
+              <FilePath>packages\stm32f1_hal_driver-latest\Src\stm32f1xx_hal_cec.c</FilePath>
             </File>
             </File>
           </Files>
           </Files>
           <Files>
           <Files>
             <File>
             <File>
-              <FileName>stm32f1xx_hal.c</FileName>
+              <FileName>stm32f1xx_hal_gpio_ex.c</FileName>
               <FileType>1</FileType>
               <FileType>1</FileType>
-              <FilePath>packages\stm32f1_hal_driver-latest\Src\stm32f1xx_hal.c</FilePath>
+              <FilePath>packages\stm32f1_hal_driver-latest\Src\stm32f1xx_hal_gpio_ex.c</FilePath>
             </File>
             </File>
           </Files>
           </Files>
           <Files>
           <Files>
             <File>
             <File>
-              <FileName>stm32f1xx_hal_rcc.c</FileName>
+              <FileName>stm32f1xx_hal_cortex.c</FileName>
               <FileType>1</FileType>
               <FileType>1</FileType>
-              <FilePath>packages\stm32f1_hal_driver-latest\Src\stm32f1xx_hal_rcc.c</FilePath>
+              <FilePath>packages\stm32f1_hal_driver-latest\Src\stm32f1xx_hal_cortex.c</FilePath>
             </File>
             </File>
           </Files>
           </Files>
           <Files>
           <Files>
             <File>
             <File>
-              <FileName>stm32f1xx_hal_rcc_ex.c</FileName>
+              <FileName>stm32f1xx_hal_dma.c</FileName>
               <FileType>1</FileType>
               <FileType>1</FileType>
-              <FilePath>packages\stm32f1_hal_driver-latest\Src\stm32f1xx_hal_rcc_ex.c</FilePath>
+              <FilePath>packages\stm32f1_hal_driver-latest\Src\stm32f1xx_hal_dma.c</FilePath>
             </File>
             </File>
           </Files>
           </Files>
           <Files>
           <Files>
@@ -1208,9 +1208,9 @@
           </Files>
           </Files>
           <Files>
           <Files>
             <File>
             <File>
-              <FileName>stm32f1xx_hal_crc.c</FileName>
+              <FileName>stm32f1xx_hal_rcc_ex.c</FileName>
               <FileType>1</FileType>
               <FileType>1</FileType>
-              <FilePath>packages\stm32f1_hal_driver-latest\Src\stm32f1xx_hal_crc.c</FilePath>
+              <FilePath>packages\stm32f1_hal_driver-latest\Src\stm32f1xx_hal_rcc_ex.c</FilePath>
             </File>
             </File>
           </Files>
           </Files>
         </Group>
         </Group>

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