Browse Source

[stm32f412-nucleo] support RTduino Tone feature

Meco Man 1 năm trước cách đây
mục cha
commit
e961b051f9

+ 2 - 0
bsp/stm32/stm32f412-st-nucleo/applications/arduino_pinout/pins_arduino.h

@@ -53,4 +53,6 @@
 #define SS          D10
 #define RTDUINO_DEFAULT_SPI_BUS_NAME    "spi1"
 
+#define RTDUINO_TONE_HWTIMER_DEVICE_NAME "timer6"
+
 #endif /* Pins_Arduino_h */

+ 14 - 6
bsp/stm32/stm32f412-st-nucleo/board/CubeMX_Config/CubeMX_Config.ioc

@@ -5,6 +5,9 @@ ADC1.NbrOfConversionFlag=1
 ADC1.Rank-0\#ChannelRegularConversion=1
 ADC1.SamplingTime-0\#ChannelRegularConversion=ADC_SAMPLETIME_3CYCLES
 ADC1.master=1
+CAD.formats=
+CAD.pinconfig=
+CAD.provider=
 File.Version=6
 KeepUserPlacement=true
 Mcu.CPN=STM32F412ZGT6
@@ -15,10 +18,11 @@ Mcu.IP2=RCC
 Mcu.IP3=SYS
 Mcu.IP4=TIM1
 Mcu.IP5=TIM4
-Mcu.IP6=TIM14
-Mcu.IP7=USART3
-Mcu.IP8=USB_OTG_FS
-Mcu.IPNb=9
+Mcu.IP6=TIM6
+Mcu.IP7=TIM14
+Mcu.IP8=USART3
+Mcu.IP9=USB_OTG_FS
+Mcu.IPNb=10
 Mcu.Name=STM32F412Z(E-G)Tx
 Mcu.Package=LQFP144
 Mcu.Pin0=PC13
@@ -52,14 +56,15 @@ Mcu.Pin33=VP_ADC1_Vref_Input
 Mcu.Pin34=VP_SYS_VS_Systick
 Mcu.Pin35=VP_TIM1_VS_ClockSourceINT
 Mcu.Pin36=VP_TIM4_VS_ClockSourceINT
-Mcu.Pin37=VP_TIM14_VS_ClockSourceINT
+Mcu.Pin37=VP_TIM6_VS_ClockSourceINT
+Mcu.Pin38=VP_TIM14_VS_ClockSourceINT
 Mcu.Pin4=PH1 - OSC_OUT
 Mcu.Pin5=PC0
 Mcu.Pin6=PC1
 Mcu.Pin7=PC3
 Mcu.Pin8=PA3
 Mcu.Pin9=PA7
-Mcu.PinsNb=38
+Mcu.PinsNb=39
 Mcu.ThirdPartyNb=0
 Mcu.UserConstants=
 Mcu.UserName=STM32F412ZGTx
@@ -206,6 +211,7 @@ ProjectManager.PreviousToolchain=
 ProjectManager.ProjectBuild=false
 ProjectManager.ProjectFileName=CubeMX_Config.ioc
 ProjectManager.ProjectName=CubeMX_Config
+ProjectManager.ProjectStructure=
 ProjectManager.RegisterCallBack=
 ProjectManager.StackSize=0x400
 ProjectManager.TargetToolchain=MDK-ARM V5
@@ -340,5 +346,7 @@ VP_TIM1_VS_ClockSourceINT.Mode=Internal
 VP_TIM1_VS_ClockSourceINT.Signal=TIM1_VS_ClockSourceINT
 VP_TIM4_VS_ClockSourceINT.Mode=Internal
 VP_TIM4_VS_ClockSourceINT.Signal=TIM4_VS_ClockSourceINT
+VP_TIM6_VS_ClockSourceINT.Mode=Enable_Timer
+VP_TIM6_VS_ClockSourceINT.Signal=TIM6_VS_ClockSourceINT
 board=NUCLEO-F412ZG
 boardIOC=true

+ 22 - 0
bsp/stm32/stm32f412-st-nucleo/board/CubeMX_Config/Src/stm32f4xx_hal_msp.c

@@ -210,6 +210,17 @@ void HAL_TIM_Base_MspInit(TIM_HandleTypeDef* htim_base)
 
   /* USER CODE END TIM4_MspInit 1 */
   }
+  else if(htim_base->Instance==TIM6)
+  {
+  /* USER CODE BEGIN TIM6_MspInit 0 */
+
+  /* USER CODE END TIM6_MspInit 0 */
+    /* Peripheral clock enable */
+    __HAL_RCC_TIM6_CLK_ENABLE();
+  /* USER CODE BEGIN TIM6_MspInit 1 */
+
+  /* USER CODE END TIM6_MspInit 1 */
+  }
   else if(htim_base->Instance==TIM14)
   {
   /* USER CODE BEGIN TIM14_MspInit 0 */
@@ -324,6 +335,17 @@ void HAL_TIM_Base_MspDeInit(TIM_HandleTypeDef* htim_base)
 
   /* USER CODE END TIM4_MspDeInit 1 */
   }
+  else if(htim_base->Instance==TIM6)
+  {
+  /* USER CODE BEGIN TIM6_MspDeInit 0 */
+
+  /* USER CODE END TIM6_MspDeInit 0 */
+    /* Peripheral clock disable */
+    __HAL_RCC_TIM6_CLK_DISABLE();
+  /* USER CODE BEGIN TIM6_MspDeInit 1 */
+
+  /* USER CODE END TIM6_MspDeInit 1 */
+  }
   else if(htim_base->Instance==TIM14)
   {
   /* USER CODE BEGIN TIM14_MspDeInit 0 */

+ 12 - 0
bsp/stm32/stm32f412-st-nucleo/board/Kconfig

@@ -15,6 +15,8 @@ menu "Onboard Peripheral Drivers"
         select BSP_USING_GPIO
         select BSP_USING_ADC
         select BSP_USING_ADC1
+        select BSP_USING_TIM
+        select BSP_USING_TIM6
         select BSP_USING_PWM
         select BSP_USING_PWM14
         select BSP_USING_PWM4
@@ -123,6 +125,16 @@ menu "On-chip Peripheral Drivers"
                 endif
         endif
 
+    menuconfig BSP_USING_TIM
+        bool "Enable timer"
+        default n
+        select RT_USING_HWTIMER
+        if BSP_USING_TIM
+            config BSP_USING_TIM6
+                bool "Enable TIM6"
+                default n
+        endif
+
     menuconfig BSP_USING_I2C
         bool "Enable I2C BUS"
         default n