From c6549ebd6f16fd26ce5dcd8170f68008af325c33 Mon Sep 17 00:00:00 2001 From: Mysteo91 Date: Fri, 28 Jul 2023 17:29:45 +0300 Subject: [PATCH] --good --- .idea/runConfigurations/OCD_mainprog.xml | 4 +- App/app.cpp | 79 ++++++++++++++++++++---- CMakeLists.txt | 11 +--- main_prog/CMakeLists.txt | 12 +++- main_prog/Core/Inc/main.h | 6 +- main_prog/Core/Inc/tim.h | 2 + main_prog/Core/Src/gpio.c | 16 ++--- main_prog/Core/Src/i2c.c | 2 +- main_prog/Core/Src/tim.c | 65 ++++++++++++------- gm60.ioc => main_prog/gm60.ioc | 63 +++++++++++-------- 10 files changed, 174 insertions(+), 86 deletions(-) rename gm60.ioc => main_prog/gm60.ioc (71%) diff --git a/.idea/runConfigurations/OCD_mainprog.xml b/.idea/runConfigurations/OCD_mainprog.xml index 0144789..a8d8b5b 100644 --- a/.idea/runConfigurations/OCD_mainprog.xml +++ b/.idea/runConfigurations/OCD_mainprog.xml @@ -1,6 +1,6 @@ - - + + diff --git a/App/app.cpp b/App/app.cpp index d03bd70..b81a437 100644 --- a/App/app.cpp +++ b/App/app.cpp @@ -34,8 +34,13 @@ extern "C" { } #include "uart_bridge.hpp" +#include "tim.h" UartBridge bridge(true, USART1, USART2, 9600, 9600); +void zummerOff (void); +void zummerOn (void); +void lightingOn (void); +void lightingOff (void); /************************************************************************************//** ** \brief Initializes the user program application. Should be called once during ** software program initialization. @@ -50,8 +55,11 @@ void AppInit(void) LedInit(); /* initialize the bootloader interface */ bridge.init(); + zummerOff(); + lightingOff(); /* BootComInit(); + */ } /*** end of AppInit ***/ @@ -63,25 +71,72 @@ void AppInit(void) ** ****************************************************************************************/ uint8_t temp[2]; +uint32_t controlPinMs = 0; +uint8_t controlPinFlag = 0; +uint8_t controlPinHighStart = 0; +uint8_t updateMode = 0; + +void zummerOff (void) +{ + HAL_TIM_Base_Stop(&htim3); + HAL_TIM_PWM_Stop(&htim3, TIM_CHANNEL_2); +} +void zummerOn (void) +{ + HAL_TIM_Base_Start(&htim3); + HAL_TIM_PWM_Start(&htim3, TIM_CHANNEL_2); +} +void lightingOn (void) +{ + HAL_GPIO_WritePin(LIGHTING_EN_GPIO_Port, LIGHTING_EN_Pin, GPIO_PIN_SET); +} +void lightingOff (void) +{ + HAL_GPIO_WritePin(LIGHTING_EN_GPIO_Port, LIGHTING_EN_Pin, GPIO_PIN_RESET); +} void AppTask(void) { - if (!bridge.uart1Buf->is_empty() && (__HAL_UART_GET_FLAG(bridge.getHuart2(), UART_FLAG_TC))) - { - temp[1] = bridge.uart1Buf->dequeue(); - HAL_UART_Transmit_IT(bridge.getHuart2(), &temp[1], 1); - } + if (!updateMode) { + if (HAL_GPIO_ReadPin(CONTROL_PIN_GPIO_Port, CONTROL_PIN_Pin) == GPIO_PIN_SET) { + if (controlPinFlag == 0) + { + controlPinHighStart = HAL_GetTick(); + controlPinFlag = 1; + } + } else if (controlPinFlag == 1) { + controlPinFlag = 0; + uint32_t ms = HAL_GetTick() - controlPinHighStart; + if (ms >= 5000 && ms < 5200) { + ////////Update mode + HAL_UART_DeInit(&huart1); + BootComInit(); + zummerOff(); + lightingOff(); + } else if (ms >= 100 && ms < 150) { + zummerOn(); + //////ZUMMER ON + } else if (ms >= 200 && ms < 250) { + zummerOff(); + //////ZUMMER OFF + } + } + if (!bridge.uart1Buf->is_empty() && (__HAL_UART_GET_FLAG(bridge.getHuart2(), UART_FLAG_TC))) { + temp[1] = bridge.uart1Buf->dequeue(); + HAL_UART_Transmit_IT(bridge.getHuart2(), &temp[1], 1); + } - if (!bridge.uart2Buf->is_empty() && (__HAL_UART_GET_FLAG(bridge.getHuart1(), UART_FLAG_TC))) + if (!bridge.uart2Buf->is_empty() && (__HAL_UART_GET_FLAG(bridge.getHuart1(), UART_FLAG_TC))) { + temp[2] = bridge.uart2Buf->dequeue(); + HAL_UART_Transmit_IT(bridge.getHuart1(), &temp[2], 1); + } + } + else { - temp[2] = bridge.uart2Buf->dequeue(); - HAL_UART_Transmit_IT(bridge.getHuart1(), &temp[2], 1); + BootComCheckActivationRequest(); } } - /* check for bootloader activation request */ -/* - BootComCheckActivationRequest(); -*/ + /*** end of AppTask ***/ diff --git a/CMakeLists.txt b/CMakeLists.txt index 15a1c14..b30ee3f 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -42,22 +42,14 @@ else() set(CMAKE_CXX_COMPILER arm-none-eabi-g++) set(CMAKE_ASM_COMPILER arm-none-eabi-gcc) set(LEN_OFFSET 0xBC) - set (CRC_ADDRESS 0) - set (FLASH_MAIN_ADDRESS 0) set(CMAKE_TRY_COMPILE_TARGET_TYPE STATIC_LIBRARY) - add_subdirectory(cmake_func) - math(EXPR LEN_ADDRESS "${FLASH_MAIN_ADDRESS} + ${LEN_OFFSET}" OUTPUT_FORMAT HEXADECIMAL) - add_compile_definitions("PAGE_SIZE=0x0800") - set(LEN_OFFSET 0xBC) set (CRC_ADDRESS 0) set (FLASH_MAIN_ADDRESS 0) set(MEM_MAP_FILE "memory_map.inc") - math(EXPR LEN_ADDRESS "${FLASH_MAIN_ADDRESS} + ${LEN_OFFSET}" OUTPUT_FORMAT HEXADECIMAL) + add_subdirectory(cmake_func) add_compile_definitions("PAGE_SIZE=0x0800") - - set(CMAKE_AR arm-none-eabi-ar) set(CMAKE_OBJCOPY arm-none-eabi-objcopy) set(CMAKE_OBJDUMP arm-none-eabi-objdump) @@ -147,6 +139,7 @@ else() if (BOOT) set (HAL_DRIVER_CONFIG ${CMAKE_CURRENT_SOURCE_DIR}/Boot/Core/Inc/stm32g0xx_hal_conf.h) FUNC_CREATE_MEMORY_MAP("${MEM_MAP_FILE}" "128" "8" "4" ) + math(EXPR LEN_ADDRESS "${FLASH_MAIN_ADDRESS} + ${LEN_OFFSET}" OUTPUT_FORMAT HEXADECIMAL) add_compile_definitions("BOOT_FLASH_VECTOR_TABLE_CS_OFFSET=${LEN_OFFSET}" "LEN_ADDRESS=${LEN_ADDRESS}") add_compile_definitions("PAGE_SIZE=0x0800") add_subdirectory(libs) diff --git a/main_prog/CMakeLists.txt b/main_prog/CMakeLists.txt index 60867b8..a227bdd 100644 --- a/main_prog/CMakeLists.txt +++ b/main_prog/CMakeLists.txt @@ -79,7 +79,9 @@ else() set(MEM_MAP_FILE "memory_map.inc") FUNC_CREATE_MEMORY_MAP("${MEM_MAP_FILE}" "128" "8" "4" ) endif() - +math(EXPR LEN_ADDRESS "${FLASH_MAIN_ADDRESS} + ${LEN_OFFSET}" OUTPUT_FORMAT HEXADECIMAL) +add_compile_definitions("BOOT_FLASH_VECTOR_TABLE_CS_OFFSET=${LEN_OFFSET}" "LEN_ADDRESS=${LEN_ADDRESS}") +add_compile_definitions("PAGE_SIZE=0x0800") add_link_options(-specs=nano.specs -specs=nosys.specs) add_executable(${PROJECT_NAME}.elf ${SOURCES}) target_compile_options(${PROJECT_NAME}.elf PUBLIC ${COMPILE_OPTIONS}) @@ -89,6 +91,10 @@ add_link_options(-specs=nano.specs -specs=nosys.specs) target_compile_definitions(${PROJECT_NAME}.elf PUBLIC ${COMPILE_DEF}) set(HEX_FILE ${PROJECT_BINARY_DIR}/${PROJECT_NAME}.hex) set(BIN_FILE ${PROJECT_BINARY_DIR}/${PROJECT_NAME}.bin) +set(HEX_FILE_SRECORD_WITH_LEN_AND_CRC ${PROJECT_BINARY_DIR}/${PROJECT_NAME}_SRECORD.hex) +set(AFTER_BUILD_SCRIPT ${CMAKE_SOURCE_DIR}/scripts/after_build.ps1) +math(EXPR CRC_USER_END_ADDRESS "${CRC32_USER_PROG_AND_USER_LIB_ADDRESS} + 4") + if ("${CMAKE_BUILD_TYPE}" STREQUAL "Debug") add_custom_command(TARGET ${PROJECT_NAME}.elf PRE_BUILD COMMAND ${CMAKE_COMMAND} -E copy "${CMAKE_SOURCE_DIR}/${MEM_MAP_FILE_DEBUG}" ${PROJECT_BINARY_DIR}/../${MEM_MAP_FILE} @@ -103,7 +109,9 @@ endif() COMMAND ${CMAKE_OBJCOPY} -Obinary $ ${BIN_FILE} COMMENT "Building ${HEX_FILE} Building ${BIN_FILE}" - ) + COMMAND powershell ${AFTER_BUILD_SCRIPT} ${HEX_FILE} ${HEX_FILE_SRECORD_WITH_LEN_AND_CRC} ${LEN_ADDRESS} + + ) #///////////////////////////USER CUSTOM COMMANDS #//////////////////////////END CUSTOM COMMANDS \ No newline at end of file diff --git a/main_prog/Core/Inc/main.h b/main_prog/Core/Inc/main.h index 2c6f3ec..56d232b 100644 --- a/main_prog/Core/Inc/main.h +++ b/main_prog/Core/Inc/main.h @@ -58,12 +58,14 @@ void Error_Handler(void); /* USER CODE END EFP */ /* Private defines -----------------------------------------------------------*/ +#define GPIO_RESET_Pin GPIO_PIN_1 +#define GPIO_RESET_GPIO_Port GPIOA #define LIGHTING_EN_Pin GPIO_PIN_4 #define LIGHTING_EN_GPIO_Port GPIOA #define READER_EN_Pin GPIO_PIN_5 #define READER_EN_GPIO_Port GPIOA -#define ZUMMER_PINOUT_Pin GPIO_PIN_5 -#define ZUMMER_PINOUT_GPIO_Port GPIOB +#define CONTROL_PIN_Pin GPIO_PIN_4 +#define CONTROL_PIN_GPIO_Port GPIOB /* USER CODE BEGIN Private defines */ diff --git a/main_prog/Core/Inc/tim.h b/main_prog/Core/Inc/tim.h index 46c0a2a..14d2464 100644 --- a/main_prog/Core/Inc/tim.h +++ b/main_prog/Core/Inc/tim.h @@ -40,6 +40,8 @@ extern TIM_HandleTypeDef htim3; void MX_TIM3_Init(void); +void HAL_TIM_MspPostInit(TIM_HandleTypeDef *htim); + /* USER CODE BEGIN Prototypes */ /* USER CODE END Prototypes */ diff --git a/main_prog/Core/Src/gpio.c b/main_prog/Core/Src/gpio.c index a066590..6736fca 100644 --- a/main_prog/Core/Src/gpio.c +++ b/main_prog/Core/Src/gpio.c @@ -52,11 +52,8 @@ void MX_GPIO_Init(void) /*Configure GPIO pin Output Level */ HAL_GPIO_WritePin(GPIOA, LIGHTING_EN_Pin|READER_EN_Pin, GPIO_PIN_RESET); - /*Configure GPIO pin Output Level */ - HAL_GPIO_WritePin(ZUMMER_PINOUT_GPIO_Port, ZUMMER_PINOUT_Pin, GPIO_PIN_RESET); - - /*Configure GPIO pins : PA0 PA1 */ - GPIO_InitStruct.Pin = GPIO_PIN_0|GPIO_PIN_1; + /*Configure GPIO pins : PA0 PAPin */ + GPIO_InitStruct.Pin = GPIO_PIN_0|GPIO_RESET_Pin; GPIO_InitStruct.Mode = GPIO_MODE_IT_RISING; GPIO_InitStruct.Pull = GPIO_NOPULL; HAL_GPIO_Init(GPIOA, &GPIO_InitStruct); @@ -69,11 +66,10 @@ void MX_GPIO_Init(void) HAL_GPIO_Init(GPIOA, &GPIO_InitStruct); /*Configure GPIO pin : PtPin */ - GPIO_InitStruct.Pin = ZUMMER_PINOUT_Pin; - GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP; - GPIO_InitStruct.Pull = GPIO_NOPULL; - GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW; - HAL_GPIO_Init(ZUMMER_PINOUT_GPIO_Port, &GPIO_InitStruct); + GPIO_InitStruct.Pin = CONTROL_PIN_Pin; + GPIO_InitStruct.Mode = GPIO_MODE_INPUT; + GPIO_InitStruct.Pull = GPIO_PULLDOWN; + HAL_GPIO_Init(CONTROL_PIN_GPIO_Port, &GPIO_InitStruct); } diff --git a/main_prog/Core/Src/i2c.c b/main_prog/Core/Src/i2c.c index 92282e4..13799b5 100644 --- a/main_prog/Core/Src/i2c.c +++ b/main_prog/Core/Src/i2c.c @@ -38,7 +38,7 @@ void MX_I2C2_Init(void) /* USER CODE END I2C2_Init 1 */ hi2c2.Instance = I2C2; - hi2c2.Init.Timing = 0x00303D5B; + hi2c2.Init.Timing = 0x10707DBC; hi2c2.Init.OwnAddress1 = 0; hi2c2.Init.AddressingMode = I2C_ADDRESSINGMODE_7BIT; hi2c2.Init.DualAddressMode = I2C_DUALADDRESS_DISABLE; diff --git a/main_prog/Core/Src/tim.c b/main_prog/Core/Src/tim.c index 32e9c67..92f20bb 100644 --- a/main_prog/Core/Src/tim.c +++ b/main_prog/Core/Src/tim.c @@ -34,8 +34,9 @@ void MX_TIM3_Init(void) /* USER CODE END TIM3_Init 0 */ + TIM_ClockConfigTypeDef sClockSourceConfig = {0}; TIM_MasterConfigTypeDef sMasterConfig = {0}; - TIM_IC_InitTypeDef sConfigIC = {0}; + TIM_OC_InitTypeDef sConfigOC = {0}; /* USER CODE BEGIN TIM3_Init 1 */ @@ -43,10 +44,19 @@ void MX_TIM3_Init(void) htim3.Instance = TIM3; htim3.Init.Prescaler = 0; htim3.Init.CounterMode = TIM_COUNTERMODE_UP; - htim3.Init.Period = 65535; + htim3.Init.Period = 21332; htim3.Init.ClockDivision = TIM_CLOCKDIVISION_DIV1; htim3.Init.AutoReloadPreload = TIM_AUTORELOAD_PRELOAD_DISABLE; - if (HAL_TIM_IC_Init(&htim3) != HAL_OK) + 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(); } @@ -56,65 +66,74 @@ void MX_TIM3_Init(void) { Error_Handler(); } - sConfigIC.ICPolarity = TIM_INPUTCHANNELPOLARITY_RISING; - sConfigIC.ICSelection = TIM_ICSELECTION_DIRECTTI; - sConfigIC.ICPrescaler = TIM_ICPSC_DIV1; - sConfigIC.ICFilter = 0; - if (HAL_TIM_IC_ConfigChannel(&htim3, &sConfigIC, TIM_CHANNEL_1) != HAL_OK) + sConfigOC.OCMode = TIM_OCMODE_PWM1; + sConfigOC.Pulse = 10616; + sConfigOC.OCPolarity = TIM_OCPOLARITY_LOW; + sConfigOC.OCFastMode = TIM_OCFAST_DISABLE; + if (HAL_TIM_PWM_ConfigChannel(&htim3, &sConfigOC, TIM_CHANNEL_2) != HAL_OK) { Error_Handler(); } /* USER CODE BEGIN TIM3_Init 2 */ /* USER CODE END TIM3_Init 2 */ + HAL_TIM_MspPostInit(&htim3); } -void HAL_TIM_IC_MspInit(TIM_HandleTypeDef* tim_icHandle) +void HAL_TIM_Base_MspInit(TIM_HandleTypeDef* tim_baseHandle) { - GPIO_InitTypeDef GPIO_InitStruct = {0}; - if(tim_icHandle->Instance==TIM3) + if(tim_baseHandle->Instance==TIM3) { /* USER CODE BEGIN TIM3_MspInit 0 */ /* USER CODE END TIM3_MspInit 0 */ /* TIM3 clock enable */ __HAL_RCC_TIM3_CLK_ENABLE(); + /* USER CODE BEGIN TIM3_MspInit 1 */ + + /* USER CODE END TIM3_MspInit 1 */ + } +} +void HAL_TIM_MspPostInit(TIM_HandleTypeDef* timHandle) +{ + + GPIO_InitTypeDef GPIO_InitStruct = {0}; + if(timHandle->Instance==TIM3) + { + /* USER CODE BEGIN TIM3_MspPostInit 0 */ + + /* USER CODE END TIM3_MspPostInit 0 */ __HAL_RCC_GPIOB_CLK_ENABLE(); /**TIM3 GPIO Configuration - PB4 ------> TIM3_CH1 + PB5 ------> TIM3_CH2 */ - GPIO_InitStruct.Pin = GPIO_PIN_4; + GPIO_InitStruct.Pin = GPIO_PIN_5; GPIO_InitStruct.Mode = GPIO_MODE_AF_PP; GPIO_InitStruct.Pull = GPIO_NOPULL; GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW; GPIO_InitStruct.Alternate = GPIO_AF1_TIM3; HAL_GPIO_Init(GPIOB, &GPIO_InitStruct); - /* USER CODE BEGIN TIM3_MspInit 1 */ + /* USER CODE BEGIN TIM3_MspPostInit 1 */ - /* USER CODE END TIM3_MspInit 1 */ + /* USER CODE END TIM3_MspPostInit 1 */ } + } -void HAL_TIM_IC_MspDeInit(TIM_HandleTypeDef* tim_icHandle) +void HAL_TIM_Base_MspDeInit(TIM_HandleTypeDef* tim_baseHandle) { - if(tim_icHandle->Instance==TIM3) + if(tim_baseHandle->Instance==TIM3) { /* USER CODE BEGIN TIM3_MspDeInit 0 */ /* USER CODE END TIM3_MspDeInit 0 */ /* Peripheral clock disable */ __HAL_RCC_TIM3_CLK_DISABLE(); - - /**TIM3 GPIO Configuration - PB4 ------> TIM3_CH1 - */ - HAL_GPIO_DeInit(GPIOB, GPIO_PIN_4); - /* USER CODE BEGIN TIM3_MspDeInit 1 */ /* USER CODE END TIM3_MspDeInit 1 */ diff --git a/gm60.ioc b/main_prog/gm60.ioc similarity index 71% rename from gm60.ioc rename to main_prog/gm60.ioc index a0eb183..acdc680 100644 --- a/gm60.ioc +++ b/main_prog/gm60.ioc @@ -4,6 +4,8 @@ CAD.pinconfig= CAD.provider= File.Version=6 GPIO.groupedBy=Group By Peripherals +I2C2.IPParameters=Timing +I2C2.Timing=0x10707DBC KeepUserPlacement=false Mcu.CPN=STM32G070CBT6 Mcu.Family=STM32G0 @@ -27,6 +29,7 @@ Mcu.Pin14=PB6 Mcu.Pin15=PB7 Mcu.Pin16=VP_SYS_VS_Systick Mcu.Pin17=VP_SYS_VS_DBSignals +Mcu.Pin18=VP_TIM3_VS_ClockSourceINT Mcu.Pin2=PA0 Mcu.Pin3=PA1 Mcu.Pin4=PA2 @@ -35,7 +38,7 @@ Mcu.Pin6=PA4 Mcu.Pin7=PA5 Mcu.Pin8=PA11 [PA9] Mcu.Pin9=PA12 [PA10] -Mcu.PinsNb=18 +Mcu.PinsNb=19 Mcu.ThirdPartyNb=0 Mcu.UserConstants= Mcu.UserName=STM32G070CBTx @@ -51,6 +54,8 @@ NVIC.USART1_IRQn=true\:0\:0\:false\:false\:true\:true\:true\:true NVIC.USART2_IRQn=true\:0\:0\:false\:false\:true\:true\:true\:true PA0.Locked=true PA0.Signal=GPXTI0 +PA1.GPIOParameters=GPIO_Label +PA1.GPIO_Label=GPIO_RESET PA1.Locked=true PA1.Signal=GPXTI1 PA11\ [PA9].Locked=true @@ -75,12 +80,12 @@ PA5.GPIOParameters=GPIO_Label PA5.GPIO_Label=READER_EN PA5.Locked=true PA5.Signal=GPIO_Output +PB4.GPIOParameters=GPIO_Label +PB4.GPIO_Label=CONTROL_PIN PB4.Locked=true -PB4.Signal=S_TIM3_CH1 -PB5.GPIOParameters=GPIO_Label -PB5.GPIO_Label=ZUMMER_PINOUT +PB4.Signal=GPIO_Input PB5.Locked=true -PB5.Signal=GPIO_Output +PB5.Signal=S_TIM3_CH2 PB6.Locked=true PB6.Mode=Asynchronous PB6.Signal=USART1_TX @@ -120,40 +125,46 @@ ProjectManager.StackSize=0x400 ProjectManager.TargetToolchain=STM32CubeIDE ProjectManager.ToolChainLocation= ProjectManager.UnderRoot=true -ProjectManager.functionlistsort=1-SystemClock_Config-RCC-false-HAL-false,2-MX_GPIO_Init-GPIO-false-HAL-true,3-MX_I2C2_Init-I2C2-false-HAL-true,4-MX_TIM3_Init-TIM3-false-HAL-true,5-MX_USART1_UART_Init-USART1-false-HAL-true,6-MX_USART2_UART_Init-USART2-false-HAL-true -RCC.AHBFreq_Value=16000000 -RCC.APBFreq_Value=16000000 -RCC.APBTimFreq_Value=16000000 -RCC.CortexFreq_Value=16000000 +ProjectManager.functionlistsort=1-SystemClock_Config-RCC-false-HAL-false,2-MX_GPIO_Init-GPIO-false-HAL-true,3-MX_I2C2_Init-I2C2-false-HAL-true,4-MX_USART1_UART_Init-USART1-false-HAL-true,5-MX_USART2_UART_Init-USART2-false-HAL-true +RCC.ADCFreq_Value=64000000 +RCC.AHBFreq_Value=64000000 +RCC.APBFreq_Value=64000000 +RCC.APBTimFreq_Value=64000000 +RCC.CortexFreq_Value=64000000 RCC.EXTERNAL_CLOCK_VALUE=48000 -RCC.FCLKCortexFreq_Value=16000000 +RCC.FCLKCortexFreq_Value=64000000 RCC.FamilyName=M -RCC.HCLKFreq_Value=16000000 +RCC.HCLKFreq_Value=64000000 RCC.HSE_VALUE=8000000 RCC.HSI_VALUE=16000000 -RCC.I2C1Freq_Value=16000000 -RCC.I2S1Freq_Value=16000000 -RCC.IPParameters=AHBFreq_Value,APBFreq_Value,APBTimFreq_Value,CortexFreq_Value,EXTERNAL_CLOCK_VALUE,FCLKCortexFreq_Value,FamilyName,HCLKFreq_Value,HSE_VALUE,HSI_VALUE,I2C1Freq_Value,I2S1Freq_Value,LSCOPinFreq_Value,LSE_VALUE,LSI_VALUE,MCO1PinFreq_Value,PLLPoutputFreq_Value,PLLRCLKFreq_Value,PWRFreq_Value,SYSCLKFreq_VALUE,USART1Freq_Value,USART2Freq_Value,VCOInputFreq_Value,VCOOutputFreq_Value +RCC.I2C1Freq_Value=64000000 +RCC.I2S1Freq_Value=64000000 +RCC.IPParameters=ADCFreq_Value,AHBFreq_Value,APBFreq_Value,APBTimFreq_Value,CortexFreq_Value,EXTERNAL_CLOCK_VALUE,FCLKCortexFreq_Value,FamilyName,HCLKFreq_Value,HSE_VALUE,HSI_VALUE,I2C1Freq_Value,I2S1Freq_Value,LSCOPinFreq_Value,LSE_VALUE,LSI_VALUE,MCO1PinFreq_Value,PLLN,PLLPoutputFreq_Value,PLLRCLKFreq_Value,PLLSourceVirtual,PWRFreq_Value,SYSCLKFreq_VALUE,SYSCLKSource,USART1Freq_Value,USART2Freq_Value,VCOInputFreq_Value,VCOOutputFreq_Value RCC.LSCOPinFreq_Value=32000 RCC.LSE_VALUE=32768 RCC.LSI_VALUE=32000 -RCC.MCO1PinFreq_Value=16000000 +RCC.MCO1PinFreq_Value=64000000 +RCC.PLLN=16 RCC.PLLPoutputFreq_Value=64000000 RCC.PLLRCLKFreq_Value=64000000 -RCC.PWRFreq_Value=16000000 -RCC.SYSCLKFreq_VALUE=16000000 -RCC.USART1Freq_Value=16000000 -RCC.USART2Freq_Value=16000000 -RCC.VCOInputFreq_Value=16000000 +RCC.PLLSourceVirtual=RCC_PLLSOURCE_HSE +RCC.PWRFreq_Value=64000000 +RCC.SYSCLKFreq_VALUE=64000000 +RCC.SYSCLKSource=RCC_SYSCLKSOURCE_PLLCLK +RCC.USART1Freq_Value=64000000 +RCC.USART2Freq_Value=64000000 +RCC.VCOInputFreq_Value=8000000 RCC.VCOOutputFreq_Value=128000000 SH.GPXTI0.0=GPIO_EXTI0 SH.GPXTI0.ConfNb=1 SH.GPXTI1.0=GPIO_EXTI1 SH.GPXTI1.ConfNb=1 -SH.S_TIM3_CH1.0=TIM3_CH1,Input_Capture1_from_TI1 -SH.S_TIM3_CH1.ConfNb=1 -TIM3.Channel-Input_Capture1_from_TI1=TIM_CHANNEL_1 -TIM3.IPParameters=Channel-Input_Capture1_from_TI1 +SH.S_TIM3_CH2.0=TIM3_CH2,PWM Generation2 CH2 +SH.S_TIM3_CH2.ConfNb=1 +TIM3.Channel-PWM\ Generation2\ CH2=TIM_CHANNEL_2 +TIM3.IPParameters=Channel-PWM Generation2 CH2,Period,Pulse-PWM Generation2 CH2 +TIM3.Period=21332 +TIM3.Pulse-PWM\ Generation2\ CH2=10616 USART1.BaudRate=9600 USART1.IPParameters=VirtualMode-Asynchronous,BaudRate,SwapParam USART1.SwapParam=ADVFEATURE_SWAP_ENABLE @@ -165,4 +176,6 @@ VP_SYS_VS_DBSignals.Mode=DisableDeadBatterySignals VP_SYS_VS_DBSignals.Signal=SYS_VS_DBSignals VP_SYS_VS_Systick.Mode=SysTick VP_SYS_VS_Systick.Signal=SYS_VS_Systick +VP_TIM3_VS_ClockSourceINT.Mode=Internal +VP_TIM3_VS_ClockSourceINT.Signal=TIM3_VS_ClockSourceINT board=custom