/**
******************************************************************************
* @file stm32g0xx_hal_tim.c
* @author MCD Application Team
* @brief TIM HAL module driver.
* This file provides firmware functions to manage the following
* functionalities of the Timer (TIM) peripheral:
* + TIM Time Base Initialization
* + TIM Time Base Start
* + TIM Time Base Start Interruption
* + TIM Time Base Start DMA
* + TIM Output Compare/PWM Initialization
* + TIM Output Compare/PWM Channel Configuration
* + TIM Output Compare/PWM Start
* + TIM Output Compare/PWM Start Interruption
* + TIM Output Compare/PWM Start DMA
* + TIM Input Capture Initialization
* + TIM Input Capture Channel Configuration
* + TIM Input Capture Start
* + TIM Input Capture Start Interruption
* + TIM Input Capture Start DMA
* + TIM One Pulse Initialization
* + TIM One Pulse Channel Configuration
* + TIM One Pulse Start
* + TIM Encoder Interface Initialization
* + TIM Encoder Interface Start
* + TIM Encoder Interface Start Interruption
* + TIM Encoder Interface Start DMA
* + Commutation Event configuration with Interruption and DMA
* + TIM OCRef clear configuration
* + TIM External Clock configuration
******************************************************************************
* @attention
*
* Copyright (c) 2018 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.
*
******************************************************************************
@verbatim
==============================================================================
##### TIMER Generic features #####
==============================================================================
[..] The Timer features include:
(#) 16-bit up, down, up/down auto-reload counter.
(#) 16-bit programmable prescaler allowing dividing (also on the fly) the
counter clock frequency either by any factor between 1 and 65536.
(#) Up to 4 independent channels for:
(++) Input Capture
(++) Output Compare
(++) PWM generation (Edge and Center-aligned Mode)
(++) One-pulse mode output
(#) Synchronization circuit to control the timer with external signals and to interconnect
several timers together.
(#) Supports incremental encoder for positioning purposes
##### How to use this driver #####
==============================================================================
[..]
(#) Initialize the TIM low level resources by implementing the following functions
depending on the selected feature:
(++) Time Base : HAL_TIM_Base_MspInit()
(++) Input Capture : HAL_TIM_IC_MspInit()
(++) Output Compare : HAL_TIM_OC_MspInit()
(++) PWM generation : HAL_TIM_PWM_MspInit()
(++) One-pulse mode output : HAL_TIM_OnePulse_MspInit()
(++) Encoder mode output : HAL_TIM_Encoder_MspInit()
(#) Initialize the TIM low level resources :
(##) Enable the TIM interface clock using __HAL_RCC_TIMx_CLK_ENABLE();
(##) TIM pins configuration
(+++) Enable the clock for the TIM GPIOs using the following function:
__HAL_RCC_GPIOx_CLK_ENABLE();
(+++) Configure these TIM pins in Alternate function mode using HAL_GPIO_Init();
(#) The external Clock can be configured, if needed (the default clock is the
internal clock from the APBx), using the following function:
HAL_TIM_ConfigClockSource, the clock configuration should be done before
any start function.
(#) Configure the TIM in the desired functioning mode using one of the
Initialization function of this driver:
(++) HAL_TIM_Base_Init: to use the Timer to generate a simple time base
(++) HAL_TIM_OC_Init and HAL_TIM_OC_ConfigChannel: to use the Timer to generate an
Output Compare signal.
(++) HAL_TIM_PWM_Init and HAL_TIM_PWM_ConfigChannel: to use the Timer to generate a
PWM signal.
(++) HAL_TIM_IC_Init and HAL_TIM_IC_ConfigChannel: to use the Timer to measure an
external signal.
(++) HAL_TIM_OnePulse_Init and HAL_TIM_OnePulse_ConfigChannel: to use the Timer
in One Pulse Mode.
(++) HAL_TIM_Encoder_Init: to use the Timer Encoder Interface.
(#) Activate the TIM peripheral using one of the start functions depending from the feature used:
(++) Time Base : HAL_TIM_Base_Start(), HAL_TIM_Base_Start_DMA(), HAL_TIM_Base_Start_IT()
(++) Input Capture : HAL_TIM_IC_Start(), HAL_TIM_IC_Start_DMA(), HAL_TIM_IC_Start_IT()
(++) Output Compare : HAL_TIM_OC_Start(), HAL_TIM_OC_Start_DMA(), HAL_TIM_OC_Start_IT()
(++) PWM generation : HAL_TIM_PWM_Start(), HAL_TIM_PWM_Start_DMA(), HAL_TIM_PWM_Start_IT()
(++) One-pulse mode output : HAL_TIM_OnePulse_Start(), HAL_TIM_OnePulse_Start_IT()
(++) Encoder mode output : HAL_TIM_Encoder_Start(), HAL_TIM_Encoder_Start_DMA(), HAL_TIM_Encoder_Start_IT().
(#) The DMA Burst is managed with the two following functions:
HAL_TIM_DMABurst_WriteStart()
HAL_TIM_DMABurst_ReadStart()
*** Callback registration ***
=============================================
[..]
The compilation define USE_HAL_TIM_REGISTER_CALLBACKS when set to 1
allows the user to configure dynamically the driver callbacks.
[..]
Use Function HAL_TIM_RegisterCallback() to register a callback.
HAL_TIM_RegisterCallback() takes as parameters the HAL peripheral handle,
the Callback ID and a pointer to the user callback function.
[..]
Use function HAL_TIM_UnRegisterCallback() to reset a callback to the default
weak function.
HAL_TIM_UnRegisterCallback takes as parameters the HAL peripheral handle,
and the Callback ID.
[..]
These functions allow to register/unregister following callbacks:
(+) Base_MspInitCallback : TIM Base Msp Init Callback.
(+) Base_MspDeInitCallback : TIM Base Msp DeInit Callback.
(+) IC_MspInitCallback : TIM IC Msp Init Callback.
(+) IC_MspDeInitCallback : TIM IC Msp DeInit Callback.
(+) OC_MspInitCallback : TIM OC Msp Init Callback.
(+) OC_MspDeInitCallback : TIM OC Msp DeInit Callback.
(+) PWM_MspInitCallback : TIM PWM Msp Init Callback.
(+) PWM_MspDeInitCallback : TIM PWM Msp DeInit Callback.
(+) OnePulse_MspInitCallback : TIM One Pulse Msp Init Callback.
(+) OnePulse_MspDeInitCallback : TIM One Pulse Msp DeInit Callback.
(+) Encoder_MspInitCallback : TIM Encoder Msp Init Callback.
(+) Encoder_MspDeInitCallback : TIM Encoder Msp DeInit Callback.
(+) HallSensor_MspInitCallback : TIM Hall Sensor Msp Init Callback.
(+) HallSensor_MspDeInitCallback : TIM Hall Sensor Msp DeInit Callback.
(+) PeriodElapsedCallback : TIM Period Elapsed Callback.
(+) PeriodElapsedHalfCpltCallback : TIM Period Elapsed half complete Callback.
(+) TriggerCallback : TIM Trigger Callback.
(+) TriggerHalfCpltCallback : TIM Trigger half complete Callback.
(+) IC_CaptureCallback : TIM Input Capture Callback.
(+) IC_CaptureHalfCpltCallback : TIM Input Capture half complete Callback.
(+) OC_DelayElapsedCallback
elab-master
需积分: 0 102 浏览量
更新于2023-08-10
收藏 5.85MB ZIP 举报
"elab-master" 是一个可能代表仓库主分支的命名,通常在Git版本控制系统中使用,意味着这可能是一个关于软件开发的项目。这个压缩包很可能包含了整个项目源代码、配置文件和其他相关资源。由于标签为“程序设计”,我们可以推测这是一个与编程相关的项目。
在深入讨论之前,我们首先需要明确“elab”可能是项目名或者是特定功能模块的缩写,但具体含义需要根据项目文档或代码来确定。现在,让我们基于这个信息,详细探讨一些可能包含的知识点:
1. **版本控制**:项目使用Git作为版本控制系统,这是现代软件开发中广泛使用的工具,用于跟踪代码更改、协作开发以及管理不同版本的项目。
2. **源代码管理**:在"elab-master"目录下,可能会有多个子目录,分别存放不同的源代码文件。这些文件可能是用各种编程语言(如Python、Java、C++等)编写的,它们构成了项目的主体部分。
3. **项目结构**:一般情况下,项目会遵循一定的文件夹结构,比如`src`用于存放源代码,`tests`用于存放测试代码,`docs`存放文档,`config`存储配置文件等。
4. **编程语言**:根据项目实际使用的编程语言,可能涉及的知识点包括语言特性、语法、面向对象编程、函数式编程、模块化设计等。
5. **框架与库**:项目可能依赖于特定的框架或库,例如前端可能使用React、Vue或Angular,后端可能使用Django、Spring Boot或Node.js。了解这些框架的使用是理解项目的关键。
6. **配置文件**:配置文件(如`.env`、`settings.py`、`config.json`等)用于设定项目的运行环境变量、数据库连接、服务器设置等,对于项目的部署和运行至关重要。
7. **测试**:项目可能包含单元测试、集成测试或端到端测试,用于确保代码质量。测试框架如JUnit、pytest、Mocha等,以及断言库和模拟库也是测试中常见的工具。
8. **构建工具**:可能使用Webpack、Gradle、Maven等工具进行项目打包和构建,自动化构建流程可以大大提高开发效率。
9. **持续集成/持续部署(CI/CD)**:如Jenkins、Travis CI或GitHub Actions等工具可能被用来自动化测试和部署过程,确保每次代码提交都能快速验证其正确性并更新到生产环境。
10. **文档**:项目中可能包含README文件或其他形式的文档,用于解释项目目的、如何运行项目、API文档等,这对于理解和贡献项目至关重要。
11. **许可证**:项目根目录下通常会有LICENSE文件,定义了项目代码的使用权限和条件,常见的如MIT、Apache 2.0、GPL等。
12. **版本号**:项目可能遵循Semantic Versioning(语义化版本),版本号如`v1.2.3`表示主版本、次版本和修订版本,每个数字的改变代表了代码的重要程度。
要全面了解"elab-master"项目,你需要解压文件,阅读源代码,查看文档,甚至运行项目来体验其功能。通过以上知识点,你应该能对项目有一个基本的认识,并开始深入学习和贡献。
你的月亮和太阳
- 粉丝: 236
- 资源: 91
最新资源
- 电路分析基础 实验五 RLC串联谐振的multisim仿真
- 2个月涨粉8w,新玩法AI做漫画小说赛道,操作简单可批量制作,新手小白....mp4
- 高分辨率下的遥感目标分割
- 网络攻防原理与技术-实验8资料.7z
- 电机控制器,永磁同步电机调速控制软件工程PMSM,该工程主要基于DSP28335硬件控制平台,两电平IPM模块主回路,通过位置传感器,速度传感器实时检测位置和速度信号,电流传感器采集电流信号,控制器控
- 24年快手无人直播暴利变现3.0,直播间人气轻松破千上热门,普通人也能....mp4
- 2024年9月28日支付宝分成最新搬运玩法.mp4
- 西门子1200PLC模板通讯程序 modbus 包含多种通讯Modbus-RTU(485),S7通讯,Modbus-TCP,TCP IP等,博途V16及较新版本可打开,简单明了,初学者也能明白
- ICED Smart 网站部署教程文件
- 2024淘宝暴力掘金 单机500+.mp4
- 2024年最新暴力起店玩法,拼多多虚拟电商4.0,24小时实现成交,单人可以...mp4
- 2024影视解说最新玩法,AI一键生成原创影视解说, 十秒钟制作成品,解....mp4
- 2024掌握拼多多运营精髓:爆款流程、定价技巧与SKU设计实战课.mp4
- 房屋租赁推荐系统 房租租赁系统 基于协同过滤的房屋租赁推荐系统 特色功能:协同过滤推荐 对于房租租赁,结合实际场景选择用户对房子的浏览次数作为数据集,体现用户喜好度,应用余弦相似度,实现基于用户协同过
- X6程序模块 AE-10D00.GDL
- AspSweb网页服务器1.0.0.93