commit eeaa7d640e8fafc29e9901d4996aa2c6836a3ed6
parent 2aea0164f60088ec3a3029537bf68cf1a8557fff
Author: Martin Kloeckner <mjkloeckner@gmail.com>
Date: Tue, 31 Mar 2026 13:16:24 -0300
Habilitar el canal 1 del timer 3 para el buzzer
Lo pongo en commits separdos ya que CubeMX modificó otros parametros
debido a conflictos en los pines. Por si acaso se rompe algo que no se
haya detectado en el commit posterior.
Diffstat:
5 files changed, 184 insertions(+), 73 deletions(-)
diff --git a/firmware/Core/Inc/main.h b/firmware/Core/Inc/main.h
@@ -34,6 +34,7 @@ extern "C" {
extern I2C_HandleTypeDef hi2c1;
extern RTC_HandleTypeDef hrtc;
extern TIM_HandleTypeDef htim1;
+extern TIM_HandleTypeDef htim3;
extern UART_HandleTypeDef huart1;
extern RTC_TimeTypeDef s_time;
diff --git a/firmware/Core/Src/main.c b/firmware/Core/Src/main.c
@@ -50,10 +50,11 @@ DMA_HandleTypeDef hdma_i2c1_tx;
RTC_HandleTypeDef hrtc;
TIM_HandleTypeDef htim1;
+TIM_HandleTypeDef htim3;
UART_HandleTypeDef huart1;
-DMA_HandleTypeDef hdma_usart1_rx;
DMA_HandleTypeDef hdma_usart1_tx;
+DMA_HandleTypeDef hdma_usart1_rx;
/* USER CODE BEGIN PV */
@@ -63,10 +64,11 @@ DMA_HandleTypeDef hdma_usart1_tx;
void SystemClock_Config(void);
static void MX_GPIO_Init(void);
static void MX_DMA_Init(void);
-static void MX_USART1_UART_Init(void);
static void MX_RTC_Init(void);
static void MX_I2C1_Init(void);
static void MX_TIM1_Init(void);
+static void MX_USART1_UART_Init(void);
+static void MX_TIM3_Init(void);
/* USER CODE BEGIN PFP */
/* USER CODE END PFP */
@@ -114,10 +116,11 @@ int main(void)
/* Initialize all configured peripherals */
MX_GPIO_Init();
MX_DMA_Init();
- MX_USART1_UART_Init();
MX_RTC_Init();
MX_I2C1_Init();
MX_TIM1_Init();
+ MX_USART1_UART_Init();
+ MX_TIM3_Init();
/* USER CODE BEGIN 2 */
/* Application Init */
@@ -364,6 +367,65 @@ static void MX_TIM1_Init(void)
}
/**
+ * @brief TIM3 Initialization Function
+ * @param None
+ * @retval None
+ */
+static void MX_TIM3_Init(void)
+{
+
+ /* USER CODE BEGIN TIM3_Init 0 */
+
+ /* USER CODE END TIM3_Init 0 */
+
+ TIM_ClockConfigTypeDef sClockSourceConfig = {0};
+ TIM_MasterConfigTypeDef sMasterConfig = {0};
+ TIM_OC_InitTypeDef sConfigOC = {0};
+
+ /* USER CODE BEGIN TIM3_Init 1 */
+
+ /* USER CODE END TIM3_Init 1 */
+ htim3.Instance = TIM3;
+ htim3.Init.Prescaler = 0;
+ htim3.Init.CounterMode = TIM_COUNTERMODE_UP;
+ htim3.Init.Period = 8000;
+ htim3.Init.ClockDivision = TIM_CLOCKDIVISION_DIV1;
+ htim3.Init.AutoReloadPreload = TIM_AUTORELOAD_PRELOAD_DISABLE;
+ if (HAL_TIM_Base_Init(&htim3) != HAL_OK)
+ {
+ Error_Handler();
+ }
+ sClockSourceConfig.ClockSource = TIM_CLOCKSOURCE_INTERNAL;
+ if (HAL_TIM_ConfigClockSource(&htim3, &sClockSourceConfig) != HAL_OK)
+ {
+ Error_Handler();
+ }
+ if (HAL_TIM_PWM_Init(&htim3) != HAL_OK)
+ {
+ Error_Handler();
+ }
+ sMasterConfig.MasterOutputTrigger = TIM_TRGO_RESET;
+ sMasterConfig.MasterSlaveMode = TIM_MASTERSLAVEMODE_DISABLE;
+ if (HAL_TIMEx_MasterConfigSynchronization(&htim3, &sMasterConfig) != HAL_OK)
+ {
+ Error_Handler();
+ }
+ sConfigOC.OCMode = TIM_OCMODE_PWM1;
+ sConfigOC.Pulse = 4000;
+ sConfigOC.OCPolarity = TIM_OCPOLARITY_HIGH;
+ sConfigOC.OCFastMode = TIM_OCFAST_DISABLE;
+ if (HAL_TIM_PWM_ConfigChannel(&htim3, &sConfigOC, TIM_CHANNEL_1) != HAL_OK)
+ {
+ Error_Handler();
+ }
+ /* USER CODE BEGIN TIM3_Init 2 */
+
+ /* USER CODE END TIM3_Init 2 */
+ HAL_TIM_MspPostInit(&htim3);
+
+}
+
+/**
* @brief USART1 Initialization Function
* @param None
* @retval None
@@ -379,7 +441,7 @@ static void MX_USART1_UART_Init(void)
/* USER CODE END USART1_Init 1 */
huart1.Instance = USART1;
- huart1.Init.BaudRate = 9600;
+ huart1.Init.BaudRate = 115200;
huart1.Init.WordLength = UART_WORDLENGTH_8B;
huart1.Init.StopBits = UART_STOPBITS_1;
huart1.Init.Parity = UART_PARITY_NONE;
diff --git a/firmware/Core/Src/stm32f1xx_hal_msp.c b/firmware/Core/Src/stm32f1xx_hal_msp.c
@@ -25,10 +25,10 @@
/* USER CODE END Includes */
extern DMA_HandleTypeDef hdma_i2c1_tx;
-extern DMA_HandleTypeDef hdma_usart1_rx;
-
extern DMA_HandleTypeDef hdma_usart1_tx;
+extern DMA_HandleTypeDef hdma_usart1_rx;
+
/* Private typedef -----------------------------------------------------------*/
/* USER CODE BEGIN TD */
@@ -64,7 +64,7 @@ extern DMA_HandleTypeDef hdma_usart1_tx;
/* USER CODE END 0 */
void HAL_TIM_MspPostInit(TIM_HandleTypeDef *htim);
- /**
+ /**
* Initializes the Global MSP.
*/
void HAL_MspInit(void)
@@ -251,7 +251,17 @@ void HAL_TIM_Base_MspInit(TIM_HandleTypeDef* htim_base)
/* USER CODE BEGIN TIM1_MspInit 1 */
/* USER CODE END TIM1_MspInit 1 */
+ }
+ else 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 */
}
}
@@ -264,7 +274,6 @@ void HAL_TIM_MspPostInit(TIM_HandleTypeDef* htim)
/* USER CODE BEGIN TIM1_MspPostInit 0 */
/* USER CODE END TIM1_MspPostInit 0 */
-
__HAL_RCC_GPIOA_CLK_ENABLE();
/**TIM1 GPIO Configuration
PA8 ------> TIM1_CH1
@@ -278,6 +287,25 @@ void HAL_TIM_MspPostInit(TIM_HandleTypeDef* htim)
/* USER CODE END TIM1_MspPostInit 1 */
}
+ else 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 */
+ }
}
/**
@@ -299,6 +327,17 @@ void HAL_TIM_Base_MspDeInit(TIM_HandleTypeDef* htim_base)
/* USER CODE END TIM1_MspDeInit 1 */
}
+ else 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 */
+ }
}
@@ -329,22 +368,6 @@ void HAL_UART_MspInit(UART_HandleTypeDef* huart)
HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
/* USART1 DMA Init */
- /* USART1_RX Init */
- hdma_usart1_rx.Instance = DMA1_Channel5;
- hdma_usart1_rx.Init.Direction = DMA_PERIPH_TO_MEMORY;
- hdma_usart1_rx.Init.PeriphInc = DMA_PINC_DISABLE;
- hdma_usart1_rx.Init.MemInc = DMA_MINC_ENABLE;
- hdma_usart1_rx.Init.PeriphDataAlignment = DMA_PDATAALIGN_BYTE;
- hdma_usart1_rx.Init.MemDataAlignment = DMA_MDATAALIGN_BYTE;
- hdma_usart1_rx.Init.Mode = DMA_NORMAL;
- hdma_usart1_rx.Init.Priority = DMA_PRIORITY_VERY_HIGH;
- if (HAL_DMA_Init(&hdma_usart1_rx) != HAL_OK)
- {
- Error_Handler();
- }
-
- __HAL_LINKDMA(huart,hdmarx,hdma_usart1_rx);
-
/* USART1_TX Init */
hdma_usart1_tx.Instance = DMA1_Channel4;
hdma_usart1_tx.Init.Direction = DMA_MEMORY_TO_PERIPH;
@@ -353,7 +376,7 @@ void HAL_UART_MspInit(UART_HandleTypeDef* huart)
hdma_usart1_tx.Init.PeriphDataAlignment = DMA_PDATAALIGN_BYTE;
hdma_usart1_tx.Init.MemDataAlignment = DMA_MDATAALIGN_BYTE;
hdma_usart1_tx.Init.Mode = DMA_NORMAL;
- hdma_usart1_tx.Init.Priority = DMA_PRIORITY_VERY_HIGH;
+ hdma_usart1_tx.Init.Priority = DMA_PRIORITY_HIGH;
if (HAL_DMA_Init(&hdma_usart1_tx) != HAL_OK)
{
Error_Handler();
@@ -361,6 +384,22 @@ void HAL_UART_MspInit(UART_HandleTypeDef* huart)
__HAL_LINKDMA(huart,hdmatx,hdma_usart1_tx);
+ /* USART1_RX Init */
+ hdma_usart1_rx.Instance = DMA1_Channel5;
+ hdma_usart1_rx.Init.Direction = DMA_PERIPH_TO_MEMORY;
+ hdma_usart1_rx.Init.PeriphInc = DMA_PINC_DISABLE;
+ hdma_usart1_rx.Init.MemInc = DMA_MINC_ENABLE;
+ hdma_usart1_rx.Init.PeriphDataAlignment = DMA_PDATAALIGN_BYTE;
+ hdma_usart1_rx.Init.MemDataAlignment = DMA_MDATAALIGN_BYTE;
+ hdma_usart1_rx.Init.Mode = DMA_NORMAL;
+ hdma_usart1_rx.Init.Priority = DMA_PRIORITY_HIGH;
+ if (HAL_DMA_Init(&hdma_usart1_rx) != HAL_OK)
+ {
+ Error_Handler();
+ }
+
+ __HAL_LINKDMA(huart,hdmarx,hdma_usart1_rx);
+
/* USART1 interrupt Init */
HAL_NVIC_SetPriority(USART1_IRQn, 0, 0);
HAL_NVIC_EnableIRQ(USART1_IRQn);
@@ -394,8 +433,8 @@ void HAL_UART_MspDeInit(UART_HandleTypeDef* huart)
HAL_GPIO_DeInit(GPIOA, GPIO_PIN_9);
/* USART1 DMA DeInit */
- HAL_DMA_DeInit(huart->hdmarx);
HAL_DMA_DeInit(huart->hdmatx);
+ HAL_DMA_DeInit(huart->hdmarx);
/* USART1 interrupt DeInit */
HAL_NVIC_DisableIRQ(USART1_IRQn);
diff --git a/firmware/Core/Src/stm32f1xx_it.c b/firmware/Core/Src/stm32f1xx_it.c
@@ -57,8 +57,8 @@
/* External variables --------------------------------------------------------*/
extern DMA_HandleTypeDef hdma_i2c1_tx;
extern I2C_HandleTypeDef hi2c1;
-extern DMA_HandleTypeDef hdma_usart1_rx;
extern DMA_HandleTypeDef hdma_usart1_tx;
+extern DMA_HandleTypeDef hdma_usart1_rx;
extern UART_HandleTypeDef huart1;
/* USER CODE BEGIN EV */
diff --git a/firmware/tdse-tf_3-02.ioc b/firmware/tdse-tf_3-02.ioc
@@ -2,28 +2,28 @@
CAD.formats=
CAD.pinconfig=
CAD.provider=
-Dma.I2C1_TX.2.Direction=DMA_MEMORY_TO_PERIPH
-Dma.I2C1_TX.2.Instance=DMA1_Channel6
-Dma.I2C1_TX.2.MemDataAlignment=DMA_MDATAALIGN_BYTE
-Dma.I2C1_TX.2.MemInc=DMA_MINC_ENABLE
-Dma.I2C1_TX.2.Mode=DMA_NORMAL
-Dma.I2C1_TX.2.PeriphDataAlignment=DMA_PDATAALIGN_BYTE
-Dma.I2C1_TX.2.PeriphInc=DMA_PINC_DISABLE
-Dma.I2C1_TX.2.Priority=DMA_PRIORITY_LOW
-Dma.I2C1_TX.2.RequestParameters=Instance,Direction,PeriphInc,MemInc,PeriphDataAlignment,MemDataAlignment,Mode,Priority
-Dma.Request0=USART1_RX
+Dma.I2C1_TX.0.Direction=DMA_MEMORY_TO_PERIPH
+Dma.I2C1_TX.0.Instance=DMA1_Channel6
+Dma.I2C1_TX.0.MemDataAlignment=DMA_MDATAALIGN_BYTE
+Dma.I2C1_TX.0.MemInc=DMA_MINC_ENABLE
+Dma.I2C1_TX.0.Mode=DMA_NORMAL
+Dma.I2C1_TX.0.PeriphDataAlignment=DMA_PDATAALIGN_BYTE
+Dma.I2C1_TX.0.PeriphInc=DMA_PINC_DISABLE
+Dma.I2C1_TX.0.Priority=DMA_PRIORITY_LOW
+Dma.I2C1_TX.0.RequestParameters=Instance,Direction,PeriphInc,MemInc,PeriphDataAlignment,MemDataAlignment,Mode,Priority
+Dma.Request0=I2C1_TX
Dma.Request1=USART1_TX
-Dma.Request2=I2C1_TX
+Dma.Request2=USART1_RX
Dma.RequestsNb=3
-Dma.USART1_RX.0.Direction=DMA_PERIPH_TO_MEMORY
-Dma.USART1_RX.0.Instance=DMA1_Channel5
-Dma.USART1_RX.0.MemDataAlignment=DMA_MDATAALIGN_BYTE
-Dma.USART1_RX.0.MemInc=DMA_MINC_ENABLE
-Dma.USART1_RX.0.Mode=DMA_NORMAL
-Dma.USART1_RX.0.PeriphDataAlignment=DMA_PDATAALIGN_BYTE
-Dma.USART1_RX.0.PeriphInc=DMA_PINC_DISABLE
-Dma.USART1_RX.0.Priority=DMA_PRIORITY_VERY_HIGH
-Dma.USART1_RX.0.RequestParameters=Instance,Direction,PeriphInc,MemInc,PeriphDataAlignment,MemDataAlignment,Mode,Priority
+Dma.USART1_RX.2.Direction=DMA_PERIPH_TO_MEMORY
+Dma.USART1_RX.2.Instance=DMA1_Channel5
+Dma.USART1_RX.2.MemDataAlignment=DMA_MDATAALIGN_BYTE
+Dma.USART1_RX.2.MemInc=DMA_MINC_ENABLE
+Dma.USART1_RX.2.Mode=DMA_NORMAL
+Dma.USART1_RX.2.PeriphDataAlignment=DMA_PDATAALIGN_BYTE
+Dma.USART1_RX.2.PeriphInc=DMA_PINC_DISABLE
+Dma.USART1_RX.2.Priority=DMA_PRIORITY_HIGH
+Dma.USART1_RX.2.RequestParameters=Instance,Direction,PeriphInc,MemInc,PeriphDataAlignment,MemDataAlignment,Mode,Priority
Dma.USART1_TX.1.Direction=DMA_MEMORY_TO_PERIPH
Dma.USART1_TX.1.Instance=DMA1_Channel4
Dma.USART1_TX.1.MemDataAlignment=DMA_MDATAALIGN_BYTE
@@ -31,7 +31,7 @@ Dma.USART1_TX.1.MemInc=DMA_MINC_ENABLE
Dma.USART1_TX.1.Mode=DMA_NORMAL
Dma.USART1_TX.1.PeriphDataAlignment=DMA_PDATAALIGN_BYTE
Dma.USART1_TX.1.PeriphInc=DMA_PINC_DISABLE
-Dma.USART1_TX.1.Priority=DMA_PRIORITY_VERY_HIGH
+Dma.USART1_TX.1.Priority=DMA_PRIORITY_HIGH
Dma.USART1_TX.1.RequestParameters=Instance,Direction,PeriphInc,MemInc,PeriphDataAlignment,MemDataAlignment,Mode,Priority
File.Version=6
GPIO.groupedBy=Group By Peripherals
@@ -45,35 +45,38 @@ Mcu.IP3=RCC
Mcu.IP4=RTC
Mcu.IP5=SYS
Mcu.IP6=TIM1
-Mcu.IP7=USART1
-Mcu.IPNb=8
+Mcu.IP7=TIM3
+Mcu.IP8=USART1
+Mcu.IPNb=9
Mcu.Name=STM32F103R(8-B)Tx
Mcu.Package=LQFP64
Mcu.Pin0=PC13-TAMPER-RTC
Mcu.Pin1=PC14-OSC32_IN
-Mcu.Pin10=PA9
-Mcu.Pin11=PA10
-Mcu.Pin12=PA13
-Mcu.Pin13=PA14
-Mcu.Pin14=PB3
-Mcu.Pin15=PB4
-Mcu.Pin16=PB5
-Mcu.Pin17=PB8
-Mcu.Pin18=PB9
-Mcu.Pin19=VP_RTC_VS_RTC_Activate
+Mcu.Pin10=PA8
+Mcu.Pin11=PA9
+Mcu.Pin12=PA10
+Mcu.Pin13=PA13
+Mcu.Pin14=PA14
+Mcu.Pin15=PB3
+Mcu.Pin16=PB4
+Mcu.Pin17=PB5
+Mcu.Pin18=PB8
+Mcu.Pin19=PB9
Mcu.Pin2=PC15-OSC32_OUT
-Mcu.Pin20=VP_RTC_VS_RTC_Calendar
-Mcu.Pin21=VP_RTC_No_RTC_Output
-Mcu.Pin22=VP_SYS_VS_Systick
-Mcu.Pin23=VP_TIM1_VS_ClockSourceINT
+Mcu.Pin20=VP_RTC_VS_RTC_Activate
+Mcu.Pin21=VP_RTC_VS_RTC_Calendar
+Mcu.Pin22=VP_RTC_No_RTC_Output
+Mcu.Pin23=VP_SYS_VS_Systick
+Mcu.Pin24=VP_TIM1_VS_ClockSourceINT
+Mcu.Pin25=VP_TIM3_VS_ClockSourceINT
Mcu.Pin3=PD0-OSC_IN
Mcu.Pin4=PD1-OSC_OUT
Mcu.Pin5=PA2
Mcu.Pin6=PA3
Mcu.Pin7=PA5
-Mcu.Pin8=PB10
-Mcu.Pin9=PA8
-Mcu.PinsNb=24
+Mcu.Pin8=PA6
+Mcu.Pin9=PB10
+Mcu.PinsNb=26
Mcu.ThirdPartyNb=0
Mcu.UserConstants=
Mcu.UserName=STM32F103RBTx
@@ -132,9 +135,9 @@ PA5.GPIO_PuPd=GPIO_NOPULL
PA5.GPIO_Speed=GPIO_SPEED_FREQ_LOW
PA5.Locked=true
PA5.Signal=GPIO_Output
+PA6.Signal=S_TIM3_CH1
PA8.Signal=S_TIM1_CH1
-PA9.GPIOParameters=GPIO_Mode
-PA9.GPIO_Mode=GPIO_MODE_AF_OD
+PA9.Locked=true
PA9.Mode=Half_duplex(single_wire_mode)
PA9.Signal=USART1_TX
PB10.GPIOParameters=GPIO_PuPd,GPIO_Label
@@ -211,7 +214,7 @@ ProjectManager.ToolChainLocation=
ProjectManager.UAScriptAfterPath=
ProjectManager.UAScriptBeforePath=
ProjectManager.UnderRoot=true
-ProjectManager.functionlistsort=1-SystemClock_Config-RCC-false-HAL-false,2-MX_GPIO_Init-GPIO-false-HAL-true,3-MX_DMA_Init-DMA-false-HAL-true,4-MX_USART1_UART_Init-USART1-false-HAL-true,5-MX_RTC_Init-RTC-false-HAL-true,6-MX_I2C1_Init-I2C1-false-HAL-true,7-MX_TIM1_Init-TIM1-false-HAL-true
+ProjectManager.functionlistsort=1-SystemClock_Config-RCC-false-HAL-false,2-MX_GPIO_Init-GPIO-false-HAL-true,3-MX_DMA_Init-DMA-false-HAL-true,4-MX_RTC_Init-RTC-false-HAL-true,5-MX_I2C1_Init-I2C1-false-HAL-true,6-MX_TIM1_Init-TIM1-false-HAL-true,7-MX_USART1_UART_Init-USART1-false-HAL-true,8-MX_TIM3_Init-TIM3-false-HAL-true
RCC.ADCFreqValue=32000000
RCC.AHBFreq_Value=64000000
RCC.APB1CLKDivider=RCC_HCLK_DIV2
@@ -241,14 +244,18 @@ SH.GPXTI13.0=GPIO_EXTI13
SH.GPXTI13.ConfNb=1
SH.S_TIM1_CH1.0=TIM1_CH1,PWM Generation1 CH1
SH.S_TIM1_CH1.ConfNb=1
+SH.S_TIM3_CH1.0=TIM3_CH1,PWM Generation1 CH1
+SH.S_TIM3_CH1.ConfNb=1
TIM1.Channel-PWM\ Generation1\ CH1=TIM_CHANNEL_1
TIM1.IPParameters=Channel-PWM Generation1 CH1,Prescaler,Period
TIM1.Period=100-1
TIM1.Prescaler=64-1
-USART1.BaudRate=9600
-USART1.IPParameters=VirtualMode,BaudRate,WordLength
+TIM3.Channel-PWM\ Generation1\ CH1=TIM_CHANNEL_1
+TIM3.IPParameters=Channel-PWM Generation1 CH1,Period,Pulse-PWM Generation1 CH1
+TIM3.Period=8000
+TIM3.Pulse-PWM\ Generation1\ CH1=4000
+USART1.IPParameters=VirtualMode
USART1.VirtualMode=VM_ASYNC
-USART1.WordLength=WORDLENGTH_8B
VP_RTC_No_RTC_Output.Mode=RTC_OUT_NO
VP_RTC_No_RTC_Output.Signal=RTC_No_RTC_Output
VP_RTC_VS_RTC_Activate.Mode=RTC_Enabled
@@ -259,5 +266,7 @@ VP_SYS_VS_Systick.Mode=SysTick
VP_SYS_VS_Systick.Signal=SYS_VS_Systick
VP_TIM1_VS_ClockSourceINT.Mode=Internal
VP_TIM1_VS_ClockSourceINT.Signal=TIM1_VS_ClockSourceINT
+VP_TIM3_VS_ClockSourceINT.Mode=Internal
+VP_TIM3_VS_ClockSourceINT.Signal=TIM3_VS_ClockSourceINT
board=NUCLEO-F103RB
isbadioc=false