任务定时器

This commit is contained in:
许晟昊 2024-12-06 11:44:19 +08:00
parent c1b7eca232
commit 157e1b5938
22 changed files with 5803 additions and 3963 deletions

View File

@ -1,29 +1,27 @@
[PreviousLibFiles] [PreviousLibFiles]
LibFiles=Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_ll_gpio.h;Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_ll_dma.h;Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_ll_pwr.h;Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_ll_system.h;Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_ll_exti.h;Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_ll_usart.h;Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_ll_bus.h;Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_ll_cortex.h;Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_ll_utils.h;Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_ll_rcc.h;Drivers\STM32F1xx_HAL_Driver\Src\stm32f1xx_ll_gpio.c;Drivers\STM32F1xx_HAL_Driver\Src\stm32f1xx_ll_dma.c;Drivers\STM32F1xx_HAL_Driver\Src\stm32f1xx_ll_pwr.c;Drivers\STM32F1xx_HAL_Driver\Src\stm32f1xx_ll_exti.c;Drivers\STM32F1xx_HAL_Driver\Src\stm32f1xx_ll_usart.c;Drivers\STM32F1xx_HAL_Driver\Src\stm32f1xx_ll_rcc.c;Drivers\STM32F1xx_HAL_Driver\Src\stm32f1xx_ll_utils.c;Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_ll_gpio.h;Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_ll_dma.h;Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_ll_pwr.h;Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_ll_system.h;Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_ll_exti.h;Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_ll_usart.h;Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_ll_bus.h;Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_ll_cortex.h;Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_ll_utils.h;Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_ll_rcc.h;Drivers\CMSIS\Device\ST\STM32F1xx\Include\stm32f103xb.h;Drivers\CMSIS\Device\ST\STM32F1xx\Include\stm32f1xx.h;Drivers\CMSIS\Device\ST\STM32F1xx\Include\system_stm32f1xx.h;Drivers\CMSIS\Device\ST\STM32F1xx\Source\Templates\system_stm32f1xx.c;Drivers\CMSIS\Include\cmsis_armcc.h;Drivers\CMSIS\Include\cmsis_armclang.h;Drivers\CMSIS\Include\cmsis_compiler.h;Drivers\CMSIS\Include\cmsis_gcc.h;Drivers\CMSIS\Include\cmsis_iccarm.h;Drivers\CMSIS\Include\cmsis_version.h;Drivers\CMSIS\Include\core_armv8mbl.h;Drivers\CMSIS\Include\core_armv8mml.h;Drivers\CMSIS\Include\core_cm0.h;Drivers\CMSIS\Include\core_cm0plus.h;Drivers\CMSIS\Include\core_cm1.h;Drivers\CMSIS\Include\core_cm23.h;Drivers\CMSIS\Include\core_cm3.h;Drivers\CMSIS\Include\core_cm33.h;Drivers\CMSIS\Include\core_cm4.h;Drivers\CMSIS\Include\core_cm7.h;Drivers\CMSIS\Include\core_sc000.h;Drivers\CMSIS\Include\core_sc300.h;Drivers\CMSIS\Include\mpu_armv7.h;Drivers\CMSIS\Include\mpu_armv8.h;Drivers\CMSIS\Include\tz_context.h; LibFiles=Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_ll_gpio.h;Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_ll_pwr.h;Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_ll_system.h;Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_ll_exti.h;Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_ll_tim.h;Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_ll_dma.h;Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_ll_bus.h;Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_ll_cortex.h;Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_ll_rcc.h;Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_ll_utils.h;Drivers\STM32F1xx_HAL_Driver\Src\stm32f1xx_ll_gpio.c;Drivers\STM32F1xx_HAL_Driver\Src\stm32f1xx_ll_pwr.c;Drivers\STM32F1xx_HAL_Driver\Src\stm32f1xx_ll_exti.c;Drivers\STM32F1xx_HAL_Driver\Src\stm32f1xx_ll_tim.c;Drivers\STM32F1xx_HAL_Driver\Src\stm32f1xx_ll_dma.c;Drivers\STM32F1xx_HAL_Driver\Src\stm32f1xx_ll_rcc.c;Drivers\STM32F1xx_HAL_Driver\Src\stm32f1xx_ll_utils.c;Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_ll_gpio.h;Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_ll_pwr.h;Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_ll_system.h;Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_ll_exti.h;Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_ll_tim.h;Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_ll_dma.h;Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_ll_bus.h;Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_ll_cortex.h;Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_ll_rcc.h;Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_ll_utils.h;Drivers\CMSIS\Device\ST\STM32F1xx\Include\stm32f103xb.h;Drivers\CMSIS\Device\ST\STM32F1xx\Include\stm32f1xx.h;Drivers\CMSIS\Device\ST\STM32F1xx\Include\system_stm32f1xx.h;Drivers\CMSIS\Device\ST\STM32F1xx\Source\Templates\system_stm32f1xx.c;Drivers\CMSIS\Include\cmsis_armcc.h;Drivers\CMSIS\Include\cmsis_armclang.h;Drivers\CMSIS\Include\cmsis_compiler.h;Drivers\CMSIS\Include\cmsis_gcc.h;Drivers\CMSIS\Include\cmsis_iccarm.h;Drivers\CMSIS\Include\cmsis_version.h;Drivers\CMSIS\Include\core_armv8mbl.h;Drivers\CMSIS\Include\core_armv8mml.h;Drivers\CMSIS\Include\core_cm0.h;Drivers\CMSIS\Include\core_cm0plus.h;Drivers\CMSIS\Include\core_cm1.h;Drivers\CMSIS\Include\core_cm23.h;Drivers\CMSIS\Include\core_cm3.h;Drivers\CMSIS\Include\core_cm33.h;Drivers\CMSIS\Include\core_cm4.h;Drivers\CMSIS\Include\core_cm7.h;Drivers\CMSIS\Include\core_sc000.h;Drivers\CMSIS\Include\core_sc300.h;Drivers\CMSIS\Include\mpu_armv7.h;Drivers\CMSIS\Include\mpu_armv8.h;Drivers\CMSIS\Include\tz_context.h;
[PreviousUsedKeilFiles] [PreviousUsedKeilFiles]
SourceFiles=..\Core\Src\main.c;..\Core\Src\gpio.c;..\Core\Src\dma.c;..\Core\Src\usart.c;..\Core\Src\stm32f1xx_it.c;..\Drivers\STM32F1xx_HAL_Driver\Src\stm32f1xx_ll_gpio.c;..\Drivers\STM32F1xx_HAL_Driver\Src\stm32f1xx_ll_dma.c;..\Drivers\STM32F1xx_HAL_Driver\Src\stm32f1xx_ll_pwr.c;..\Drivers\STM32F1xx_HAL_Driver\Src\stm32f1xx_ll_exti.c;..\Drivers\STM32F1xx_HAL_Driver\Src\stm32f1xx_ll_usart.c;..\Drivers\STM32F1xx_HAL_Driver\Src\stm32f1xx_ll_rcc.c;..\Drivers\STM32F1xx_HAL_Driver\Src\stm32f1xx_ll_utils.c;..\Drivers\CMSIS\Device\ST\STM32F1xx\Source\Templates\system_stm32f1xx.c;..\Core\Src\system_stm32f1xx.c;..\Drivers\STM32F1xx_HAL_Driver\Src\stm32f1xx_ll_gpio.c;..\Drivers\STM32F1xx_HAL_Driver\Src\stm32f1xx_ll_dma.c;..\Drivers\STM32F1xx_HAL_Driver\Src\stm32f1xx_ll_pwr.c;..\Drivers\STM32F1xx_HAL_Driver\Src\stm32f1xx_ll_exti.c;..\Drivers\STM32F1xx_HAL_Driver\Src\stm32f1xx_ll_usart.c;..\Drivers\STM32F1xx_HAL_Driver\Src\stm32f1xx_ll_rcc.c;..\Drivers\STM32F1xx_HAL_Driver\Src\stm32f1xx_ll_utils.c;..\Drivers\CMSIS\Device\ST\STM32F1xx\Source\Templates\system_stm32f1xx.c;..\Core\Src\system_stm32f1xx.c;;; SourceFiles=..\Core\Src\main.c;..\Core\Src\gpio.c;..\Core\Src\tim.c;..\Core\Src\stm32f1xx_it.c;..\Drivers\STM32F1xx_HAL_Driver\Src\stm32f1xx_ll_gpio.c;..\Drivers\STM32F1xx_HAL_Driver\Src\stm32f1xx_ll_pwr.c;..\Drivers\STM32F1xx_HAL_Driver\Src\stm32f1xx_ll_exti.c;..\Drivers\STM32F1xx_HAL_Driver\Src\stm32f1xx_ll_tim.c;..\Drivers\STM32F1xx_HAL_Driver\Src\stm32f1xx_ll_dma.c;..\Drivers\STM32F1xx_HAL_Driver\Src\stm32f1xx_ll_rcc.c;..\Drivers\STM32F1xx_HAL_Driver\Src\stm32f1xx_ll_utils.c;..\Drivers\CMSIS\Device\ST\STM32F1xx\Source\Templates\system_stm32f1xx.c;..\Core\Src\system_stm32f1xx.c;..\Drivers\STM32F1xx_HAL_Driver\Src\stm32f1xx_ll_gpio.c;..\Drivers\STM32F1xx_HAL_Driver\Src\stm32f1xx_ll_pwr.c;..\Drivers\STM32F1xx_HAL_Driver\Src\stm32f1xx_ll_exti.c;..\Drivers\STM32F1xx_HAL_Driver\Src\stm32f1xx_ll_tim.c;..\Drivers\STM32F1xx_HAL_Driver\Src\stm32f1xx_ll_dma.c;..\Drivers\STM32F1xx_HAL_Driver\Src\stm32f1xx_ll_rcc.c;..\Drivers\STM32F1xx_HAL_Driver\Src\stm32f1xx_ll_utils.c;..\Drivers\CMSIS\Device\ST\STM32F1xx\Source\Templates\system_stm32f1xx.c;..\Core\Src\system_stm32f1xx.c;;;
HeaderPath=..\Drivers\STM32F1xx_HAL_Driver\Inc;..\Drivers\CMSIS\Device\ST\STM32F1xx\Include;..\Drivers\CMSIS\Include;..\Core\Inc; HeaderPath=..\Drivers\STM32F1xx_HAL_Driver\Inc;..\Drivers\CMSIS\Device\ST\STM32F1xx\Include;..\Drivers\CMSIS\Include;..\Core\Inc;
CDefines=USE_FULL_LL_DRIVER;HSE_VALUE:8000000;HSE_STARTUP_TIMEOUT:100;LSE_STARTUP_TIMEOUT:5000;LSE_VALUE:32768;HSI_VALUE:8000000;LSI_VALUE:40000;VDD_VALUE:3300;PREFETCH_ENABLE:1;STM32F103xB;USE_FULL_LL_DRIVER;HSE_VALUE:8000000;HSE_STARTUP_TIMEOUT:100;LSE_STARTUP_TIMEOUT:5000;LSE_VALUE:32768;HSI_VALUE:8000000;LSI_VALUE:40000;VDD_VALUE:3300;PREFETCH_ENABLE:1; CDefines=USE_FULL_LL_DRIVER;HSE_VALUE:8000000;HSE_STARTUP_TIMEOUT:100;LSE_STARTUP_TIMEOUT:5000;LSE_VALUE:32768;HSI_VALUE:8000000;LSI_VALUE:40000;VDD_VALUE:3300;PREFETCH_ENABLE:1;STM32F103xB;USE_FULL_LL_DRIVER;HSE_VALUE:8000000;HSE_STARTUP_TIMEOUT:100;LSE_STARTUP_TIMEOUT:5000;LSE_VALUE:32768;HSI_VALUE:8000000;LSI_VALUE:40000;VDD_VALUE:3300;PREFETCH_ENABLE:1;
[PreviousGenFiles] [PreviousGenFiles]
AdvancedFolderStructure=true AdvancedFolderStructure=true
HeaderFileListSize=6 HeaderFileListSize=5
HeaderFiles#0=..\Core\Inc\gpio.h HeaderFiles#0=..\Core\Inc\gpio.h
HeaderFiles#1=..\Core\Inc\dma.h HeaderFiles#1=..\Core\Inc\tim.h
HeaderFiles#2=..\Core\Inc\usart.h HeaderFiles#2=..\Core\Inc\stm32f1xx_it.h
HeaderFiles#3=..\Core\Inc\stm32f1xx_it.h HeaderFiles#3=..\Core\Inc\stm32_assert.h
HeaderFiles#4=..\Core\Inc\stm32_assert.h HeaderFiles#4=..\Core\Inc\main.h
HeaderFiles#5=..\Core\Inc\main.h
HeaderFolderListSize=1 HeaderFolderListSize=1
HeaderPath#0=..\Core\Inc HeaderPath#0=..\Core\Inc
HeaderFiles=; HeaderFiles=;
SourceFileListSize=5 SourceFileListSize=4
SourceFiles#0=..\Core\Src\gpio.c SourceFiles#0=..\Core\Src\gpio.c
SourceFiles#1=..\Core\Src\dma.c SourceFiles#1=..\Core\Src\tim.c
SourceFiles#2=..\Core\Src\usart.c SourceFiles#2=..\Core\Src\stm32f1xx_it.c
SourceFiles#3=..\Core\Src\stm32f1xx_it.c SourceFiles#3=..\Core\Src\main.c
SourceFiles#4=..\Core\Src\main.c
SourceFolderListSize=1 SourceFolderListSize=1
SourcePath#0=..\Core\Src SourcePath#0=..\Core\Src
SourceFiles=; SourceFiles=;

View File

@ -1,52 +0,0 @@
/* USER CODE BEGIN Header */
/**
******************************************************************************
* @file dma.h
* @brief This file contains all the function prototypes for
* the dma.c file
******************************************************************************
* @attention
*
* Copyright (c) 2024 STMicroelectronics.
* All rights reserved.
*
* This software is licensed under terms that can be found in the LICENSE file
* in the root directory of this software component.
* If no LICENSE file comes with this software, it is provided AS-IS.
*
******************************************************************************
*/
/* USER CODE END Header */
/* Define to prevent recursive inclusion -------------------------------------*/
#ifndef __DMA_H__
#define __DMA_H__
#ifdef __cplusplus
extern "C" {
#endif
/* Includes ------------------------------------------------------------------*/
#include "main.h"
/* DMA memory to memory transfer handles -------------------------------------*/
/* USER CODE BEGIN Includes */
/* USER CODE END Includes */
/* USER CODE BEGIN Private defines */
/* USER CODE END Private defines */
void MX_DMA_Init(void);
/* USER CODE BEGIN Prototypes */
/* USER CODE END Prototypes */
#ifdef __cplusplus
}
#endif
#endif /* __DMA_H__ */

View File

@ -23,13 +23,11 @@
#define __MAIN_H #define __MAIN_H
#ifdef __cplusplus #ifdef __cplusplus
extern "C" extern "C" {
{
#endif #endif
/* Includes ------------------------------------------------------------------*/ /* Includes ------------------------------------------------------------------*/
#include "stm32f1xx_ll_dma.h"
#include "stm32f1xx_ll_rcc.h" #include "stm32f1xx_ll_rcc.h"
#include "stm32f1xx_ll_bus.h" #include "stm32f1xx_ll_bus.h"
#include "stm32f1xx_ll_system.h" #include "stm32f1xx_ll_system.h"
@ -37,38 +35,39 @@ extern "C"
#include "stm32f1xx_ll_cortex.h" #include "stm32f1xx_ll_cortex.h"
#include "stm32f1xx_ll_utils.h" #include "stm32f1xx_ll_utils.h"
#include "stm32f1xx_ll_pwr.h" #include "stm32f1xx_ll_pwr.h"
#include "stm32f1xx_ll_usart.h" #include "stm32f1xx_ll_dma.h"
#include "stm32f1xx_ll_tim.h"
#include "stm32f1xx_ll_gpio.h" #include "stm32f1xx_ll_gpio.h"
#if defined(USE_FULL_ASSERT) #if defined(USE_FULL_ASSERT)
#include "stm32_assert.h" #include "stm32_assert.h"
#endif /* USE_FULL_ASSERT */ #endif /* USE_FULL_ASSERT */
/* Private includes ----------------------------------------------------------*/ /* Private includes ----------------------------------------------------------*/
/* USER CODE BEGIN Includes */ /* USER CODE BEGIN Includes */
#include "lib.h" #include "lib.h"
#include "bsp.h" #include "bsp.h"
/* USER CODE END Includes */ /* USER CODE END Includes */
/* Exported types ------------------------------------------------------------*/ /* Exported types ------------------------------------------------------------*/
/* USER CODE BEGIN ET */ /* USER CODE BEGIN ET */
/* USER CODE END ET */ /* USER CODE END ET */
/* Exported constants --------------------------------------------------------*/ /* Exported constants --------------------------------------------------------*/
/* USER CODE BEGIN EC */ /* USER CODE BEGIN EC */
/* USER CODE END EC */ /* USER CODE END EC */
/* Exported macro ------------------------------------------------------------*/ /* Exported macro ------------------------------------------------------------*/
/* USER CODE BEGIN EM */ /* USER CODE BEGIN EM */
/* USER CODE END EM */ /* USER CODE END EM */
/* Exported functions prototypes ---------------------------------------------*/ /* Exported functions prototypes ---------------------------------------------*/
void Error_Handler(void); void Error_Handler(void);
/* USER CODE BEGIN EFP */ /* USER CODE BEGIN EFP */
@ -82,21 +81,21 @@ extern "C"
#define OLDE_SCK_Pin LL_GPIO_PIN_13 #define OLDE_SCK_Pin LL_GPIO_PIN_13
#define OLDE_SCK_GPIO_Port GPIOB #define OLDE_SCK_GPIO_Port GPIOB
#ifndef NVIC_PRIORITYGROUP_0 #ifndef NVIC_PRIORITYGROUP_0
#define NVIC_PRIORITYGROUP_0 ((uint32_t)0x00000007) /*!< 0 bit for pre-emption priority, \ #define NVIC_PRIORITYGROUP_0 ((uint32_t)0x00000007) /*!< 0 bit for pre-emption priority,
4 bits for subpriority */ 4 bits for subpriority */
#define NVIC_PRIORITYGROUP_1 ((uint32_t)0x00000006) /*!< 1 bit for pre-emption priority, \ #define NVIC_PRIORITYGROUP_1 ((uint32_t)0x00000006) /*!< 1 bit for pre-emption priority,
3 bits for subpriority */ 3 bits for subpriority */
#define NVIC_PRIORITYGROUP_2 ((uint32_t)0x00000005) /*!< 2 bits for pre-emption priority, \ #define NVIC_PRIORITYGROUP_2 ((uint32_t)0x00000005) /*!< 2 bits for pre-emption priority,
2 bits for subpriority */ 2 bits for subpriority */
#define NVIC_PRIORITYGROUP_3 ((uint32_t)0x00000004) /*!< 3 bits for pre-emption priority, \ #define NVIC_PRIORITYGROUP_3 ((uint32_t)0x00000004) /*!< 3 bits for pre-emption priority,
1 bit for subpriority */ 1 bit for subpriority */
#define NVIC_PRIORITYGROUP_4 ((uint32_t)0x00000003) /*!< 4 bits for pre-emption priority, \ #define NVIC_PRIORITYGROUP_4 ((uint32_t)0x00000003) /*!< 4 bits for pre-emption priority,
0 bit for subpriority */ 0 bit for subpriority */
#endif #endif
/* USER CODE BEGIN Private defines */ /* USER CODE BEGIN Private defines */
/* USER CODE END Private defines */ /* USER CODE END Private defines */
#ifdef __cplusplus #ifdef __cplusplus
} }

View File

@ -55,10 +55,7 @@ void SVC_Handler(void);
void DebugMon_Handler(void); void DebugMon_Handler(void);
void PendSV_Handler(void); void PendSV_Handler(void);
void SysTick_Handler(void); void SysTick_Handler(void);
void PVD_IRQHandler(void); void TIM2_IRQHandler(void);
void DMA1_Channel4_IRQHandler(void);
void DMA1_Channel5_IRQHandler(void);
void USART1_IRQHandler(void);
/* USER CODE BEGIN EFP */ /* USER CODE BEGIN EFP */
/* USER CODE END EFP */ /* USER CODE END EFP */

View File

@ -1,9 +1,9 @@
/* USER CODE BEGIN Header */ /* USER CODE BEGIN Header */
/** /**
****************************************************************************** ******************************************************************************
* @file usart.h * @file tim.h
* @brief This file contains all the function prototypes for * @brief This file contains all the function prototypes for
* the usart.c file * the tim.c file
****************************************************************************** ******************************************************************************
* @attention * @attention
* *
@ -18,8 +18,8 @@
*/ */
/* USER CODE END Header */ /* USER CODE END Header */
/* Define to prevent recursive inclusion -------------------------------------*/ /* Define to prevent recursive inclusion -------------------------------------*/
#ifndef __USART_H__ #ifndef __TIM_H__
#define __USART_H__ #define __TIM_H__
#ifdef __cplusplus #ifdef __cplusplus
extern "C" { extern "C" {
@ -36,7 +36,7 @@ extern "C" {
/* USER CODE END Private defines */ /* USER CODE END Private defines */
void MX_USART1_UART_Init(void); void MX_TIM2_Init(void);
/* USER CODE BEGIN Prototypes */ /* USER CODE BEGIN Prototypes */
@ -46,5 +46,5 @@ void MX_USART1_UART_Init(void);
} }
#endif #endif
#endif /* __USART_H__ */ #endif /* __TIM_H__ */

View File

@ -1,59 +0,0 @@
/* USER CODE BEGIN Header */
/**
******************************************************************************
* @file dma.c
* @brief This file provides code for the configuration
* of all the requested memory to memory DMA transfers.
******************************************************************************
* @attention
*
* Copyright (c) 2024 STMicroelectronics.
* All rights reserved.
*
* This software is licensed under terms that can be found in the LICENSE file
* in the root directory of this software component.
* If no LICENSE file comes with this software, it is provided AS-IS.
*
******************************************************************************
*/
/* USER CODE END Header */
/* Includes ------------------------------------------------------------------*/
#include "dma.h"
/* USER CODE BEGIN 0 */
/* USER CODE END 0 */
/*----------------------------------------------------------------------------*/
/* Configure DMA */
/*----------------------------------------------------------------------------*/
/* USER CODE BEGIN 1 */
/* USER CODE END 1 */
/**
* Enable DMA controller clock
*/
void MX_DMA_Init(void)
{
/* Init with LL driver */
/* DMA controller clock enable */
LL_AHB1_GRP1_EnableClock(LL_AHB1_GRP1_PERIPH_DMA1);
/* DMA interrupt init */
/* DMA1_Channel4_IRQn interrupt configuration */
NVIC_SetPriority(DMA1_Channel4_IRQn, NVIC_EncodePriority(NVIC_GetPriorityGrouping(),0, 0));
NVIC_EnableIRQ(DMA1_Channel4_IRQn);
/* DMA1_Channel5_IRQn interrupt configuration */
NVIC_SetPriority(DMA1_Channel5_IRQn, NVIC_EncodePriority(NVIC_GetPriorityGrouping(),0, 0));
NVIC_EnableIRQ(DMA1_Channel5_IRQn);
}
/* USER CODE BEGIN 2 */
/* USER CODE END 2 */

View File

@ -73,7 +73,8 @@ void MX_GPIO_Init(void)
/**/ /**/
GPIO_InitStruct.Pin = LL_GPIO_PIN_0|LL_GPIO_PIN_1|LL_GPIO_PIN_2|LL_GPIO_PIN_3 GPIO_InitStruct.Pin = LL_GPIO_PIN_0|LL_GPIO_PIN_1|LL_GPIO_PIN_2|LL_GPIO_PIN_3
|LL_GPIO_PIN_4|LL_GPIO_PIN_5|LL_GPIO_PIN_6|LL_GPIO_PIN_7 |LL_GPIO_PIN_4|LL_GPIO_PIN_5|LL_GPIO_PIN_6|LL_GPIO_PIN_7
|LL_GPIO_PIN_8|LL_GPIO_PIN_11|LL_GPIO_PIN_12|LL_GPIO_PIN_15; |LL_GPIO_PIN_8|LL_GPIO_PIN_9|LL_GPIO_PIN_10|LL_GPIO_PIN_11
|LL_GPIO_PIN_12|LL_GPIO_PIN_15;
GPIO_InitStruct.Mode = LL_GPIO_MODE_ANALOG; GPIO_InitStruct.Mode = LL_GPIO_MODE_ANALOG;
LL_GPIO_Init(GPIOA, &GPIO_InitStruct); LL_GPIO_Init(GPIOA, &GPIO_InitStruct);

View File

@ -18,8 +18,7 @@
/* USER CODE END Header */ /* USER CODE END Header */
/* Includes ------------------------------------------------------------------*/ /* Includes ------------------------------------------------------------------*/
#include "main.h" #include "main.h"
#include "dma.h" #include "tim.h"
#include "usart.h"
#include "gpio.h" #include "gpio.h"
/* Private includes ----------------------------------------------------------*/ /* Private includes ----------------------------------------------------------*/
@ -61,9 +60,9 @@ void SystemClock_Config(void);
/* USER CODE END 0 */ /* USER CODE END 0 */
/** /**
* @brief The application entry point. * @brief The application entry point.
* @retval int * @retval int
*/ */
int main(void) int main(void)
{ {
/* USER CODE BEGIN 1 */ /* USER CODE BEGIN 1 */
@ -79,13 +78,8 @@ int main(void)
/* System interrupt init*/ /* System interrupt init*/
NVIC_SetPriorityGrouping(NVIC_PRIORITYGROUP_4); NVIC_SetPriorityGrouping(NVIC_PRIORITYGROUP_4);
/* Peripheral interrupt init*/
/* PVD_IRQn interrupt configuration */
NVIC_SetPriority(PVD_IRQn, NVIC_EncodePriority(NVIC_GetPriorityGrouping(), 0, 0));
NVIC_EnableIRQ(PVD_IRQn);
/** NOJTAG: JTAG-DP Disabled and SW-DP Enabled /** NOJTAG: JTAG-DP Disabled and SW-DP Enabled
*/ */
LL_GPIO_AF_Remap_SWJ_NOJTAG(); LL_GPIO_AF_Remap_SWJ_NOJTAG();
/* USER CODE BEGIN Init */ /* USER CODE BEGIN Init */
@ -101,8 +95,7 @@ int main(void)
/* Initialize all configured peripherals */ /* Initialize all configured peripherals */
MX_GPIO_Init(); MX_GPIO_Init();
MX_DMA_Init(); MX_TIM2_Init();
MX_USART1_UART_Init();
/* USER CODE BEGIN 2 */ /* USER CODE BEGIN 2 */
my_mem_init(SRAMIN); // Initialize internal memory pool 1 my_mem_init(SRAMIN); // Initialize internal memory pool 1
board_init(); board_init();
@ -122,36 +115,39 @@ int main(void)
} }
/** /**
* @brief System Clock Configuration * @brief System Clock Configuration
* @retval None * @retval None
*/ */
void SystemClock_Config(void) void SystemClock_Config(void)
{ {
LL_FLASH_SetLatency(LL_FLASH_LATENCY_2); LL_FLASH_SetLatency(LL_FLASH_LATENCY_2);
while (LL_FLASH_GetLatency() != LL_FLASH_LATENCY_2) while(LL_FLASH_GetLatency()!= LL_FLASH_LATENCY_2)
{ {
} }
LL_RCC_HSE_Enable(); LL_RCC_HSE_Enable();
/* Wait till HSE is ready */ /* Wait till HSE is ready */
while (LL_RCC_HSE_IsReady() != 1) while(LL_RCC_HSE_IsReady() != 1)
{ {
} }
LL_RCC_PLL_ConfigDomain_SYS(LL_RCC_PLLSOURCE_HSE_DIV_1, LL_RCC_PLL_MUL_9); LL_RCC_PLL_ConfigDomain_SYS(LL_RCC_PLLSOURCE_HSE_DIV_1, LL_RCC_PLL_MUL_9);
LL_RCC_PLL_Enable(); LL_RCC_PLL_Enable();
/* Wait till PLL is ready */ /* Wait till PLL is ready */
while (LL_RCC_PLL_IsReady() != 1) while(LL_RCC_PLL_IsReady() != 1)
{ {
} }
LL_RCC_SetAHBPrescaler(LL_RCC_SYSCLK_DIV_1); LL_RCC_SetAHBPrescaler(LL_RCC_SYSCLK_DIV_1);
LL_RCC_SetAPB1Prescaler(LL_RCC_APB1_DIV_2); LL_RCC_SetAPB1Prescaler(LL_RCC_APB1_DIV_2);
LL_RCC_SetAPB2Prescaler(LL_RCC_APB2_DIV_1); LL_RCC_SetAPB2Prescaler(LL_RCC_APB2_DIV_1);
LL_RCC_SetSysClkSource(LL_RCC_SYS_CLKSOURCE_PLL); LL_RCC_SetSysClkSource(LL_RCC_SYS_CLKSOURCE_PLL);
/* Wait till System clock is ready */ /* Wait till System clock is ready */
while (LL_RCC_GetSysClkSource() != LL_RCC_SYS_CLKSOURCE_STATUS_PLL) while(LL_RCC_GetSysClkSource() != LL_RCC_SYS_CLKSOURCE_STATUS_PLL)
{ {
} }
LL_Init1msTick(72000000); LL_Init1msTick(72000000);
LL_SetSystemCoreClock(72000000); LL_SetSystemCoreClock(72000000);
@ -162,9 +158,9 @@ void SystemClock_Config(void)
/* USER CODE END 4 */ /* USER CODE END 4 */
/** /**
* @brief This function is executed in case of error occurrence. * @brief This function is executed in case of error occurrence.
* @retval None * @retval None
*/ */
void Error_Handler(void) void Error_Handler(void)
{ {
/* USER CODE BEGIN Error_Handler_Debug */ /* USER CODE BEGIN Error_Handler_Debug */
@ -176,14 +172,14 @@ void Error_Handler(void)
/* USER CODE END Error_Handler_Debug */ /* USER CODE END Error_Handler_Debug */
} }
#ifdef USE_FULL_ASSERT #ifdef USE_FULL_ASSERT
/** /**
* @brief Reports the name of the source file and the source line number * @brief Reports the name of the source file and the source line number
* where the assert_param error has occurred. * where the assert_param error has occurred.
* @param file: pointer to the source file name * @param file: pointer to the source file name
* @param line: assert_param error line source number * @param line: assert_param error line source number
* @retval None * @retval None
*/ */
void assert_failed(uint8_t *file, uint32_t line) void assert_failed(uint8_t *file, uint32_t line)
{ {
/* USER CODE BEGIN 6 */ /* USER CODE BEGIN 6 */

View File

@ -1,20 +1,20 @@
/* USER CODE BEGIN Header */ /* USER CODE BEGIN Header */
/** /**
****************************************************************************** ******************************************************************************
* @file stm32f1xx_it.c * @file stm32f1xx_it.c
* @brief Interrupt Service Routines. * @brief Interrupt Service Routines.
****************************************************************************** ******************************************************************************
* @attention * @attention
* *
* Copyright (c) 2024 STMicroelectronics. * Copyright (c) 2024 STMicroelectronics.
* All rights reserved. * All rights reserved.
* *
* This software is licensed under terms that can be found in the LICENSE file * This software is licensed under terms that can be found in the LICENSE file
* in the root directory of this software component. * in the root directory of this software component.
* If no LICENSE file comes with this software, it is provided AS-IS. * If no LICENSE file comes with this software, it is provided AS-IS.
* *
****************************************************************************** ******************************************************************************
*/ */
/* USER CODE END Header */ /* USER CODE END Header */
/* Includes ------------------------------------------------------------------*/ /* Includes ------------------------------------------------------------------*/
@ -22,6 +22,9 @@
#include "stm32f1xx_it.h" #include "stm32f1xx_it.h"
/* Private includes ----------------------------------------------------------*/ /* Private includes ----------------------------------------------------------*/
/* USER CODE BEGIN Includes */ /* USER CODE BEGIN Includes */
#include "sys.h"
#include "flow.h"
#include "board.h"
/* USER CODE END Includes */ /* USER CODE END Includes */
/* Private typedef -----------------------------------------------------------*/ /* Private typedef -----------------------------------------------------------*/
@ -199,58 +202,21 @@ void SysTick_Handler(void)
/******************************************************************************/ /******************************************************************************/
/** /**
* @brief This function handles PVD interrupt through EXTI line 16. * @brief This function handles TIM2 global interrupt.
*/ */
void PVD_IRQHandler(void) void TIM2_IRQHandler(void)
{ {
/* USER CODE BEGIN PVD_IRQn 0 */ /* USER CODE BEGIN TIM2_IRQn 0 */
/* USER CODE END PVD_IRQn 0 */ /* USER CODE END TIM2_IRQn 0 */
/* USER CODE BEGIN TIM2_IRQn 1 */
/* USER CODE BEGIN PVD_IRQn 1 */ if (IS_TIM_IT_FLAG(TASK_TIM))
{
/* USER CODE END PVD_IRQn 1 */ TIM_IRQ_HANDLER(TASK_TIM);
} LL_IncTick();
FLOW_TICK_UPDATE();
/** }
* @brief This function handles DMA1 channel4 global interrupt. /* USER CODE END TIM2_IRQn 1 */
*/
void DMA1_Channel4_IRQHandler(void)
{
/* USER CODE BEGIN DMA1_Channel4_IRQn 0 */
/* USER CODE END DMA1_Channel4_IRQn 0 */
/* USER CODE BEGIN DMA1_Channel4_IRQn 1 */
/* USER CODE END DMA1_Channel4_IRQn 1 */
}
/**
* @brief This function handles DMA1 channel5 global interrupt.
*/
void DMA1_Channel5_IRQHandler(void)
{
/* USER CODE BEGIN DMA1_Channel5_IRQn 0 */
/* USER CODE END DMA1_Channel5_IRQn 0 */
/* USER CODE BEGIN DMA1_Channel5_IRQn 1 */
/* USER CODE END DMA1_Channel5_IRQn 1 */
}
/**
* @brief This function handles USART1 global interrupt.
*/
void USART1_IRQHandler(void)
{
/* USER CODE BEGIN USART1_IRQn 0 */
/* USER CODE END USART1_IRQn 0 */
/* USER CODE BEGIN USART1_IRQn 1 */
/* USER CODE END USART1_IRQn 1 */
} }
/* USER CODE BEGIN 1 */ /* USER CODE BEGIN 1 */

64
Core/Src/tim.c Normal file
View File

@ -0,0 +1,64 @@
/* USER CODE BEGIN Header */
/**
******************************************************************************
* @file tim.c
* @brief This file provides code for the configuration
* of the TIM instances.
******************************************************************************
* @attention
*
* Copyright (c) 2024 STMicroelectronics.
* All rights reserved.
*
* This software is licensed under terms that can be found in the LICENSE file
* in the root directory of this software component.
* If no LICENSE file comes with this software, it is provided AS-IS.
*
******************************************************************************
*/
/* USER CODE END Header */
/* Includes ------------------------------------------------------------------*/
#include "tim.h"
/* USER CODE BEGIN 0 */
/* USER CODE END 0 */
/* TIM2 init function */
void MX_TIM2_Init(void)
{
/* USER CODE BEGIN TIM2_Init 0 */
/* USER CODE END TIM2_Init 0 */
LL_TIM_InitTypeDef TIM_InitStruct = {0};
/* Peripheral clock enable */
LL_APB1_GRP1_EnableClock(LL_APB1_GRP1_PERIPH_TIM2);
/* TIM2 interrupt Init */
NVIC_SetPriority(TIM2_IRQn, NVIC_EncodePriority(NVIC_GetPriorityGrouping(),15, 0));
NVIC_EnableIRQ(TIM2_IRQn);
/* USER CODE BEGIN TIM2_Init 1 */
/* USER CODE END TIM2_Init 1 */
TIM_InitStruct.Prescaler = 7199;
TIM_InitStruct.CounterMode = LL_TIM_COUNTERMODE_UP;
TIM_InitStruct.Autoreload = 99;
TIM_InitStruct.ClockDivision = LL_TIM_CLOCKDIVISION_DIV1;
LL_TIM_Init(TIM2, &TIM_InitStruct);
LL_TIM_DisableARRPreload(TIM2);
LL_TIM_SetClockSource(TIM2, LL_TIM_CLOCKSOURCE_INTERNAL);
LL_TIM_SetTriggerOutput(TIM2, LL_TIM_TRGO_RESET);
LL_TIM_DisableMasterSlaveMode(TIM2);
/* USER CODE BEGIN TIM2_Init 2 */
/* USER CODE END TIM2_Init 2 */
}
/* USER CODE BEGIN 1 */
/* USER CODE END 1 */

View File

@ -1,115 +0,0 @@
/* USER CODE BEGIN Header */
/**
******************************************************************************
* @file usart.c
* @brief This file provides code for the configuration
* of the USART instances.
******************************************************************************
* @attention
*
* Copyright (c) 2024 STMicroelectronics.
* All rights reserved.
*
* This software is licensed under terms that can be found in the LICENSE file
* in the root directory of this software component.
* If no LICENSE file comes with this software, it is provided AS-IS.
*
******************************************************************************
*/
/* USER CODE END Header */
/* Includes ------------------------------------------------------------------*/
#include "usart.h"
/* USER CODE BEGIN 0 */
/* USER CODE END 0 */
/* USART1 init function */
void MX_USART1_UART_Init(void)
{
/* USER CODE BEGIN USART1_Init 0 */
/* USER CODE END USART1_Init 0 */
LL_USART_InitTypeDef USART_InitStruct = {0};
LL_GPIO_InitTypeDef GPIO_InitStruct = {0};
/* Peripheral clock enable */
LL_APB2_GRP1_EnableClock(LL_APB2_GRP1_PERIPH_USART1);
LL_APB2_GRP1_EnableClock(LL_APB2_GRP1_PERIPH_GPIOA);
/**USART1 GPIO Configuration
PA9 ------> USART1_TX
PA10 ------> USART1_RX
*/
GPIO_InitStruct.Pin = LL_GPIO_PIN_9;
GPIO_InitStruct.Mode = LL_GPIO_MODE_ALTERNATE;
GPIO_InitStruct.Speed = LL_GPIO_SPEED_FREQ_HIGH;
GPIO_InitStruct.OutputType = LL_GPIO_OUTPUT_PUSHPULL;
LL_GPIO_Init(GPIOA, &GPIO_InitStruct);
GPIO_InitStruct.Pin = LL_GPIO_PIN_10;
GPIO_InitStruct.Mode = LL_GPIO_MODE_FLOATING;
LL_GPIO_Init(GPIOA, &GPIO_InitStruct);
/* USART1 DMA Init */
/* USART1_RX Init */
LL_DMA_SetDataTransferDirection(DMA1, LL_DMA_CHANNEL_5, LL_DMA_DIRECTION_PERIPH_TO_MEMORY);
LL_DMA_SetChannelPriorityLevel(DMA1, LL_DMA_CHANNEL_5, LL_DMA_PRIORITY_LOW);
LL_DMA_SetMode(DMA1, LL_DMA_CHANNEL_5, LL_DMA_MODE_NORMAL);
LL_DMA_SetPeriphIncMode(DMA1, LL_DMA_CHANNEL_5, LL_DMA_PERIPH_NOINCREMENT);
LL_DMA_SetMemoryIncMode(DMA1, LL_DMA_CHANNEL_5, LL_DMA_MEMORY_INCREMENT);
LL_DMA_SetPeriphSize(DMA1, LL_DMA_CHANNEL_5, LL_DMA_PDATAALIGN_BYTE);
LL_DMA_SetMemorySize(DMA1, LL_DMA_CHANNEL_5, LL_DMA_MDATAALIGN_BYTE);
/* USART1_TX Init */
LL_DMA_SetDataTransferDirection(DMA1, LL_DMA_CHANNEL_4, LL_DMA_DIRECTION_MEMORY_TO_PERIPH);
LL_DMA_SetChannelPriorityLevel(DMA1, LL_DMA_CHANNEL_4, LL_DMA_PRIORITY_LOW);
LL_DMA_SetMode(DMA1, LL_DMA_CHANNEL_4, LL_DMA_MODE_NORMAL);
LL_DMA_SetPeriphIncMode(DMA1, LL_DMA_CHANNEL_4, LL_DMA_PERIPH_NOINCREMENT);
LL_DMA_SetMemoryIncMode(DMA1, LL_DMA_CHANNEL_4, LL_DMA_MEMORY_INCREMENT);
LL_DMA_SetPeriphSize(DMA1, LL_DMA_CHANNEL_4, LL_DMA_PDATAALIGN_BYTE);
LL_DMA_SetMemorySize(DMA1, LL_DMA_CHANNEL_4, LL_DMA_MDATAALIGN_BYTE);
/* USART1 interrupt Init */
NVIC_SetPriority(USART1_IRQn, NVIC_EncodePriority(NVIC_GetPriorityGrouping(),0, 0));
NVIC_EnableIRQ(USART1_IRQn);
/* USER CODE BEGIN USART1_Init 1 */
/* USER CODE END USART1_Init 1 */
USART_InitStruct.BaudRate = 115200;
USART_InitStruct.DataWidth = LL_USART_DATAWIDTH_8B;
USART_InitStruct.StopBits = LL_USART_STOPBITS_1;
USART_InitStruct.Parity = LL_USART_PARITY_NONE;
USART_InitStruct.TransferDirection = LL_USART_DIRECTION_TX_RX;
USART_InitStruct.HardwareFlowControl = LL_USART_HWCONTROL_NONE;
USART_InitStruct.OverSampling = LL_USART_OVERSAMPLING_16;
LL_USART_Init(USART1, &USART_InitStruct);
LL_USART_ConfigAsyncMode(USART1);
LL_USART_Enable(USART1);
/* USER CODE BEGIN USART1_Init 2 */
/* USER CODE END USART1_Init 2 */
}
/* USER CODE BEGIN 1 */
/* USER CODE END 1 */

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -1,438 +0,0 @@
/**
******************************************************************************
* @file stm32f1xx_ll_usart.c
* @author MCD Application Team
* @brief USART LL module driver.
******************************************************************************
* @attention
*
* Copyright (c) 2016 STMicroelectronics.
* All rights reserved.
*
* This software is licensed under terms that can be found in the LICENSE file
* in the root directory of this software component.
* If no LICENSE file comes with this software, it is provided AS-IS.
*
******************************************************************************
*/
#if defined(USE_FULL_LL_DRIVER)
/* Includes ------------------------------------------------------------------*/
#include "stm32f1xx_ll_usart.h"
#include "stm32f1xx_ll_rcc.h"
#include "stm32f1xx_ll_bus.h"
#ifdef USE_FULL_ASSERT
#include "stm32_assert.h"
#else
#define assert_param(expr) ((void)0U)
#endif
/** @addtogroup STM32F1xx_LL_Driver
* @{
*/
#if defined (USART1) || defined (USART2) || defined (USART3) || defined (UART4) || defined (UART5)
/** @addtogroup USART_LL
* @{
*/
/* Private types -------------------------------------------------------------*/
/* Private variables ---------------------------------------------------------*/
/* Private constants ---------------------------------------------------------*/
/** @addtogroup USART_LL_Private_Constants
* @{
*/
/**
* @}
*/
/* Private macros ------------------------------------------------------------*/
/** @addtogroup USART_LL_Private_Macros
* @{
*/
/* __BAUDRATE__ The maximum Baud Rate is derived from the maximum clock available
* divided by the smallest oversampling used on the USART (i.e. 8) */
#define IS_LL_USART_BAUDRATE(__BAUDRATE__) ((__BAUDRATE__) <= 4500000U)
/* __VALUE__ In case of oversampling by 16 and 8, BRR content must be greater than or equal to 16d. */
#define IS_LL_USART_BRR_MIN(__VALUE__) ((__VALUE__) >= 16U)
#define IS_LL_USART_DIRECTION(__VALUE__) (((__VALUE__) == LL_USART_DIRECTION_NONE) \
|| ((__VALUE__) == LL_USART_DIRECTION_RX) \
|| ((__VALUE__) == LL_USART_DIRECTION_TX) \
|| ((__VALUE__) == LL_USART_DIRECTION_TX_RX))
#define IS_LL_USART_PARITY(__VALUE__) (((__VALUE__) == LL_USART_PARITY_NONE) \
|| ((__VALUE__) == LL_USART_PARITY_EVEN) \
|| ((__VALUE__) == LL_USART_PARITY_ODD))
#define IS_LL_USART_DATAWIDTH(__VALUE__) (((__VALUE__) == LL_USART_DATAWIDTH_8B) \
|| ((__VALUE__) == LL_USART_DATAWIDTH_9B))
#define IS_LL_USART_OVERSAMPLING(__VALUE__) (((__VALUE__) == LL_USART_OVERSAMPLING_16) \
|| ((__VALUE__) == LL_USART_OVERSAMPLING_8))
#define IS_LL_USART_LASTBITCLKOUTPUT(__VALUE__) (((__VALUE__) == LL_USART_LASTCLKPULSE_NO_OUTPUT) \
|| ((__VALUE__) == LL_USART_LASTCLKPULSE_OUTPUT))
#define IS_LL_USART_CLOCKPHASE(__VALUE__) (((__VALUE__) == LL_USART_PHASE_1EDGE) \
|| ((__VALUE__) == LL_USART_PHASE_2EDGE))
#define IS_LL_USART_CLOCKPOLARITY(__VALUE__) (((__VALUE__) == LL_USART_POLARITY_LOW) \
|| ((__VALUE__) == LL_USART_POLARITY_HIGH))
#define IS_LL_USART_CLOCKOUTPUT(__VALUE__) (((__VALUE__) == LL_USART_CLOCK_DISABLE) \
|| ((__VALUE__) == LL_USART_CLOCK_ENABLE))
#define IS_LL_USART_STOPBITS(__VALUE__) (((__VALUE__) == LL_USART_STOPBITS_0_5) \
|| ((__VALUE__) == LL_USART_STOPBITS_1) \
|| ((__VALUE__) == LL_USART_STOPBITS_1_5) \
|| ((__VALUE__) == LL_USART_STOPBITS_2))
#define IS_LL_USART_HWCONTROL(__VALUE__) (((__VALUE__) == LL_USART_HWCONTROL_NONE) \
|| ((__VALUE__) == LL_USART_HWCONTROL_RTS) \
|| ((__VALUE__) == LL_USART_HWCONTROL_CTS) \
|| ((__VALUE__) == LL_USART_HWCONTROL_RTS_CTS))
/**
* @}
*/
/* Private function prototypes -----------------------------------------------*/
/* Exported functions --------------------------------------------------------*/
/** @addtogroup USART_LL_Exported_Functions
* @{
*/
/** @addtogroup USART_LL_EF_Init
* @{
*/
/**
* @brief De-initialize USART registers (Registers restored to their default values).
* @param USARTx USART Instance
* @retval An ErrorStatus enumeration value:
* - SUCCESS: USART registers are de-initialized
* - ERROR: USART registers are not de-initialized
*/
ErrorStatus LL_USART_DeInit(const USART_TypeDef *USARTx)
{
ErrorStatus status = SUCCESS;
/* Check the parameters */
assert_param(IS_UART_INSTANCE(USARTx));
if (USARTx == USART1)
{
/* Force reset of USART clock */
LL_APB2_GRP1_ForceReset(LL_APB2_GRP1_PERIPH_USART1);
/* Release reset of USART clock */
LL_APB2_GRP1_ReleaseReset(LL_APB2_GRP1_PERIPH_USART1);
}
else if (USARTx == USART2)
{
/* Force reset of USART clock */
LL_APB1_GRP1_ForceReset(LL_APB1_GRP1_PERIPH_USART2);
/* Release reset of USART clock */
LL_APB1_GRP1_ReleaseReset(LL_APB1_GRP1_PERIPH_USART2);
}
#if defined(USART3)
else if (USARTx == USART3)
{
/* Force reset of USART clock */
LL_APB1_GRP1_ForceReset(LL_APB1_GRP1_PERIPH_USART3);
/* Release reset of USART clock */
LL_APB1_GRP1_ReleaseReset(LL_APB1_GRP1_PERIPH_USART3);
}
#endif /* USART3 */
#if defined(UART4)
else if (USARTx == UART4)
{
/* Force reset of UART clock */
LL_APB1_GRP1_ForceReset(LL_APB1_GRP1_PERIPH_UART4);
/* Release reset of UART clock */
LL_APB1_GRP1_ReleaseReset(LL_APB1_GRP1_PERIPH_UART4);
}
#endif /* UART4 */
#if defined(UART5)
else if (USARTx == UART5)
{
/* Force reset of UART clock */
LL_APB1_GRP1_ForceReset(LL_APB1_GRP1_PERIPH_UART5);
/* Release reset of UART clock */
LL_APB1_GRP1_ReleaseReset(LL_APB1_GRP1_PERIPH_UART5);
}
#endif /* UART5 */
else
{
status = ERROR;
}
return (status);
}
/**
* @brief Initialize USART registers according to the specified
* parameters in USART_InitStruct.
* @note As some bits in USART configuration registers can only be written when the USART is disabled (USART_CR1_UE bit =0),
* USART IP should be in disabled state prior calling this function. Otherwise, ERROR result will be returned.
* @note Baud rate value stored in USART_InitStruct BaudRate field, should be valid (different from 0).
* @param USARTx USART Instance
* @param USART_InitStruct pointer to a LL_USART_InitTypeDef structure
* that contains the configuration information for the specified USART peripheral.
* @retval An ErrorStatus enumeration value:
* - SUCCESS: USART registers are initialized according to USART_InitStruct content
* - ERROR: Problem occurred during USART Registers initialization
*/
ErrorStatus LL_USART_Init(USART_TypeDef *USARTx, const LL_USART_InitTypeDef *USART_InitStruct)
{
ErrorStatus status = ERROR;
uint32_t periphclk = LL_RCC_PERIPH_FREQUENCY_NO;
LL_RCC_ClocksTypeDef rcc_clocks;
/* Check the parameters */
assert_param(IS_UART_INSTANCE(USARTx));
assert_param(IS_LL_USART_BAUDRATE(USART_InitStruct->BaudRate));
assert_param(IS_LL_USART_DATAWIDTH(USART_InitStruct->DataWidth));
assert_param(IS_LL_USART_STOPBITS(USART_InitStruct->StopBits));
assert_param(IS_LL_USART_PARITY(USART_InitStruct->Parity));
assert_param(IS_LL_USART_DIRECTION(USART_InitStruct->TransferDirection));
assert_param(IS_LL_USART_HWCONTROL(USART_InitStruct->HardwareFlowControl));
#if defined(USART_CR1_OVER8)
assert_param(IS_LL_USART_OVERSAMPLING(USART_InitStruct->OverSampling));
#endif /* USART_OverSampling_Feature */
/* USART needs to be in disabled state, in order to be able to configure some bits in
CRx registers */
if (LL_USART_IsEnabled(USARTx) == 0U)
{
/*---------------------------- USART CR1 Configuration -----------------------
* Configure USARTx CR1 (USART Word Length, Parity, Mode and Oversampling bits) with parameters:
* - DataWidth: USART_CR1_M bits according to USART_InitStruct->DataWidth value
* - Parity: USART_CR1_PCE, USART_CR1_PS bits according to USART_InitStruct->Parity value
* - TransferDirection: USART_CR1_TE, USART_CR1_RE bits according to USART_InitStruct->TransferDirection value
* - Oversampling: USART_CR1_OVER8 bit according to USART_InitStruct->OverSampling value.
*/
#if defined(USART_CR1_OVER8)
MODIFY_REG(USARTx->CR1,
(USART_CR1_M | USART_CR1_PCE | USART_CR1_PS |
USART_CR1_TE | USART_CR1_RE | USART_CR1_OVER8),
(USART_InitStruct->DataWidth | USART_InitStruct->Parity |
USART_InitStruct->TransferDirection | USART_InitStruct->OverSampling));
#else
MODIFY_REG(USARTx->CR1,
(USART_CR1_M | USART_CR1_PCE | USART_CR1_PS |
USART_CR1_TE | USART_CR1_RE),
(USART_InitStruct->DataWidth | USART_InitStruct->Parity |
USART_InitStruct->TransferDirection));
#endif /* USART_OverSampling_Feature */
/*---------------------------- USART CR2 Configuration -----------------------
* Configure USARTx CR2 (Stop bits) with parameters:
* - Stop Bits: USART_CR2_STOP bits according to USART_InitStruct->StopBits value.
* - CLKEN, CPOL, CPHA and LBCL bits are to be configured using LL_USART_ClockInit().
*/
LL_USART_SetStopBitsLength(USARTx, USART_InitStruct->StopBits);
/*---------------------------- USART CR3 Configuration -----------------------
* Configure USARTx CR3 (Hardware Flow Control) with parameters:
* - HardwareFlowControl: USART_CR3_RTSE, USART_CR3_CTSE bits according to USART_InitStruct->HardwareFlowControl value.
*/
LL_USART_SetHWFlowCtrl(USARTx, USART_InitStruct->HardwareFlowControl);
/*---------------------------- USART BRR Configuration -----------------------
* Retrieve Clock frequency used for USART Peripheral
*/
LL_RCC_GetSystemClocksFreq(&rcc_clocks);
if (USARTx == USART1)
{
periphclk = rcc_clocks.PCLK2_Frequency;
}
else if (USARTx == USART2)
{
periphclk = rcc_clocks.PCLK1_Frequency;
}
#if defined(USART3)
else if (USARTx == USART3)
{
periphclk = rcc_clocks.PCLK1_Frequency;
}
#endif /* USART3 */
#if defined(UART4)
else if (USARTx == UART4)
{
periphclk = rcc_clocks.PCLK1_Frequency;
}
#endif /* UART4 */
#if defined(UART5)
else if (USARTx == UART5)
{
periphclk = rcc_clocks.PCLK1_Frequency;
}
#endif /* UART5 */
else
{
/* Nothing to do, as error code is already assigned to ERROR value */
}
/* Configure the USART Baud Rate :
- valid baud rate value (different from 0) is required
- Peripheral clock as returned by RCC service, should be valid (different from 0).
*/
if ((periphclk != LL_RCC_PERIPH_FREQUENCY_NO)
&& (USART_InitStruct->BaudRate != 0U))
{
status = SUCCESS;
#if defined(USART_CR1_OVER8)
LL_USART_SetBaudRate(USARTx,
periphclk,
USART_InitStruct->OverSampling,
USART_InitStruct->BaudRate);
#else
LL_USART_SetBaudRate(USARTx,
periphclk,
USART_InitStruct->BaudRate);
#endif /* USART_OverSampling_Feature */
/* Check BRR is greater than or equal to 16d */
assert_param(IS_LL_USART_BRR_MIN(USARTx->BRR));
}
}
/* Endif (=> USART not in Disabled state => return ERROR) */
return (status);
}
/**
* @brief Set each @ref LL_USART_InitTypeDef field to default value.
* @param USART_InitStruct Pointer to a @ref LL_USART_InitTypeDef structure
* whose fields will be set to default values.
* @retval None
*/
void LL_USART_StructInit(LL_USART_InitTypeDef *USART_InitStruct)
{
/* Set USART_InitStruct fields to default values */
USART_InitStruct->BaudRate = 9600U;
USART_InitStruct->DataWidth = LL_USART_DATAWIDTH_8B;
USART_InitStruct->StopBits = LL_USART_STOPBITS_1;
USART_InitStruct->Parity = LL_USART_PARITY_NONE ;
USART_InitStruct->TransferDirection = LL_USART_DIRECTION_TX_RX;
USART_InitStruct->HardwareFlowControl = LL_USART_HWCONTROL_NONE;
#if defined(USART_CR1_OVER8)
USART_InitStruct->OverSampling = LL_USART_OVERSAMPLING_16;
#endif /* USART_OverSampling_Feature */
}
/**
* @brief Initialize USART Clock related settings according to the
* specified parameters in the USART_ClockInitStruct.
* @note As some bits in USART configuration registers can only be written when the USART is disabled (USART_CR1_UE bit =0),
* USART IP should be in disabled state prior calling this function. Otherwise, ERROR result will be returned.
* @param USARTx USART Instance
* @param USART_ClockInitStruct Pointer to a @ref LL_USART_ClockInitTypeDef structure
* that contains the Clock configuration information for the specified USART peripheral.
* @retval An ErrorStatus enumeration value:
* - SUCCESS: USART registers related to Clock settings are initialized according to USART_ClockInitStruct content
* - ERROR: Problem occurred during USART Registers initialization
*/
ErrorStatus LL_USART_ClockInit(USART_TypeDef *USARTx, const LL_USART_ClockInitTypeDef *USART_ClockInitStruct)
{
ErrorStatus status = SUCCESS;
/* Check USART Instance and Clock signal output parameters */
assert_param(IS_UART_INSTANCE(USARTx));
assert_param(IS_LL_USART_CLOCKOUTPUT(USART_ClockInitStruct->ClockOutput));
/* USART needs to be in disabled state, in order to be able to configure some bits in
CRx registers */
if (LL_USART_IsEnabled(USARTx) == 0U)
{
/*---------------------------- USART CR2 Configuration -----------------------*/
/* If Clock signal has to be output */
if (USART_ClockInitStruct->ClockOutput == LL_USART_CLOCK_DISABLE)
{
/* Deactivate Clock signal delivery :
* - Disable Clock Output: USART_CR2_CLKEN cleared
*/
LL_USART_DisableSCLKOutput(USARTx);
}
else
{
/* Ensure USART instance is USART capable */
assert_param(IS_USART_INSTANCE(USARTx));
/* Check clock related parameters */
assert_param(IS_LL_USART_CLOCKPOLARITY(USART_ClockInitStruct->ClockPolarity));
assert_param(IS_LL_USART_CLOCKPHASE(USART_ClockInitStruct->ClockPhase));
assert_param(IS_LL_USART_LASTBITCLKOUTPUT(USART_ClockInitStruct->LastBitClockPulse));
/*---------------------------- USART CR2 Configuration -----------------------
* Configure USARTx CR2 (Clock signal related bits) with parameters:
* - Enable Clock Output: USART_CR2_CLKEN set
* - Clock Polarity: USART_CR2_CPOL bit according to USART_ClockInitStruct->ClockPolarity value
* - Clock Phase: USART_CR2_CPHA bit according to USART_ClockInitStruct->ClockPhase value
* - Last Bit Clock Pulse Output: USART_CR2_LBCL bit according to USART_ClockInitStruct->LastBitClockPulse value.
*/
MODIFY_REG(USARTx->CR2,
USART_CR2_CLKEN | USART_CR2_CPHA | USART_CR2_CPOL | USART_CR2_LBCL,
USART_CR2_CLKEN | USART_ClockInitStruct->ClockPolarity |
USART_ClockInitStruct->ClockPhase | USART_ClockInitStruct->LastBitClockPulse);
}
}
/* Else (USART not in Disabled state => return ERROR */
else
{
status = ERROR;
}
return (status);
}
/**
* @brief Set each field of a @ref LL_USART_ClockInitTypeDef type structure to default value.
* @param USART_ClockInitStruct Pointer to a @ref LL_USART_ClockInitTypeDef structure
* whose fields will be set to default values.
* @retval None
*/
void LL_USART_ClockStructInit(LL_USART_ClockInitTypeDef *USART_ClockInitStruct)
{
/* Set LL_USART_ClockInitStruct fields with default values */
USART_ClockInitStruct->ClockOutput = LL_USART_CLOCK_DISABLE;
USART_ClockInitStruct->ClockPolarity = LL_USART_POLARITY_LOW; /* Not relevant when ClockOutput = LL_USART_CLOCK_DISABLE */
USART_ClockInitStruct->ClockPhase = LL_USART_PHASE_1EDGE; /* Not relevant when ClockOutput = LL_USART_CLOCK_DISABLE */
USART_ClockInitStruct->LastBitClockPulse = LL_USART_LASTCLKPULSE_NO_OUTPUT; /* Not relevant when ClockOutput = LL_USART_CLOCK_DISABLE */
}
/**
* @}
*/
/**
* @}
*/
/**
* @}
*/
#endif /* USART1 || USART2 || USART3 || UART4 || UART5 */
/**
* @}
*/
#endif /* USE_FULL_LL_DRIVER */

View File

@ -125,7 +125,7 @@
<SetRegEntry> <SetRegEntry>
<Number>0</Number> <Number>0</Number>
<Key>CMSIS_AGDI</Key> <Key>CMSIS_AGDI</Key>
<Name>-X"Any" -UAny -O206 -S0 -C0 -P00000000 -N00("ARM CoreSight SW-DP") -D00(1BA01477) -L00(0) -TO65554 -TC10000000 -TT10000000 -TP20 -TDS8007 -TDT0 -TDC1F -TIEFFFFFFFF -TIP8 -FO15 -FD20000000 -FC1000 -FN1 -FF0STM32F10x_128.FLM -FS08000000 -FL020000 -FP0($$Device:STM32F103C8$Flash\STM32F10x_128.FLM)</Name> <Name>UL2CM3(-S0 -C0 -P0 ) -FN1 -FC1000 -FD20000000 -FF0STM32F10x_128 -FL020000 -FS08000000 -FP0($$Device:STM32F103C8$Flash\STM32F10x_128.FLM)</Name>
</SetRegEntry> </SetRegEntry>
<SetRegEntry> <SetRegEntry>
<Number>0</Number> <Number>0</Number>
@ -148,7 +148,56 @@
<Name></Name> <Name></Name>
</SetRegEntry> </SetRegEntry>
</TargetDriverDllRegistry> </TargetDriverDllRegistry>
<Breakpoint/> <Breakpoint>
<Bp>
<Number>0</Number>
<Type>0</Type>
<LineNumber>241</LineNumber>
<EnabledFlag>1</EnabledFlag>
<Address>134220930</Address>
<ByteObject>0</ByteObject>
<HtxType>0</HtxType>
<ManyObjects>0</ManyObjects>
<SizeOfObject>0</SizeOfObject>
<BreakByAccess>0</BreakByAccess>
<BreakIfRCount>1</BreakIfRCount>
<Filename>../Core/Src/stm32f1xx_it.c</Filename>
<ExecCommand></ExecCommand>
<Expression>\\motor\../Core/Src/stm32f1xx_it.c\241</Expression>
</Bp>
<Bp>
<Number>1</Number>
<Type>0</Type>
<LineNumber>47</LineNumber>
<EnabledFlag>1</EnabledFlag>
<Address>0</Address>
<ByteObject>0</ByteObject>
<HtxType>0</HtxType>
<ManyObjects>0</ManyObjects>
<SizeOfObject>0</SizeOfObject>
<BreakByAccess>0</BreakByAccess>
<BreakIfRCount>0</BreakIfRCount>
<Filename>startup_stm32f103xb.s</Filename>
<ExecCommand></ExecCommand>
<Expression></Expression>
</Bp>
<Bp>
<Number>2</Number>
<Type>0</Type>
<LineNumber>255</LineNumber>
<EnabledFlag>1</EnabledFlag>
<Address>0</Address>
<ByteObject>0</ByteObject>
<HtxType>0</HtxType>
<ManyObjects>0</ManyObjects>
<SizeOfObject>0</SizeOfObject>
<BreakByAccess>0</BreakByAccess>
<BreakIfRCount>0</BreakIfRCount>
<Filename>startup_stm32f103xb.s</Filename>
<ExecCommand></ExecCommand>
<Expression></Expression>
</Bp>
</Breakpoint>
<Tracepoint> <Tracepoint>
<THDelay>0</THDelay> <THDelay>0</THDelay>
</Tracepoint> </Tracepoint>
@ -191,6 +240,12 @@
<pszMrulep></pszMrulep> <pszMrulep></pszMrulep>
<pSingCmdsp></pSingCmdsp> <pSingCmdsp></pSingCmdsp>
<pMultCmdsp></pMultCmdsp> <pMultCmdsp></pMultCmdsp>
<SystemViewers>
<Entry>
<Name>System Viewer\TIM4</Name>
<WinId>35905</WinId>
</Entry>
</SystemViewers>
</TargetOption> </TargetOption>
</Target> </Target>
@ -251,8 +306,8 @@
<tvExp>0</tvExp> <tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg> <tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2> <bDave2>0</bDave2>
<PathWithFileName>../Core/Src/dma.c</PathWithFileName> <PathWithFileName>../Core/Src/tim.c</PathWithFileName>
<FilenameWithoutPath>dma.c</FilenameWithoutPath> <FilenameWithoutPath>tim.c</FilenameWithoutPath>
<RteFlg>0</RteFlg> <RteFlg>0</RteFlg>
<bShared>0</bShared> <bShared>0</bShared>
</File> </File>
@ -263,18 +318,6 @@
<tvExp>0</tvExp> <tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg> <tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2> <bDave2>0</bDave2>
<PathWithFileName>../Core/Src/usart.c</PathWithFileName>
<FilenameWithoutPath>usart.c</FilenameWithoutPath>
<RteFlg>0</RteFlg>
<bShared>0</bShared>
</File>
<File>
<GroupNumber>2</GroupNumber>
<FileNumber>6</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2>
<PathWithFileName>../Core/Src/stm32f1xx_it.c</PathWithFileName> <PathWithFileName>../Core/Src/stm32f1xx_it.c</PathWithFileName>
<FilenameWithoutPath>stm32f1xx_it.c</FilenameWithoutPath> <FilenameWithoutPath>stm32f1xx_it.c</FilenameWithoutPath>
<RteFlg>0</RteFlg> <RteFlg>0</RteFlg>
@ -290,7 +333,7 @@
<RteFlg>0</RteFlg> <RteFlg>0</RteFlg>
<File> <File>
<GroupNumber>3</GroupNumber> <GroupNumber>3</GroupNumber>
<FileNumber>7</FileNumber> <FileNumber>6</FileNumber>
<FileType>1</FileType> <FileType>1</FileType>
<tvExp>0</tvExp> <tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg> <tvExpOptDlg>0</tvExpOptDlg>
@ -310,7 +353,7 @@
<RteFlg>0</RteFlg> <RteFlg>0</RteFlg>
<File> <File>
<GroupNumber>4</GroupNumber> <GroupNumber>4</GroupNumber>
<FileNumber>8</FileNumber> <FileNumber>7</FileNumber>
<FileType>1</FileType> <FileType>1</FileType>
<tvExp>0</tvExp> <tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg> <tvExpOptDlg>0</tvExpOptDlg>
@ -330,7 +373,7 @@
<RteFlg>0</RteFlg> <RteFlg>0</RteFlg>
<File> <File>
<GroupNumber>5</GroupNumber> <GroupNumber>5</GroupNumber>
<FileNumber>9</FileNumber> <FileNumber>8</FileNumber>
<FileType>1</FileType> <FileType>1</FileType>
<tvExp>0</tvExp> <tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg> <tvExpOptDlg>0</tvExpOptDlg>
@ -342,7 +385,7 @@
</File> </File>
<File> <File>
<GroupNumber>5</GroupNumber> <GroupNumber>5</GroupNumber>
<FileNumber>10</FileNumber> <FileNumber>9</FileNumber>
<FileType>1</FileType> <FileType>1</FileType>
<tvExp>0</tvExp> <tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg> <tvExpOptDlg>0</tvExpOptDlg>
@ -354,7 +397,7 @@
</File> </File>
<File> <File>
<GroupNumber>5</GroupNumber> <GroupNumber>5</GroupNumber>
<FileNumber>11</FileNumber> <FileNumber>10</FileNumber>
<FileType>1</FileType> <FileType>1</FileType>
<tvExp>0</tvExp> <tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg> <tvExpOptDlg>0</tvExpOptDlg>
@ -366,7 +409,7 @@
</File> </File>
<File> <File>
<GroupNumber>5</GroupNumber> <GroupNumber>5</GroupNumber>
<FileNumber>12</FileNumber> <FileNumber>11</FileNumber>
<FileType>1</FileType> <FileType>1</FileType>
<tvExp>0</tvExp> <tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg> <tvExpOptDlg>0</tvExpOptDlg>
@ -378,7 +421,7 @@
</File> </File>
<File> <File>
<GroupNumber>5</GroupNumber> <GroupNumber>5</GroupNumber>
<FileNumber>13</FileNumber> <FileNumber>12</FileNumber>
<FileType>1</FileType> <FileType>1</FileType>
<tvExp>0</tvExp> <tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg> <tvExpOptDlg>0</tvExpOptDlg>
@ -390,7 +433,7 @@
</File> </File>
<File> <File>
<GroupNumber>5</GroupNumber> <GroupNumber>5</GroupNumber>
<FileNumber>14</FileNumber> <FileNumber>13</FileNumber>
<FileType>1</FileType> <FileType>1</FileType>
<tvExp>0</tvExp> <tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg> <tvExpOptDlg>0</tvExpOptDlg>
@ -402,7 +445,7 @@
</File> </File>
<File> <File>
<GroupNumber>5</GroupNumber> <GroupNumber>5</GroupNumber>
<FileNumber>15</FileNumber> <FileNumber>14</FileNumber>
<FileType>1</FileType> <FileType>1</FileType>
<tvExp>0</tvExp> <tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg> <tvExpOptDlg>0</tvExpOptDlg>
@ -414,7 +457,7 @@
</File> </File>
<File> <File>
<GroupNumber>5</GroupNumber> <GroupNumber>5</GroupNumber>
<FileNumber>16</FileNumber> <FileNumber>15</FileNumber>
<FileType>1</FileType> <FileType>1</FileType>
<tvExp>0</tvExp> <tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg> <tvExpOptDlg>0</tvExpOptDlg>
@ -434,7 +477,7 @@
<RteFlg>0</RteFlg> <RteFlg>0</RteFlg>
<File> <File>
<GroupNumber>6</GroupNumber> <GroupNumber>6</GroupNumber>
<FileNumber>17</FileNumber> <FileNumber>16</FileNumber>
<FileType>1</FileType> <FileType>1</FileType>
<tvExp>0</tvExp> <tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg> <tvExpOptDlg>0</tvExpOptDlg>
@ -446,7 +489,7 @@
</File> </File>
<File> <File>
<GroupNumber>6</GroupNumber> <GroupNumber>6</GroupNumber>
<FileNumber>18</FileNumber> <FileNumber>17</FileNumber>
<FileType>1</FileType> <FileType>1</FileType>
<tvExp>0</tvExp> <tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg> <tvExpOptDlg>0</tvExpOptDlg>
@ -458,7 +501,7 @@
</File> </File>
<File> <File>
<GroupNumber>6</GroupNumber> <GroupNumber>6</GroupNumber>
<FileNumber>19</FileNumber> <FileNumber>18</FileNumber>
<FileType>1</FileType> <FileType>1</FileType>
<tvExp>0</tvExp> <tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg> <tvExpOptDlg>0</tvExpOptDlg>
@ -470,7 +513,7 @@
</File> </File>
<File> <File>
<GroupNumber>6</GroupNumber> <GroupNumber>6</GroupNumber>
<FileNumber>20</FileNumber> <FileNumber>19</FileNumber>
<FileType>1</FileType> <FileType>1</FileType>
<tvExp>0</tvExp> <tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg> <tvExpOptDlg>0</tvExpOptDlg>
@ -482,7 +525,7 @@
</File> </File>
<File> <File>
<GroupNumber>6</GroupNumber> <GroupNumber>6</GroupNumber>
<FileNumber>21</FileNumber> <FileNumber>20</FileNumber>
<FileType>1</FileType> <FileType>1</FileType>
<tvExp>0</tvExp> <tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg> <tvExpOptDlg>0</tvExpOptDlg>
@ -494,7 +537,7 @@
</File> </File>
<File> <File>
<GroupNumber>6</GroupNumber> <GroupNumber>6</GroupNumber>
<FileNumber>22</FileNumber> <FileNumber>21</FileNumber>
<FileType>1</FileType> <FileType>1</FileType>
<tvExp>0</tvExp> <tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg> <tvExpOptDlg>0</tvExpOptDlg>
@ -506,7 +549,7 @@
</File> </File>
<File> <File>
<GroupNumber>6</GroupNumber> <GroupNumber>6</GroupNumber>
<FileNumber>23</FileNumber> <FileNumber>22</FileNumber>
<FileType>1</FileType> <FileType>1</FileType>
<tvExp>0</tvExp> <tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg> <tvExpOptDlg>0</tvExpOptDlg>
@ -518,7 +561,7 @@
</File> </File>
<File> <File>
<GroupNumber>6</GroupNumber> <GroupNumber>6</GroupNumber>
<FileNumber>24</FileNumber> <FileNumber>23</FileNumber>
<FileType>1</FileType> <FileType>1</FileType>
<tvExp>0</tvExp> <tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg> <tvExpOptDlg>0</tvExpOptDlg>
@ -530,7 +573,7 @@
</File> </File>
<File> <File>
<GroupNumber>6</GroupNumber> <GroupNumber>6</GroupNumber>
<FileNumber>25</FileNumber> <FileNumber>24</FileNumber>
<FileType>1</FileType> <FileType>1</FileType>
<tvExp>0</tvExp> <tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg> <tvExpOptDlg>0</tvExpOptDlg>
@ -542,7 +585,7 @@
</File> </File>
<File> <File>
<GroupNumber>6</GroupNumber> <GroupNumber>6</GroupNumber>
<FileNumber>26</FileNumber> <FileNumber>25</FileNumber>
<FileType>1</FileType> <FileType>1</FileType>
<tvExp>0</tvExp> <tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg> <tvExpOptDlg>0</tvExpOptDlg>
@ -554,7 +597,7 @@
</File> </File>
<File> <File>
<GroupNumber>6</GroupNumber> <GroupNumber>6</GroupNumber>
<FileNumber>27</FileNumber> <FileNumber>26</FileNumber>
<FileType>1</FileType> <FileType>1</FileType>
<tvExp>0</tvExp> <tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg> <tvExpOptDlg>0</tvExpOptDlg>
@ -566,7 +609,7 @@
</File> </File>
<File> <File>
<GroupNumber>6</GroupNumber> <GroupNumber>6</GroupNumber>
<FileNumber>28</FileNumber> <FileNumber>27</FileNumber>
<FileType>1</FileType> <FileType>1</FileType>
<tvExp>0</tvExp> <tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg> <tvExpOptDlg>0</tvExpOptDlg>
@ -578,7 +621,7 @@
</File> </File>
<File> <File>
<GroupNumber>6</GroupNumber> <GroupNumber>6</GroupNumber>
<FileNumber>29</FileNumber> <FileNumber>28</FileNumber>
<FileType>1</FileType> <FileType>1</FileType>
<tvExp>0</tvExp> <tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg> <tvExpOptDlg>0</tvExpOptDlg>
@ -590,7 +633,7 @@
</File> </File>
<File> <File>
<GroupNumber>6</GroupNumber> <GroupNumber>6</GroupNumber>
<FileNumber>30</FileNumber> <FileNumber>29</FileNumber>
<FileType>1</FileType> <FileType>1</FileType>
<tvExp>0</tvExp> <tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg> <tvExpOptDlg>0</tvExpOptDlg>
@ -602,7 +645,7 @@
</File> </File>
<File> <File>
<GroupNumber>6</GroupNumber> <GroupNumber>6</GroupNumber>
<FileNumber>31</FileNumber> <FileNumber>30</FileNumber>
<FileType>1</FileType> <FileType>1</FileType>
<tvExp>0</tvExp> <tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg> <tvExpOptDlg>0</tvExpOptDlg>
@ -622,7 +665,7 @@
<RteFlg>0</RteFlg> <RteFlg>0</RteFlg>
<File> <File>
<GroupNumber>7</GroupNumber> <GroupNumber>7</GroupNumber>
<FileNumber>32</FileNumber> <FileNumber>31</FileNumber>
<FileType>1</FileType> <FileType>1</FileType>
<tvExp>0</tvExp> <tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg> <tvExpOptDlg>0</tvExpOptDlg>
@ -634,19 +677,7 @@
</File> </File>
<File> <File>
<GroupNumber>7</GroupNumber> <GroupNumber>7</GroupNumber>
<FileNumber>33</FileNumber> <FileNumber>32</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2>
<PathWithFileName>../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_ll_dma.c</PathWithFileName>
<FilenameWithoutPath>stm32f1xx_ll_dma.c</FilenameWithoutPath>
<RteFlg>0</RteFlg>
<bShared>0</bShared>
</File>
<File>
<GroupNumber>7</GroupNumber>
<FileNumber>34</FileNumber>
<FileType>1</FileType> <FileType>1</FileType>
<tvExp>0</tvExp> <tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg> <tvExpOptDlg>0</tvExpOptDlg>
@ -658,7 +689,7 @@
</File> </File>
<File> <File>
<GroupNumber>7</GroupNumber> <GroupNumber>7</GroupNumber>
<FileNumber>35</FileNumber> <FileNumber>33</FileNumber>
<FileType>1</FileType> <FileType>1</FileType>
<tvExp>0</tvExp> <tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg> <tvExpOptDlg>0</tvExpOptDlg>
@ -670,19 +701,31 @@
</File> </File>
<File> <File>
<GroupNumber>7</GroupNumber> <GroupNumber>7</GroupNumber>
<FileNumber>36</FileNumber> <FileNumber>34</FileNumber>
<FileType>1</FileType> <FileType>1</FileType>
<tvExp>0</tvExp> <tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg> <tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2> <bDave2>0</bDave2>
<PathWithFileName>../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_ll_usart.c</PathWithFileName> <PathWithFileName>../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_ll_tim.c</PathWithFileName>
<FilenameWithoutPath>stm32f1xx_ll_usart.c</FilenameWithoutPath> <FilenameWithoutPath>stm32f1xx_ll_tim.c</FilenameWithoutPath>
<RteFlg>0</RteFlg> <RteFlg>0</RteFlg>
<bShared>0</bShared> <bShared>0</bShared>
</File> </File>
<File> <File>
<GroupNumber>7</GroupNumber> <GroupNumber>7</GroupNumber>
<FileNumber>37</FileNumber> <FileNumber>35</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2>
<PathWithFileName>../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_ll_dma.c</PathWithFileName>
<FilenameWithoutPath>stm32f1xx_ll_dma.c</FilenameWithoutPath>
<RteFlg>0</RteFlg>
<bShared>0</bShared>
</File>
<File>
<GroupNumber>7</GroupNumber>
<FileNumber>36</FileNumber>
<FileType>1</FileType> <FileType>1</FileType>
<tvExp>0</tvExp> <tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg> <tvExpOptDlg>0</tvExpOptDlg>
@ -694,7 +737,7 @@
</File> </File>
<File> <File>
<GroupNumber>7</GroupNumber> <GroupNumber>7</GroupNumber>
<FileNumber>38</FileNumber> <FileNumber>37</FileNumber>
<FileType>1</FileType> <FileType>1</FileType>
<tvExp>0</tvExp> <tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg> <tvExpOptDlg>0</tvExpOptDlg>
@ -714,7 +757,7 @@
<RteFlg>0</RteFlg> <RteFlg>0</RteFlg>
<File> <File>
<GroupNumber>8</GroupNumber> <GroupNumber>8</GroupNumber>
<FileNumber>39</FileNumber> <FileNumber>38</FileNumber>
<FileType>1</FileType> <FileType>1</FileType>
<tvExp>0</tvExp> <tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg> <tvExpOptDlg>0</tvExpOptDlg>
@ -726,7 +769,7 @@
</File> </File>
<File> <File>
<GroupNumber>8</GroupNumber> <GroupNumber>8</GroupNumber>
<FileNumber>40</FileNumber> <FileNumber>39</FileNumber>
<FileType>1</FileType> <FileType>1</FileType>
<tvExp>0</tvExp> <tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg> <tvExpOptDlg>0</tvExpOptDlg>

View File

@ -18,12 +18,12 @@
<Vendor>STMicroelectronics</Vendor> <Vendor>STMicroelectronics</Vendor>
<PackID>Keil.STM32F1xx_DFP.1.1.0</PackID> <PackID>Keil.STM32F1xx_DFP.1.1.0</PackID>
<PackURL>http://www.keil.com/pack/</PackURL> <PackURL>http://www.keil.com/pack/</PackURL>
<Cpu>IRAM(0x20000000,0x5000) IROM(0x08000000,0x10000) CPUTYPE("Cortex-M3") CLOCK(12000000) ELITTLE</Cpu> <Cpu>IRAM(0x20000000,0x2800) IROM(0x08000000,0x8000) CPUTYPE("Cortex-M3") CLOCK(12000000) ELITTLE</Cpu>
<FlashUtilSpec></FlashUtilSpec> <FlashUtilSpec></FlashUtilSpec>
<StartupFile></StartupFile> <StartupFile></StartupFile>
<FlashDriverDll>UL2CM3(-S0 -C0 -P0 -FD20000000 -FC1000 -FN1 -FF0STM32F10x_128 -FS08000000 -FL020000 -FP0($$Device:STM32F103C8$Flash\STM32F10x_128.FLM))</FlashDriverDll> <FlashDriverDll>UL2CM3(-S0 -C0 -P0 -FD20000000 -FC1000 -FN1 -FF0STM32F10x_128 -FS08000000 -FL020000 -FP0($$Device:STM32F103T6$Flash\STM32F10x_128.FLM))</FlashDriverDll>
<DeviceId>0</DeviceId> <DeviceId>0</DeviceId>
<RegisterFile>$$Device:STM32F103C8$Device\Include\stm32f10x.h</RegisterFile> <RegisterFile>$$Device:STM32F103T6$Device\Include\stm32f10x.h</RegisterFile>
<MemoryEnv></MemoryEnv> <MemoryEnv></MemoryEnv>
<Cmp></Cmp> <Cmp></Cmp>
<Asm></Asm> <Asm></Asm>
@ -33,7 +33,7 @@
<SLE66CMisc></SLE66CMisc> <SLE66CMisc></SLE66CMisc>
<SLE66AMisc></SLE66AMisc> <SLE66AMisc></SLE66AMisc>
<SLE66LinkerMisc></SLE66LinkerMisc> <SLE66LinkerMisc></SLE66LinkerMisc>
<SFDFile>$$Device:STM32F103C8$SVD\STM32F103xx.svd</SFDFile> <SFDFile>$$Device:STM32F103T6$SVD\STM32F103xx.svd</SFDFile>
<bCustSvd>0</bCustSvd> <bCustSvd>0</bCustSvd>
<UseEnv>0</UseEnv> <UseEnv>0</UseEnv>
<BinPath></BinPath> <BinPath></BinPath>
@ -246,12 +246,12 @@
<IRAM> <IRAM>
<Type>0</Type> <Type>0</Type>
<StartAddress>0x20000000</StartAddress> <StartAddress>0x20000000</StartAddress>
<Size>0x5000</Size> <Size>0x2800</Size>
</IRAM> </IRAM>
<IROM> <IROM>
<Type>1</Type> <Type>1</Type>
<StartAddress>0x8000000</StartAddress> <StartAddress>0x8000000</StartAddress>
<Size>0x10000</Size> <Size>0x8000</Size>
</IROM> </IROM>
<XRAM> <XRAM>
<Type>0</Type> <Type>0</Type>
@ -276,7 +276,7 @@
<OCR_RVCT4> <OCR_RVCT4>
<Type>1</Type> <Type>1</Type>
<StartAddress>0x8000000</StartAddress> <StartAddress>0x8000000</StartAddress>
<Size>0x10000</Size> <Size>0x8000</Size>
</OCR_RVCT4> </OCR_RVCT4>
<OCR_RVCT5> <OCR_RVCT5>
<Type>1</Type> <Type>1</Type>
@ -301,7 +301,7 @@
<OCR_RVCT9> <OCR_RVCT9>
<Type>0</Type> <Type>0</Type>
<StartAddress>0x20000000</StartAddress> <StartAddress>0x20000000</StartAddress>
<Size>0x5000</Size> <Size>0x2800</Size>
</OCR_RVCT9> </OCR_RVCT9>
<OCR_RVCT10> <OCR_RVCT10>
<Type>0</Type> <Type>0</Type>
@ -404,65 +404,9 @@
<FilePath>../Core/Src/gpio.c</FilePath> <FilePath>../Core/Src/gpio.c</FilePath>
</File> </File>
<File> <File>
<FileName>dma.c</FileName> <FileName>tim.c</FileName>
<FileType>1</FileType> <FileType>1</FileType>
<FilePath>../Core/Src/dma.c</FilePath> <FilePath>../Core/Src/tim.c</FilePath>
<FileOption>
<CommonProperty>
<UseCPPCompiler>2</UseCPPCompiler>
<RVCTCodeConst>0</RVCTCodeConst>
<RVCTZI>0</RVCTZI>
<RVCTOtherData>0</RVCTOtherData>
<ModuleSelection>0</ModuleSelection>
<IncludeInBuild>1</IncludeInBuild>
<AlwaysBuild>2</AlwaysBuild>
<GenerateAssemblyFile>2</GenerateAssemblyFile>
<AssembleAssemblyFile>2</AssembleAssemblyFile>
<PublicsOnly>2</PublicsOnly>
<StopOnExitCode>11</StopOnExitCode>
<CustomArgument></CustomArgument>
<IncludeLibraryModules></IncludeLibraryModules>
<ComprImg>1</ComprImg>
</CommonProperty>
<FileArmAds>
<Cads>
<interw>2</interw>
<Optim>0</Optim>
<oTime>2</oTime>
<SplitLS>2</SplitLS>
<OneElfS>2</OneElfS>
<Strict>2</Strict>
<EnumInt>2</EnumInt>
<PlainCh>2</PlainCh>
<Ropi>2</Ropi>
<Rwpi>2</Rwpi>
<wLevel>0</wLevel>
<uThumb>2</uThumb>
<uSurpInc>2</uSurpInc>
<uC99>2</uC99>
<uGnu>2</uGnu>
<useXO>2</useXO>
<v6Lang>0</v6Lang>
<v6LangP>0</v6LangP>
<vShortEn>2</vShortEn>
<vShortWch>2</vShortWch>
<v6Lto>2</v6Lto>
<v6WtE>2</v6WtE>
<v6Rtti>2</v6Rtti>
<VariousControls>
<MiscControls></MiscControls>
<Define></Define>
<Undefine></Undefine>
<IncludePath></IncludePath>
</VariousControls>
</Cads>
</FileArmAds>
</FileOption>
</File>
<File>
<FileName>usart.c</FileName>
<FileType>1</FileType>
<FilePath>../Core/Src/usart.c</FilePath>
<FileOption> <FileOption>
<CommonProperty> <CommonProperty>
<UseCPPCompiler>2</UseCPPCompiler> <UseCPPCompiler>2</UseCPPCompiler>
@ -579,6 +523,57 @@
<FileName>uarts.c</FileName> <FileName>uarts.c</FileName>
<FileType>1</FileType> <FileType>1</FileType>
<FilePath>..\User\system\bsp\uarts.c</FilePath> <FilePath>..\User\system\bsp\uarts.c</FilePath>
<FileOption>
<CommonProperty>
<UseCPPCompiler>2</UseCPPCompiler>
<RVCTCodeConst>0</RVCTCodeConst>
<RVCTZI>0</RVCTZI>
<RVCTOtherData>0</RVCTOtherData>
<ModuleSelection>0</ModuleSelection>
<IncludeInBuild>0</IncludeInBuild>
<AlwaysBuild>0</AlwaysBuild>
<GenerateAssemblyFile>2</GenerateAssemblyFile>
<AssembleAssemblyFile>2</AssembleAssemblyFile>
<PublicsOnly>2</PublicsOnly>
<StopOnExitCode>11</StopOnExitCode>
<CustomArgument></CustomArgument>
<IncludeLibraryModules></IncludeLibraryModules>
<ComprImg>1</ComprImg>
</CommonProperty>
<FileArmAds>
<Cads>
<interw>2</interw>
<Optim>0</Optim>
<oTime>2</oTime>
<SplitLS>2</SplitLS>
<OneElfS>2</OneElfS>
<Strict>2</Strict>
<EnumInt>2</EnumInt>
<PlainCh>2</PlainCh>
<Ropi>2</Ropi>
<Rwpi>2</Rwpi>
<wLevel>0</wLevel>
<uThumb>2</uThumb>
<uSurpInc>2</uSurpInc>
<uC99>2</uC99>
<uGnu>2</uGnu>
<useXO>2</useXO>
<v6Lang>0</v6Lang>
<v6LangP>0</v6LangP>
<vShortEn>2</vShortEn>
<vShortWch>2</vShortWch>
<v6Lto>2</v6Lto>
<v6WtE>2</v6WtE>
<v6Rtti>2</v6Rtti>
<VariousControls>
<MiscControls></MiscControls>
<Define></Define>
<Undefine></Undefine>
<IncludePath></IncludePath>
</VariousControls>
</Cads>
</FileArmAds>
</FileOption>
</File> </File>
<File> <File>
<FileName>i2cs.c</FileName> <FileName>i2cs.c</FileName>
@ -795,62 +790,6 @@
</FileArmAds> </FileArmAds>
</FileOption> </FileOption>
</File> </File>
<File>
<FileName>stm32f1xx_ll_dma.c</FileName>
<FileType>1</FileType>
<FilePath>../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_ll_dma.c</FilePath>
<FileOption>
<CommonProperty>
<UseCPPCompiler>2</UseCPPCompiler>
<RVCTCodeConst>0</RVCTCodeConst>
<RVCTZI>0</RVCTZI>
<RVCTOtherData>0</RVCTOtherData>
<ModuleSelection>0</ModuleSelection>
<IncludeInBuild>1</IncludeInBuild>
<AlwaysBuild>2</AlwaysBuild>
<GenerateAssemblyFile>2</GenerateAssemblyFile>
<AssembleAssemblyFile>2</AssembleAssemblyFile>
<PublicsOnly>2</PublicsOnly>
<StopOnExitCode>11</StopOnExitCode>
<CustomArgument></CustomArgument>
<IncludeLibraryModules></IncludeLibraryModules>
<ComprImg>1</ComprImg>
</CommonProperty>
<FileArmAds>
<Cads>
<interw>2</interw>
<Optim>0</Optim>
<oTime>2</oTime>
<SplitLS>2</SplitLS>
<OneElfS>2</OneElfS>
<Strict>2</Strict>
<EnumInt>2</EnumInt>
<PlainCh>2</PlainCh>
<Ropi>2</Ropi>
<Rwpi>2</Rwpi>
<wLevel>0</wLevel>
<uThumb>2</uThumb>
<uSurpInc>2</uSurpInc>
<uC99>2</uC99>
<uGnu>2</uGnu>
<useXO>2</useXO>
<v6Lang>0</v6Lang>
<v6LangP>0</v6LangP>
<vShortEn>2</vShortEn>
<vShortWch>2</vShortWch>
<v6Lto>2</v6Lto>
<v6WtE>2</v6WtE>
<v6Rtti>2</v6Rtti>
<VariousControls>
<MiscControls></MiscControls>
<Define></Define>
<Undefine></Undefine>
<IncludePath></IncludePath>
</VariousControls>
</Cads>
</FileArmAds>
</FileOption>
</File>
<File> <File>
<FileName>stm32f1xx_ll_pwr.c</FileName> <FileName>stm32f1xx_ll_pwr.c</FileName>
<FileType>1</FileType> <FileType>1</FileType>
@ -964,9 +903,65 @@
</FileOption> </FileOption>
</File> </File>
<File> <File>
<FileName>stm32f1xx_ll_usart.c</FileName> <FileName>stm32f1xx_ll_tim.c</FileName>
<FileType>1</FileType> <FileType>1</FileType>
<FilePath>../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_ll_usart.c</FilePath> <FilePath>../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_ll_tim.c</FilePath>
<FileOption>
<CommonProperty>
<UseCPPCompiler>2</UseCPPCompiler>
<RVCTCodeConst>0</RVCTCodeConst>
<RVCTZI>0</RVCTZI>
<RVCTOtherData>0</RVCTOtherData>
<ModuleSelection>0</ModuleSelection>
<IncludeInBuild>1</IncludeInBuild>
<AlwaysBuild>2</AlwaysBuild>
<GenerateAssemblyFile>2</GenerateAssemblyFile>
<AssembleAssemblyFile>2</AssembleAssemblyFile>
<PublicsOnly>2</PublicsOnly>
<StopOnExitCode>11</StopOnExitCode>
<CustomArgument></CustomArgument>
<IncludeLibraryModules></IncludeLibraryModules>
<ComprImg>1</ComprImg>
</CommonProperty>
<FileArmAds>
<Cads>
<interw>2</interw>
<Optim>0</Optim>
<oTime>2</oTime>
<SplitLS>2</SplitLS>
<OneElfS>2</OneElfS>
<Strict>2</Strict>
<EnumInt>2</EnumInt>
<PlainCh>2</PlainCh>
<Ropi>2</Ropi>
<Rwpi>2</Rwpi>
<wLevel>0</wLevel>
<uThumb>2</uThumb>
<uSurpInc>2</uSurpInc>
<uC99>2</uC99>
<uGnu>2</uGnu>
<useXO>2</useXO>
<v6Lang>0</v6Lang>
<v6LangP>0</v6LangP>
<vShortEn>2</vShortEn>
<vShortWch>2</vShortWch>
<v6Lto>2</v6Lto>
<v6WtE>2</v6WtE>
<v6Rtti>2</v6Rtti>
<VariousControls>
<MiscControls></MiscControls>
<Define></Define>
<Undefine></Undefine>
<IncludePath></IncludePath>
</VariousControls>
</Cads>
</FileArmAds>
</FileOption>
</File>
<File>
<FileName>stm32f1xx_ll_dma.c</FileName>
<FileType>1</FileType>
<FilePath>../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_ll_dma.c</FilePath>
<FileOption> <FileOption>
<CommonProperty> <CommonProperty>
<UseCPPCompiler>2</UseCPPCompiler> <UseCPPCompiler>2</UseCPPCompiler>

View File

@ -1,361 +1,300 @@
:020000040800F2 :020000040800F2
:100000006018002005010008690800089701000831 :100000008018002005010008A905000893010008D8
:100010006508000871010008A50A0008000000003A :10001000A505000871010008A907000800000000FC
:10002000000000000000000000000000AD09000812 :10002000000000000000000000000000AF05000814
:100030009501000800000000AF080008AF090008A3 :100030009101000800000000AD050008B1050008AE
:100040001F010008AD0800081F0100081F0100087B :100040001F0100081F0100081F0100081F01000810
:100050001F0100081F0100081F0100081F01000800 :100050001F0100081F0100081F0100081F01000800
:100060001F0100081F0100081F0100081F010008F0 :100060001F0100081F0100081F0100081F010008F0
:100070001F0100081F0100089101000893010008FA :100070001F0100081F0100081F0100081F010008E0
:100080001F0100081F0100081F0100081F010008D0 :100080001F0100081F0100081F0100081F010008D0
:100090001F0100081F0100081F0100081F010008C0 :100090001F0100081F0100081F0100081F010008C0
:1000A0001F0100081F0100081F0100081F010008B0 :1000A0001F0100081F0100081F0100081F010008B0
:1000B0001F0100081F0100081F0100081F010008A0 :1000B000A90600081F0100081F0100081F01000811
:1000C0001F0100081F0100081F0100081F01000890 :1000C0001F0100081F0100081F0100081F01000890
:1000D0001F010008A30A00081F0100081F010008F3 :1000D0001F0100081F0100081F0100081F01000880
:1000E0001F0100081F0100081F010008DFF810D0E1 :1000E0001F0100081F0100081F010008DFF810D0E1
:1000F00000F02CF8004800475D110008AFF30080C5 :1000F00000F02CF800480047350E0008AFF30080F0
:10010000601800200648804706480047FEE7FEE7E3 :10010000801800200648804706480047FEE7FEE7C3
:10011000FEE7FEE7FEE7FEE7FEE7FEE7FEE7FEE7B7 :10011000FEE7FEE7FEE7FEE7FEE7FEE7FEE7FEE7B7
:10012000A10A0008ED000008D2B201E000F8012B9E :10012000A5060008ED000008D2B201E000F8012B9E
:10013000491EFBD270470022F6E710B513460A4667 :10013000491EFBD270470022F6E710B513460A4667
:1001400004461946FFF7F0FF204610BD064C074D48 :1001400004461946FFF7F0FF204610BD064C074D48
:1001500006E0E06840F0010394E807009847103497 :1001500006E0E06840F0010394E807009847103497
:10016000AC42F6D3FFF7C6FFE815000808160008F2 :10016000AC42F6D3FFF7C6FFF811000818120008DA
:1001700000BFFEE770B504460D4600BF2CB901F084 :1001700000BFFEE770B504460D4600BF2CB901F084
:10018000E9F901E000BF00BFFCE700BF012070BD3E :1001800001F801E000BF00BFFCE700BF012070BD27
:1001900070477047704700BFFEE7000008B505498B :10019000704700BFFEE7000008B5054989690143C3
:1001A00089690143034A91611146896901400091BF :1001A000034A9161114689690140009100BF08BD71
:1001B00000BF08BD0010024008B505498969014328 :1001B000001002402DE9F04102460B461868C0F3DA
:1001C000034A9161114689690140009100BF08BD51 :1001C0000F2595FAA5F0B0FA80F480E00120A04058
:1001D0000010024030B54B1E054CE35CC35823F4BD :1001D000284000287AD0082C04D240F2011000FAFE
:1001E000405313434C1E024D2C5D035130BD0000A3 :1001E00004F106E0A4F108004FF00116864046F045
:1001F0009815000830B54B1E054CE35CC35844F21B :1001F0008061586808280ED11869D66826EA112649
:100200001004A34313434C1E014D2C5D035130BD1C :100200000F0A97FAA7F7B7FA87F700FA07F73E43FE
:100210009815000830B54B1E054CE35CC35823F01D :10021000D66000BF00BF586802EB116691FAA1FCDE
:10022000800313434C1E024D2C5D035130BD000072 :10022000BCFA8CFC4FEA8C084FF00F0C0CFA08FC5F
:100230009815000830B54B1E054CE35CC35823F4F9 :10023000376827EA0C0791FAA1FCBCFA8CFC4FEA5C
:10024000406313434C1E024D2C5D035130BD000032 :100240008C0C00FA0CFC47EA0C07376000BF5868BA
:100250009815000830B54B1E054CE35CC35823F0DD :10025000012802D05868092838D1986802EB116645
:10026000200313434C1E024D2C5D035130BD000092 :1002600091FAA1FCBCFA8CFC4FEA8C084FF0030C0D
:100270009815000830B54B1E054CE35CC35823F0BD :100270000CFA08FC376827EA0C0791FAA1FCBCFAD3
:10028000400313434C1E024D2C5D035130BD000052 :100280008CFC4FEA8C0C00FA0CFC47EA0C07376038
:100290009815000830B54B1E054CE35CC35823F499 :1002900000BFD86802EB116691FAA1FCBCFA8CFC95
:1002A000407313434C1E024D2C5D035130BD0000C2 :1002A0004FEA8C084FF0040C0CFA08FC376827EA78
:1002B000981500082DE9F04102460B461868C0F376 :1002B0000C0791FAA1FCBCFA8CFC4FEA8C0C00FAFA
:1002C0000F2595FAA5F0B0FA80F480E00120A04057 :1002C0000CFC47EA0C07376000BF00BF641C25FA2E
:1002D000284000287AD0082C04D240F2011000FAFD :1002D00004F000287FF47AAFBDE8F081C1F30F226B
:1002E00004F106E0A4F108004FF00116864046F044 :1002E0004261704702480068401C0149086070473D
:1002F0008061586808280ED11869D66826EA112648 :1002F0000C0000204FF47A71B0FBF1F2521E4FF067
:100300000F0A97FAA7F7B7FA87F700FA07F73E43FD :10030000E0235A6100229A6105221A6100BF7047FA
:10031000D66000BF00BF586802EB116691FAA1FCDD :1003100001490860704700000000002010B5024647
:10032000BCFA8CFC4FEA8C084FF00F0C0CFA08FC5E :1003200013681C48824208D0B2F1804F05D01A48A9
:10033000376827EA0C0791FAA1FCBCFA8CFC4FEA5B :10033000824202D01948824204D123F070004C68F6
:100340008C0C00FA0CFC47EA0C07376000BF5868B9 :1003400040EA04031348824208D0B2F1804F05D03E
:10035000012802D05868092838D1986802EB116644 :100350001148824202D01148824204D123F44070F5
:1003600091FAA1FCBCFA8CFC4FEA8C084FF0030C0C :10036000CC6840EA040313608868D06200BF088844
:100370000CFA08FC376827EA0C0791FAA1FCBCFAD2 :10037000906200BF0748824203D10869106300BF42
:100380008CFC4FEA8C0C00FA0CFC47EA0C07376037 :1003800000BF00BF506940F00100506100BF002075
:1003900000BFD86802EB116691FAA1FCBCFA8CFC94 :1003900010BD0000002C0140000400400008004097
:1003A0004FEA8C084FF0040C0CFA08FC376827EA77 :1003A0000146086900F001007047000000B585B003
:1003B0000C0791FAA1FCBCFA8CFC4FEA8C0C00FAF9 :1003B00014216846FFF7BFFE1020FFF7EDFE202056
:1003C0000CFC47EA0C07376000BF00BF641C25FA2D :1003C000FFF7EAFE0420FFF7E7FE0820FFF7E4FE50
:1003D00004F000287FF47AAFBDE8F081C1F30F226A :1003D0001C491D48FFF782FF1C491D48FFF77EFF9F
:1003E000426170474FF47A71B0FBF1F2521E4FF048 :1003E0001848009001200190022002900020039004
:1003F000E0235A6100229A6105221A6100BF70470A :1003F00069461548FFF7DEFE164800900020019080
:1004000010B5044600F088FA2060206800F050FA29 :1004000069461148FFF7D6FE13480090002001907E
:100410006060606800F05CFAA060606800F06AFAF2 :1004100069461248FFF7CEFE114800900020019077
:10042000E06010BD01490860704700000000002036 :1004200069460B48FFF7C6FE08480090012001907E
:100430002DE9FF4104460D4601270026204600F025 :10043000022002900020039069460548FFF7BAFEAB
:1004400041F8002833D1E9686868084329690843FE :1004400005B000BD20002004001001403000300441
:10045000E16841F20C6291430843E060A8682169B9 :10045000000C0140C000C004FFFF9F0400080140E1
:1004600021F440510143216100BF6869616921F4B1 :10046000FFFFCF042DE9F04186B0142101A8FFF76A
:1004700040710143616100BF6846FFF7C1FF0E484C :1004700062FE01204849C9690143474AD1611146DA
:10048000844201D1039E08E00C48844201D1029EBF :10048000C9690140009100BF00BF1C21434B1B689C
:1004900003E00B48844200D1029E46B1286830B187 :10049000C3F302200F2400250346C3F1070CBCF16F
:1004A0000027314620462A6800F011F800BF384680 :1004A000040F02D94FF0040C01E0C3F1070C6746BA
:1004B00004B0BDE8F0810000003801400044004075 :1004B00003F1040CBCF1070F02D24FF0000C01E075
:1004C000004800400146C868C0F34030704770B52E :1004C000A3F1030C66464FF0010C0CFA07FCACF1EB
:1004D00001EBC10303EB01139400B3FBF4F301EB55 :1004D000010C0CEA040C0CFA06FC4FF0010808FAB7
:1004E000C10404EB01149500B4FBF5F46425B4FBDE :1004E00006F8A8F1010808EA05084CEA080200BF6E
:1004F000F5F404EBC40505EB0414A3EB84033224E8 :1004F000002904DB1007030E2948435407E01007C6
:1005000004EB03136424B3FBF4F303F0F00301EBF7 :10050000040E26480C3001F00F031B1FC45400BF1B
:10051000C10404EB01149500B4FBF5F46425B4FBAD :100510001C20002809DB00F01F0201219140420944
:10052000F5F403EB041401EBC10303EB0113950095 :10052000920002F1E022C2F8001100BF41F61F4024
:10053000B3FBF5F301EBC10505EB01159600B5FB27 :10053000ADF8040000200290632003900020049096
:10054000F6F56426B5FBF6F505EBC50606EB0515D5 :1005400001A94FF08040FFF7E9FE00BF4FF0804067
:10055000A3EB8503322505EB03136425B3FBF5F309 :10055000006820F080004FF08041086000BF00205C
:1005600003F00F0323449BB2836070BD38B50120B4 :10056000896844F20702914301434FF08042916051
:10057000144949690143134A5161114649690140CF :1005700000BF00BF1146496821F07001014351607E
:10058000009100BF00BF00F09DFA05460022114611 :1005800000BF00BF1046806820F0800011468860E0
:1005900000F06CF9044621460E2000F09BFA0E2074 :1005900000BF06B0BDE8F081001002400CED00E0A5
:1005A00000F082FA00F08EFA05460022114600F0B3 :1005A00000E400E000BFFEE700BFFEE770477047D1
:1005B0005DF9044621460F2000F08CFA0F2000F070 :1005B0007047000010B502203749096821F0070193
:1005C00073FA38BD0010024000B585B014216846AA :1005C0000143354A116000BF00BF00BF32480068D8
:1005D000FFF7B1FD1020FFF7E1FD2020FFF7DEFD62 :1005D00000F007000228F8D100BF3048006840F45E
:1005E0000420FFF7DBFD0820FFF7D8FD1C491D485C :1005E00080302E49086000BF00BF00BF2B48006864
:1005F000FFF7F4FE1C491D48FFF7F0FE1848009075 :1005F000C0F340400028F8D04FF480304FF4E011B1
:1006000001200190022002900020039069461548C5 :10060000264A526822F47C1200F440330B431A430A
:10061000FFF750FE164800900020019069461148EF :10061000224B5A6000BF00BF1846006840F080704F
:10062000FFF748FE134800900020019069461248E9 :100620001946086000BF00BF00BF1C480068C0F347
:10063000FFF740FE114800900020019069460B48EA :1006300040600028F8D000201849496821F0F001F6
:10064000FFF738FE08480090012001900220029038 :100640000143164A516000BF10151146496821F454
:100650000020039069460548FFF72CFE05B000BD59 :10065000E0610143516000BF00201146496821F468
:10066000200020040010014030003004000C014044 :1006600060510143516000BF02201146496821F0EA
:10067000C000C004FFFF990400080140FFFFCF0441 :1006700003010143516000BF00BF00BF074840684D
:100680002DE9F0418CB01C2105A8FFF754FD142181 :1006800000F00C000828F8D10548FFF733FE0448B5
:100690006846FFF750FD4FF48040FFF78DFD0420C2 :10069000FFF73EFE10BD00000020024000100240A7
:1006A000FFF78AFD6848009009200190032002901E :1006A00000A24A047047000010B54FF08040FFF7E9
:1006B0000020039069466548FFF7FCFD6448009000 :1006B00077FE012874D100BF00BF80070069C0F336
:1006C0000420019069466148FFF7F4FD00220521EE :1006C000400068B100BF4FF08040C068C0F34000F8
:1006D0006048FFF78FFD002205215E48FFF77AFD95 :1006D00030B100BF6FF002008107086100BF00BFAA
:1006E000002205215B48FFF7B5FD0022052159488E :1006E00000BF4FF080400069C0F3800070B100BFD0
:1006F000FFF7C0FD802205215648FFF78BFD002241 :1006F0004FF08040C068C0F3800038B100BF6FF099
:1007000005215448FFF7C6FD002205215148FFF797 :1007000004004FF08041086100BF00BF00BF4FF000
:1007100091FD102204214F48FFF76CFD00220421B7 :1007100080400069C0F3C00070B100BF4FF080405E
:100720004C48FFF757FD002204214A48FFF792FD8D :10072000C068C0F3C00038B100BF6FF008004FF0E0
:10073000002204214748FFF79DFD802204214548FF :100730008041086100BF00BF00BF4FF080400069EA
:10074000FFF768FD002204214248FFF7A3FD0022C5 :10074000C0F3001070B100BF4FF08040C068C0F32C
:1007500004214048FFF76EFD25213F4B1B68C3F382 :10075000001038B100BF6FF010004FF08041086109
:100760000220002425460346C3F1070CBCF1040F08 :1007600000BF00BF4FF08040FFF71AFE01280DD1F7
:1007700002D94FF0040C01E0C3F1070C674603F106 :1007700000BF8007C06800F0010038B100BF6FF013
:10078000040CBCF1070F02D24FF0000C01E0A3F102 :1007800001004FF08041086100BF00BF00BFFFF7CC
:10079000030C66464FF0010C0CFA07FCACF1010C9F :10079000A9FD00BF03480068401C0249086000BF73
:1007A0000CEA040C0CFA06FC4FF0010808FA06F8F3 :1007A00010BD00006000002000BFFEE702E008C8A6
:1007B000A8F1010808EA05084CEA080200BF002970 :1007B000121F08C1002AFAD170477047002001E0DB
:1007C00004DB1007030E2548435407E01007040E0E :1007C00001C1121F002AFBD170472DE9FC410446EC
:1007D00021480C3001F00F031B1FC45400BF25201B :1007D0000CB1012100E00021084640F26F21FFF733
:1007E000002809DB00F01F0201219140420992001C :1007E000C9FC25462C462E686F68D7E90401CDE97F
:1007F00002F1E022C2F8001100BF4FF4E130059091 :1007F00000016868D0F80CC097E80F00E047204679
:1008000000200690079008900C20099000200A9084 :1008000000F070FAD6E90401CDE900012868D0F8BB
:100810000B9005A91248FFF70BFE00BF10480069B6 :1008100008C096E80F00E047204600F063FAD6E9EA
:1008200020F490400E4908610846406920F02A00F3 :100820000401CDE900012868D0F80CC096E80F005B
:10083000486100BF00BF0846C06840F40050C8606F :10083000E047BDE8FC810000014601F1100000E046
:1008400000BF0CB0BDE8F0810200020400080140C6 :10084000001D02681AB9024A12689042F8D3704734
:1008500004000404000002400CED00E000E400E0AD :100850002000002010B50648046803E02046FFF79A
:100860000038014000BFFEE700BFFEE7F0B50346D9 :10086000EBFF0446034800688442F7D310BD000044
:100870000C4603F00701C1F10700042801D9042048 :100870001C000020200000202DE9FC4104460CB1A2
:1008800001E0C1F107000646081D072801D200203B :10088000012100E00021084640F28B21FFF772FCB5
:1008900000E0C81E05460120B040401E2040A84090 :1008900025462C462E686F68D7E90401CDE9000192
:1008A0000127AF407F1E17403843F0BD70477047A7 :1008A0006868D0F808C097E80F00E047204600F0DD
:1008B000014600BF0448406800F0F0000009034A08 :1008B00019FAD6E90401CDE900012868D0F808C08A
:1008C000125C21FA02F07047001002409F150008E8 :1008C00096E80F00E047204600F00CFAD6E9040154
:1008D000014600BF0548406800F4E060044A02EBAE :1008D000CDE900012868D0F80CC096E80F00E04789
:1008E0001020027821FA02F0704700000010024048 :1008E000BDE8FC810FB4DDE900108A68C0F30F2376
:1008F000AF150008014600BF0548406800F460508D :1008F0001A40C0F30F239A4201D1012200E00022E6
:10090000044A02EBD020027821FA02F0704700007E :10090000D0B204B070472DE9FC47054689460DB1C9
:1009100000100240AF15000810B5002400BF0B48BE :10091000012100E0002108465F21FFF72BFC4FF08A
:10092000406800F00C0020B1042804D0082808D149 :10092000000AD0462C462668676800BF3AE0D7E93F
:1009300003E0074C07E0064C05E000F00BF8044626 :100930000401CDE900016068D0F808C097E80F0015
:1009400001E0034C00BF00BF204610BD0010024074 :10094000E047D6E90401CDE900012068D0F808C0ED
:1009500000127A000021002200BF1148406800F414 :1009500096E80F00E0474FEA48604FEA10682846E3
:10096000803002461AB1B2F5803F0CD101E00D494A :1009600000F0C0F9D7E90401CDE900016068D0F8D2
:100970000BE000BF0A484068C0F34040401C0A4BEF :1009700014C097E80F00E04718B108F1010000F03B
:10098000B3FBF0F101E0074900BF00BF00BF04481E :10098000FF08D6E90401CDE900012068D0F80CC0C9
:10099000406800F47010022303EB90404843704716 :1009900096E80F00E047284600F0A4F90AF10100AC
:1009A0000010024000093D0000127A0070477047B5 :1009A00000F0FF0ABAF1080FC1DBB9F1010F03D162
:1009B00010B502203749096821F007010143354A83 :1009B0002846FFF70AFF02E02846FFF75DFF4046A2
:1009C000116000BF00BF00BF3248006800F00700A0 :1009C000BDE8FC870FB4DDE90001C1F30F224261ED
:1009D0000228F8D100BF3048006840F480302E492A :1009D00000BF04B070470FB4DDE90001C1F30F227E
:1009E000086000BF00BF00BF2B480068C0F3404054 :1009E000026100BF04B070472DE9FC4104460CB120
:1009F0000028F8D04FF480304FF4E011264A5268B6 :1009F000012100E0002108460F21FFF7BBFB25463F
:100A000022F47C1200F440330B431A43224B5A6009 :100A00002C462E686F68D7E90401CDE900016868BB
:100A100000BF00BF1846006840F0807019460860AB :100A1000D0F808C097E80F00E047D6E90401CDE917
:100A200000BF00BF00BF1C480068C0F34060002842 :100A200000012868D0F808C096E80F00E04720468B
:100A3000F8D000201849496821F0F0010143164A16 :100A300000F058F9D7E90401CDE900016868D0F861
:100A4000516000BF10151146496821F4E06101436F :100A40000CC097E80F00E047204600F04BF9D6E9CC
:100A5000516000BF00201146496821F460510143F4 :100A50000401CDE900012868D0F80CC096E80F0029
:100A6000516000BF02201146496821F00301014393 :100A6000E047204600F03EF9BDE8FC812DE9FC415D
:100A7000516000BF00BF00BF0748406800F00C0095 :100A700004460CB1012100E0002108462D21FFF7BA
:100A80000828F8D10548FFF7ADFC0448FFF7CAFC79 :100A800079FB25462C462E686F68D6E90401CDE92E
:100A900010BD0000002002400010024000A24A04E5 :100A900000012868D0F80CC096E80F00E047D7E9BD
:100AA0007047704700BFFEE7002809DB00F01F0217 :100AA0000401CDE900016868D0F80CC097E80F0098
:100AB000012191404209920002F1E022C2F80011A6 :100AB000E047204600F016F9D6E90401CDE900012F
:100AC0007047000002480068C0F302207047000031 :100AC0002868D0F808C096E80F00E047D7E904018D
:100AD0000CED00E010B5002804DB0A07130E054AF0 :100AD000CDE900016868D0F808C097E80F00E0474A
:100AE000135406E00A07140E034A00F00F031B1FFD :100AE000204600F0FFF8BDE8FC810FB430B5DDE929
:100AF000D45410BD00E400E018ED00E002E008C8A6 :100AF0000301C268C1F30F2323EA020402EA0305DB
:100B0000121F08C1002AFAD170477047002001E087 :100B000044EA0544046100BF30BC5DF814FB2DE9E4
:100B100001C1121F002AFBD170472DE9FC41044698 :100B1000FC4104460CB1012100E0002108464021BF
:100B20000CB1012100E00021084640F26F21FFF7DF :100B2000FFF728FB4FF0000825462C462E686F681B
:100B300021FB25462C462E686F68D7E90401CDE9D4 :100B3000D7E90401CDE900016868D0F808C097E85A
:100B400000016868D0F80CC097E80F00E047204625 :100B40000F00E047D6E90401CDE900012868D0F89C
:100B500000F05CFAD6E90401CDE900012868D0F87C :100B500008C096E80F00E047204600F0C3F80CE01C
:100B600008C096E80F00E047204600F04FFAD6E9AB :100B600008F1010000F0FF08B8F1FA0F05DD20469A
:100B70000401CDE900012868D0F80CC096E80F0008 :100B7000FFF77CFF0020BDE8FC81D7E90401CDE947
:100B8000E047BDE8FC810000014601F1100000E0F3 :100B800000016868D0F814C097E80F00E04700281B
:100B9000001D02681AB9024A12689042F8D37047E1 :100B9000E6D1D6E90401CDE900012868D0F80CC0FF
:100BA0001000002010B50648046803E02046FFF757 :100BA00096E80F00E047204600F09CF80120E2E7BD
:100BB000EBFF0446034800688442F7D310BD0000F1 :100BB0002DE9FC47064688464FF000090EB1012199
:100BC0000C000020100000202DE9FC4104460CB16F :100BC00000E0002108468821FFF7D4FA3446276860
:100BD000012100E00021084640F28B21FFF7CAFA0C :100BD00065684FF0000946E008F0800050B1D5E9A3
:100BE00025462C462E686F68D7E90401CDE900013F :100BE0000401CDE900016068D0F808C095E80F0065
:100BF0006868D0F808C097E80F00E047204600F08A :100BF000E04709E0D5E90401CDE900016068D0F8DB
:100C000005FAD6E90401CDE900012868D0F808C04A :100C00000CC095E80F00E047D7E90401CDE90001E9
:100C100096E80F00E047204600F0F8F9D6E9040115 :100C10002068D0F808C097E80F00E047304600F0A1
:100C2000CDE900012868D0F80CC096E80F00E04735 :100C200061F84FEA48604FEA1068D7E90401CDE95E
:100C3000BDE8FC810FB4DDE900108A68C0F30F2322 :100C300000012068D0F80CC097E80F00E04730466C
:100C40001A40C0F30F239A4201D1012200E0002292 :100C400000F050F8B9F1070F09D1D5E90401CDE959
:100C5000D0B204B070472DE9FC47054689460DB176 :100C500000016068D0F808C095E80F00E04709F18E
:100C6000012100E0002108465F21FFF783FA4FF0E1 :100C6000010000F0FF09B9F1080FB5DBBDE8FC8712
:100C7000000AD0462C462668676800BF3AE0D7E9EC :100C700070B506460D4600240BE0E00045FA00F092
:100C80000401CDE900016068D0F808C097E80F00C2 :100C8000C1B23046FFF794FF3046FFF740FF601CCB
:100C9000E047D6E90401CDE900012068D0F808C09A :100C9000C4B2022CF1DB70BD00200B49086000BF1C
:100CA00096E80F00E0474FEA48604FEA1068284690 :100CA00000BF4FF08040006840F001004FF08041ED
:100CB00000F0ACF9D7E90401CDE900016068D0F893 :100CB000086000BF00BF0846C06840F00100C8607F
:100CC00014C097E80F00E04718B108F1010000F0E8 :100CC00000BF00BF704700000400002010B50248BC
:100CD000FF08D6E90401CDE900012068D0F80CC076 :100CD00000F07AF810BD00000400002010B500F00C
:100CE00096E80F00E047284600F090F90AF101006D :100CE000A7F910BD70B504460CB1012100E0002148
:100CF00000F0FF0ABAF1080FC1DBB9F1010F03D10F :100CF000084640F25921FFF73DFA0025258900E01A
:100D00002846FFF70AFF02E02846FFF75DFF40464E :100D000000BF281EA5F101018DB2F9D170BD000010
:100D1000BDE8FC870FB4DDE90001C1F30F22426199 :100D10002DE9F04105460E4618273946002000F01F
:100D200000BF04B070470FB4DDE90001C1F30F222A :100D200069F904460CB1012100E000210846362192
:100D3000026100BF04B070472DE9FC4104460CB1CC :100D3000FFF720FA256066600548A0600548E0607E
:100D4000012100E0002108460F21FFF713FA254694 :100D400005482061054860612046BDE8F08100004B
:100D50002C462E686F68D7E90401CDE90001686868 :100D5000D7090008C5090008EB0A0008E5080008E3
:100D6000D0F808C097E80F00E047D6E90401CDE9C4 :100D6000F7B515465C263146002000F043F90446ED
:100D700000012868D0F808C096E80F00E047204638 :100D700020466946082203E011F8013B00F8013BD8
:100D800000F044F9D7E90401CDE900016868D0F822 :100D8000131EA2F10106B2B2F6D100BF25810848B8
:100D90000CC097E80F00E047204600F037F9D6E98D :100D9000A0630849E163084921640849A16408493E
:100DA0000401CDE900012868D0F80CC096E80F00D6 :100DA00061640849E1640020A4F858002046FEBDB3
:100DB000E047204600F02AF9BDE8FC812DE9FC411E :100DB000E90900086D0A00080F0B00080709000880
:100DC00004460CB1012100E0002108462D21FFF767 :100DC000B10B0008710C000838B5014600200090F6
:100DD000D1F925462C462E686F68D6E90401CDE985 :100DD000086810B1152821D116E000BF124B134C42
:100DE00000012868D0F80CC096E80F00E047D7E96A :100DE000E068C3F30F2222EA000400EA020544EAA5
:100DF0000401CDE900016868D0F80CC097E80F0045 :100DF00005440E4D2C6100BF00BF0D4800684860DF
:100E0000E047204600F002F9D6E90401CDE90001EF :100E000000BF1520086000BF094A48681268101A20
:100E10002868D0F808C096E80F00E047D7E9040139 :100E1000642801D2002038BD00BFDFE70020086051
:100E2000CDE900016868D0F808C097E80F00E047F6 :100E200000900320F7E7000020002004001001409C
:100E3000204600F0EBF8BDE8FC810FB430B5DDE9E9 :100E30006000002008B501201F49896901431E4A4E
:100E40000301C268C1F30F2323EA020402EA030587 :100E40009161114689690140009100BF00BF000710
:100E500044EA0544046100BF30BC5DF814FB2DE991 :100E50001146C9690143D1611146C9690140009138
:100E6000FC4104460CB1012100E00021084640216C :100E600000BF00BF03200246144B19684FF6FF0372
:100E7000FFF780F94FF0000825462C462E686F6872 :100E70001940134B0B4343EA0221104B196000BF8A
:100E8000D7E90401CDE900016868D0F808C097E807 :100E800000BF1048406820F0E06040F000700D495D
:100E90000F00E047D6E90401CDE900012868D0F849 :100E9000486000BFFFF78EFBFFF788FAFFF7E2FA22
:100EA00008C096E80F00E047204600F0AFF80CE0DD :100EA000002000F011F8FFF719FFFFF7F5FE01E051
:100EB00008F1010000F0FF08B8F1FA0F05DD204647 :100EB000FFF70CFFFCE70000001002400CED00E023
:100EC000FFF77CFF0020BDE8FC81D7E90401CDE9F4 :100EC0000000FA050000014010B504460C4951F835
:100ED00000016868D0F814C097E80F00E0470028C8 :100ED00024104A000B4951F82400002100F09EF82C
:100EE000E6D1D6E90401CDE900012868D0F80CC0AC :100EE000094951F824200749083951F82400002104
:100EF00096E80F00E047204600F088F80120E2E77E :100EF00000F094F8012103480830015510BD0000AE
:100F00002DE9FC47064688464FF000090EB1012145 :100F0000E011000854000020F01100082DE9F0471E
:100F100000E0002108468821FFF72CF934462768B5 :100F100004460F460025A9462348005D20B9224813
:100F200065684FF0000946E008F0800050B1D5E94F :100F200018380168204688471FB94FF0FF30BDE8E8
:100F30000401CDE900016068D0F808C095E80F0011 :100F3000F0871E4850F82400B7FBF0F61B4850F825
:100F4000E04709E0D5E90401CDE900016068D0F887 :100F40002400B7FBF0F100FB117000B1761C1848CB
:100F50000CC095E80F00E047D7E90401CDE9000196 :100F500050F82400451E22E01348083850F82400B9
:100F60002068D0F808C097E80F00E047304600F04E :100F600030F8150010B909F1010901E04FF000094E
:100F70004DF84FEA48604FEA1068D7E90401CDE91F :100F7000B14513D14FF0000809E00B48083850F88C
:100F800000012068D0F80CC097E80F00E047304619 :100F8000240005EB080220F8126008F10108B045C2
:100F900000F03CF8B9F1070F09D1D5E90401CDE91A :100F9000F3D3064850F824006843C8E76D1E002DBF
:100FA00000016068D0F808C095E80F00E04709F13B :100FA000DADA4FF0FF30C2E75C000020E8110008F9
:100FB000010000F0FF09B9F1080FB5DBBDE8FC87BF :100FB000E011000810B501460023002207E00B48AD
:100FC00070B506460D4600240BE0E00045FA00F03F :100FC00050F8210030F8120000B15B1C521C084898
:100FD000C1B23046FFF794FF3046FFF740FF601C78 :100FD00050F821009042F2D864205843044C54F851
:100FE000C4B2022CF1DB70BD0020014908607047DB :100FE0002140B0FBF4F0C0B210BD0000540000205E
:100FF0000400002010B5024800F07AF810BD00008F :100FF000E011000870B504460E4631462046FFF762
:101000000400002010B500F0FBF910BD70B50446D7 :1010000085FF0546681C08B9002070BD024850F8ED
:101010000CB1012100E00021084640F25921FFF700 :1010100024002844F9E700004C00002030B50346C6
:10102000A9F80025258900E000BF281EA5F10101CF :1010200001E003F8011B141EA2F10102F9D130BD49
:101030008DB2F9D170BD00002DE9F04105460E4694 :101030001CB52F492F48FFF76BFE00902E492D4815
:1010400018273946002000F0BDF904460CB10121F3 :10104000FFF766FE01900022DDE90001FFF788FE50
:1010500000E0002108463621FFF78CF82560666025 :101050002A490860AE2000F055F8D52000F052F87B
:101060000548A0600548E0600548206105486061CA :10106000802000F04FF8A82000F04CF83F2000F05E
:101070002046BDE8F0810000270D0008150D00088E :1010700049F8D32000F046F8002000F043F8402063
:101080003B0E0008350C0008F7B515465C263146C6 :1010800000F040F88D2000F03DF8142000F03AF810
:10109000002000F097F9044620466946082203E044 :10109000202000F037F8002000F034F8A12000F004
:1010A00011F8013B00F8013B131EA2F10106B2B298 :1010A00031F8C82000F02EF8DA2000F02BF81220DA
:1010B000F6D100BF25810848A0630849E1630849CB :1010B00000F028F8812000F025F8CF2000F022F879
:1010C00021640849A164084961640849E164002079 :1010C000D92000F01FF8F12000F01CF8DB2000F020
:1010D000A4F858002046FEBD390D0008BD0D0008DB :1010D00019F8402000F016F8A42000F013F8A6201C
:1010E0005F0E0008570C0008010F0008C10F000830 :1010E00000F010F8AF2000F00DF800F009F81CBD7A
:1010F00038B5014600200090086810B1142821D1AD :1010F00020002004000C01401000100464000020B7
:1011000016E000BF124B134CE068C3F30F2222EA33 :101100007047000038B5044600208DF800008DF8C7
:10111000000400EA020544EA05440E4D2C6100BFBC :1011100001401B480068816B1948006888471848DF
:1011200000BF0D480068486000BF1420086000BF81 :1011200000687821426C16480068904714480068AF
:10113000094A48681268101A642801D2002038BD94 :10113000016C1348006888479DF80010104800684B
:1011400000BFDFE70020086000900320F7E7000001 :10114000426C0F48006890470D480068016C0C48DD
:1011500020002004001001404000002008B50120BC :10115000006888479DF8011009480068426C0848FB
:10116000484989690143474A9161114689690140AB :101160000068904706480068016C05480068884799
:10117000009100BF00BF00071146C9690143D1615A :1011700003480068C16B02480068884738BD00001A
:101180001146C9690140009100BF00BF032002461B :101180006400002000BF00BF00BF00BF00BFBFF36E
:101190003D4B19684FF6FF0319403C4B0B4343EAA4 :101190004F8F00BF00BF00BF0948006800F4E06047
:1011A0000221394B196000BF01211B68C3F30220E3 :1011A00008490843001D0649086000BF00BF00BF92
:1011B000002425460346C3F1070CBCF1040F02D9F5 :1011B000BFF34F8F00BF00BF00BF00BF00BFFDE700
:1011C0004FF0040C01E0C3F1070C674603F1040C77 :1011C0000CED00E00000FA055F6C697374006C6957
:1011D000BCF1070F02D24FF0000C01E0A3F1030CA9 :1011D000737420616C6C20636F6D6D616E640000D0
:1011E00066464FF0010C0CFA07FCACF1010C0CEA5E :1011E00000020000000000000800000008000000ED
:1011F000040C0CFA06FC4FF0010808FA06F8A8F1F6 :1011F000001000000000000018120008000000208D
:10120000010808EA05084CEA080200BF002904DBCF :1012000078000000AC070008901200087800002069
:101210001007030E1E48435407E01007040E1A4837 :1012100008180000BC0700080024F40000000000CB
:101220000C3001F00F031B1FC45400BF0120002825 :1012200000000000000000000000000000000000BE
:1012300009DB00F01F02012191404209920002F1F6 :1012300000000000000000000000000000000000AE
:10124000E022C2F8001100BF00BF1248406820F041 :10124000000000000000000000000000000000009E
:10125000E06040F000700F49486000BFFFF7A8FB56 :10125000000000000000000000000000C90E0008AF
:10126000FFF7B2F9FFF782F9FFF70AFA002000F062 :10126000B50F000880000020400000208010002002
:1012700013F8FFF7C7FEFFF7B7FE01E0FFF7BAFE6E :10127000420000200000000000000000000000000C
:10128000FCE70000001002400CED00E00000FA0551 :10128000C8110008CE110008C6E533B4550800089F
:1012900000E400E00000014010B504460C4951F89C
:1012A00024104A000B4951F82400002100F09EF858
:1012B000094951F824200749083951F82400002130
:1012C00000F094F8012103480830015510BD0000DA
:1012D000D015000834000020E01500082DE9F04783
:1012E00004460F460025A9462348005D20B9224840
:1012F00018380168204688471FB94FF0FF30BDE815
:10130000F0871E4850F82400B7FBF0F61B4850F851
:101310002400B7FBF0F100FB117000B1761C1848F7
:1013200050F82400451E22E01348083850F82400E5
:1013300030F8150010B909F1010901E04FF000097A
:10134000B14513D14FF0000809E00B48083850F8B8
:10135000240005EB080220F8126008F10108B045EE
:10136000F3D3064850F824006843C8E76D1E002DEB
:10137000DADA4FF0FF30C2E73C000020D815000851
:10138000D015000810B501460023002207E00B48E5
:1013900050F8210030F8120000B15B1C521C0848C4
:1013A00050F821009042F2D864205843044C54F87D
:1013B0002140B0FBF4F0C0B210BD000034000020AA
:1013C000D015000870B504460E4631462046FFF79A
:1013D00085FF0546681C08B9002070BD024850F81A
:1013E00024002844F9E700002C00002030B5034613
:1013F00001E003F8011B141EA2F10102F9D130BD76
:101400001CB52F492F48FFF717FE00902E492D4895
:10141000FFF712FE01900022DDE90001FFF734FE24
:101420002A490860AE2000F055F8D52000F052F8A7
:10143000802000F04FF8A82000F04CF83F2000F08A
:1014400049F8D32000F046F8002000F043F840208F
:1014500000F040F88D2000F03DF8142000F03AF83C
:10146000202000F037F8002000F034F8A12000F030
:1014700031F8C82000F02EF8DA2000F02BF8122006
:1014800000F028F8812000F025F8CF2000F022F8A5
:10149000D92000F01FF8F12000F01CF8DB2000F04C
:1014A00019F8402000F016F8A42000F013F8A62048
:1014B00000F010F8AF2000F00DF800F009F81CBDA6
:1014C00020002004000C0140100010044400002003
:1014D0007047000038B5044600208DF800008DF8F4
:1014E00001401B480068816B19480068884718480C
:1014F00000687821426C16480068904714480068DC
:10150000016C1348006888479DF800101048006877
:10151000426C0F48006890470D480068016C0C4809
:10152000006888479DF8011009480068426C084827
:101530000068904706480068016C054800688847C5
:1015400003480068C16B02480068884738BD000046
:101550004400002000BF00BF00BF00BF00BFBFF3BA
:101560004F8F00BF00BF00BF0948006800F4E06073
:1015700008490843001D0649086000BF00BF00BFBE
:10158000BFF34F8F00BF00BF00BF00BF00BFFDE72C
:101590000CED00E00000FA05081C3044586C800097
:1015A0000000000000000001020304060708090013
:1015B000000000010203045F6C697374006C6973BE
:1015C0007420616C6C20636F6D6D616E640000004F
:1015D00000020000000000000800000008000000F9
:1015E00000100000000000000816000800000020A5
:1015F00058000000FC0A000860160008580000208F
:10160000081800000C0B00080024F4000000000083
:1016100000000000000000000000000000000000CA
:101620000000000000000000000000009912000807
:1016300085130008600000202000002060100020BA
:101640002200002000000000000000000000000058
:10165000B7150008BD150008C6E533B4A50B000892
:04000005080000ED02 :04000005080000ED02
:00000001FF :00000001FF

View File

@ -1,5 +1,6 @@
#include "app.h" #include "app.h"
#include "board.h"
#include "flow.h" #include "flow.h"
static struct flow idle_fw; // 空闲任务 static struct flow idle_fw; // 空闲任务
/** /**
@ -42,4 +43,6 @@ void app_run(void)
void app_init(void) void app_init(void)
{ {
FL_INIT(&idle_fw); // 空闲任务 FL_INIT(&idle_fw); // 空闲任务
ENABLE_TIM(TASK_TIM);
} }

View File

@ -2,5 +2,8 @@
#define __BOARD_H__ #define __BOARD_H__
#include "lib.h" #include "lib.h"
#include "ssd1306_oled.h" #include "ssd1306_oled.h"
#define TASK_TIM TIM2
void board_init(void); void board_init(void);
#endif #endif

View File

@ -18,7 +18,7 @@
#include "dmas.h" #include "dmas.h"
#include "tims.h" #include "tims.h"
// #include "pwms.h" // #include "pwms.h"
#include "uarts.h" // #include "uarts.h"
// #include "eeprom.h" // #include "eeprom.h"
// #include "spis.h" // #include "spis.h"
#include "i2cs.h" #include "i2cs.h"

View File

@ -2,38 +2,16 @@
CAD.formats= CAD.formats=
CAD.pinconfig= CAD.pinconfig=
CAD.provider= CAD.provider=
Dma.Request0=USART1_RX
Dma.Request1=USART1_TX
Dma.RequestsNb=2
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_LOW
Dma.USART1_RX.0.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
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_LOW
Dma.USART1_TX.1.RequestParameters=Instance,Direction,PeriphInc,MemInc,PeriphDataAlignment,MemDataAlignment,Mode,Priority
File.Version=6 File.Version=6
GPIO.groupedBy=Group By Peripherals GPIO.groupedBy=Group By Peripherals
KeepUserPlacement=false KeepUserPlacement=false
Mcu.CPN=STM32F103C8T6 Mcu.CPN=STM32F103C8T6
Mcu.Family=STM32F1 Mcu.Family=STM32F1
Mcu.IP0=DMA Mcu.IP0=NVIC
Mcu.IP1=NVIC Mcu.IP1=RCC
Mcu.IP2=RCC Mcu.IP2=SYS
Mcu.IP3=SYS Mcu.IP3=TIM2
Mcu.IP4=USART1 Mcu.IPNb=4
Mcu.IPNb=5
Mcu.Name=STM32F103C(8-B)Tx Mcu.Name=STM32F103C(8-B)Tx
Mcu.Package=LQFP48 Mcu.Package=LQFP48
Mcu.Pin0=PC13-TAMPER-RTC Mcu.Pin0=PC13-TAMPER-RTC
@ -41,12 +19,11 @@ Mcu.Pin1=PD0-OSC_IN
Mcu.Pin2=PD1-OSC_OUT Mcu.Pin2=PD1-OSC_OUT
Mcu.Pin3=PB12 Mcu.Pin3=PB12
Mcu.Pin4=PB13 Mcu.Pin4=PB13
Mcu.Pin5=PA9 Mcu.Pin5=PA13
Mcu.Pin6=PA10 Mcu.Pin6=PA14
Mcu.Pin7=PA13 Mcu.Pin7=VP_SYS_VS_Systick
Mcu.Pin8=PA14 Mcu.Pin8=VP_TIM2_VS_ClockSourceINT
Mcu.Pin9=VP_SYS_VS_Systick Mcu.PinsNb=9
Mcu.PinsNb=10
Mcu.ThirdParty0=RealThread.RT-Thread.3.1.5 Mcu.ThirdParty0=RealThread.RT-Thread.3.1.5
Mcu.ThirdPartyNb=1 Mcu.ThirdPartyNb=1
Mcu.UserConstants= Mcu.UserConstants=
@ -54,28 +31,21 @@ Mcu.UserName=STM32F103C8Tx
MxCube.Version=6.9.2 MxCube.Version=6.9.2
MxDb.Version=DB.6.0.92 MxDb.Version=DB.6.0.92
NVIC.BusFault_IRQn=true\:0\:0\:false\:false\:true\:false\:false\:false NVIC.BusFault_IRQn=true\:0\:0\:false\:false\:true\:false\:false\:false
NVIC.DMA1_Channel4_IRQn=true\:0\:0\:false\:false\:true\:false\:true\:true
NVIC.DMA1_Channel5_IRQn=true\:0\:0\:false\:false\:true\:false\:true\:true
NVIC.DebugMonitor_IRQn=true\:0\:0\:false\:false\:true\:false\:false\:false NVIC.DebugMonitor_IRQn=true\:0\:0\:false\:false\:true\:false\:false\:false
NVIC.ForceEnableDMAVector=true NVIC.ForceEnableDMAVector=true
NVIC.HardFault_IRQn=true\:0\:0\:false\:false\:true\:false\:false\:false NVIC.HardFault_IRQn=true\:0\:0\:false\:false\:true\:false\:false\:false
NVIC.MemoryManagement_IRQn=true\:0\:0\:false\:false\:true\:false\:false\:false NVIC.MemoryManagement_IRQn=true\:0\:0\:false\:false\:true\:false\:false\:false
NVIC.NonMaskableInt_IRQn=true\:0\:0\:false\:false\:true\:false\:false\:false NVIC.NonMaskableInt_IRQn=true\:0\:0\:false\:false\:true\:false\:false\:false
NVIC.PVD_IRQn=true\:0\:0\:false\:false\:true\:true\:true\:true
NVIC.PendSV_IRQn=true\:0\:0\:false\:false\:true\:false\:false\:false NVIC.PendSV_IRQn=true\:0\:0\:false\:false\:true\:false\:false\:false
NVIC.PriorityGroup=NVIC_PRIORITYGROUP_4 NVIC.PriorityGroup=NVIC_PRIORITYGROUP_4
NVIC.SVCall_IRQn=true\:0\:0\:false\:false\:true\:false\:false\:false NVIC.SVCall_IRQn=true\:0\:0\:false\:false\:true\:false\:false\:false
NVIC.SysTick_IRQn=true\:0\:0\:false\:false\:true\:false\:true\:false NVIC.SysTick_IRQn=true\:0\:0\:false\:false\:true\:false\:true\:false
NVIC.USART1_IRQn=true\:0\:0\:false\:false\:true\:true\:true\:true NVIC.TIM2_IRQn=true\:15\:0\:true\:false\:true\:true\:true\:true
NVIC.UsageFault_IRQn=true\:0\:0\:false\:false\:true\:false\:false\:false NVIC.UsageFault_IRQn=true\:0\:0\:false\:false\:true\:false\:false\:false
PA10.Mode=Asynchronous
PA10.Signal=USART1_RX
PA13.Mode=Serial_Wire PA13.Mode=Serial_Wire
PA13.Signal=SYS_JTMS-SWDIO PA13.Signal=SYS_JTMS-SWDIO
PA14.Mode=Serial_Wire PA14.Mode=Serial_Wire
PA14.Signal=SYS_JTCK-SWCLK PA14.Signal=SYS_JTCK-SWCLK
PA9.Mode=Asynchronous
PA9.Signal=USART1_TX
PB12.GPIOParameters=GPIO_Label PB12.GPIOParameters=GPIO_Label
PB12.GPIO_Label=OLED_SDA PB12.GPIO_Label=OLED_SDA
PB12.Signal=GPIO_Output PB12.Signal=GPIO_Output
@ -120,7 +90,7 @@ ProjectManager.ToolChainLocation=
ProjectManager.UAScriptAfterPath= ProjectManager.UAScriptAfterPath=
ProjectManager.UAScriptBeforePath= ProjectManager.UAScriptBeforePath=
ProjectManager.UnderRoot=false ProjectManager.UnderRoot=false
ProjectManager.functionlistsort=1-SystemClock_Config-RCC-false-LL-false,2-MX_GPIO_Init-GPIO-false-LL-true,3-MX_DMA_Init-DMA-false-LL-true,4-MX_USART1_UART_Init-USART1-false-LL-true ProjectManager.functionlistsort=1-SystemClock_Config-RCC-false-LL-false,2-MX_GPIO_Init-GPIO-false-LL-true,3-MX_TIM4_Init-TIM4-false-LL-true,3-MX_TIM2_Init-TIM2-false-LL-true
RCC.ADCFreqValue=36000000 RCC.ADCFreqValue=36000000
RCC.AHBFreq_Value=72000000 RCC.AHBFreq_Value=72000000
RCC.APB1CLKDivider=RCC_HCLK_DIV2 RCC.APB1CLKDivider=RCC_HCLK_DIV2
@ -150,8 +120,11 @@ RealThread.RT-Thread.3.1.5.RT_USING_COMPONENTS_INIT=1
RealThread.RT-Thread.3.1.5.RT_USING_CONSOLE=0 RealThread.RT-Thread.3.1.5.RT_USING_CONSOLE=0
RealThread.RT-Thread.3.1.5.RT_USING_DEVICE=1 RealThread.RT-Thread.3.1.5.RT_USING_DEVICE=1
RealThread.RT-Thread.3.1.5_SwParameter=RTOSJjkernel\:true;RTOSJjshell\:true;RTOSJjdevice\:true; RealThread.RT-Thread.3.1.5_SwParameter=RTOSJjkernel\:true;RTOSJjshell\:true;RTOSJjdevice\:true;
USART1.IPParameters=VirtualMode TIM2.IPParameters=Prescaler,Period
USART1.VirtualMode=VM_ASYNC TIM2.Period=99
TIM2.Prescaler=7199
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_TIM2_VS_ClockSourceINT.Mode=Internal
VP_TIM2_VS_ClockSourceINT.Signal=TIM2_VS_ClockSourceINT
board=custom board=custom