19.5HAL库定时器的基本操作函数和宏_第1页
19.5HAL库定时器的基本操作函数和宏_第2页
19.5HAL库定时器的基本操作函数和宏_第3页
19.5HAL库定时器的基本操作函数和宏_第4页
19.5HAL库定时器的基本操作函数和宏_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

HAL库定时器的基本操作函数和宏1STM32程序设计案例教程电子工业出版社欧启标主要内容一、定时器普通方式启动函数和关闭函数的执行过程二、定时器计数器值的设置和读取三、定时器初始化函数HAL_TIM_Base_Init的定义一、定时器普通方式启动函数和关闭函数的执行过程HAL_StatusTypeDefHAL_TIM_Base_Start(TIM_HandleTypeDef*htim){uint32_ttmpsmcr;assert_param(IS_TIM_INSTANCE(htim->Instance));

/*(1)检查函数参数*/htim->State=HAL_TIM_STATE_BUSY;/*(2)设置定时器的状态为忙状态,准备对定时器进行配置*/tmpsmcr=htim->Instance->SMCR&TIM_SMCR_SMS;/*(3)和下一步if中的判断结合一起判断是不是从模式触发模式启动定时器*/if(!IS_TIM_SLAVEMODE_TRIGGER_ENABLED(tmpsmcr)){__HAL_TIM_ENABLE(htim);/*(4)如果不是触发模式启动,则使能定时器*/}htim->State=HAL_TIM_STATE_READY;/*(5)定时器配置好后,重新将定时器配置为准备好的状态*/returnHAL_OK;/*(6)返回定时器准备好的状态*/}1.定时器普通方式启动函数HAL_TIM_Base_Start的执行过程HAL_StatusTypeDefHAL_TIM_Base_Stop(TIM_HandleTypeDef*htim){assert_param(IS_TIM_INSTANCE(htim->Instance));/*(1)检查函数参数*/htim->State=HAL_TIM_STATE_BUSY;/*(2)设置定时器的状态为忙,准备配置定时器*/__HAL_TIM_DISABLE(htim);/*(3)关闭定时器*/htim->State=HAL_TIM_STATE_READY;

/*(4)设置定时器状态为准备好的状态*/returnHAL_OK;/*(5)定时器外设配置完成,返回OK*/}2.定时器普通方式关闭函数二、定时器计数器值的设置和读取1.计数器值的设置:__HAL_TIM_SetCounter()2.计数器值的读取:__HAL_TIM_GetCounter()三、定时器初始化函数HAL_TIM_Base_Init的定义在main函数中对定时器进行初始化使用的是函数”MX_TIM3_Init()”,该函数实际上是通过调用HAL库的定时器普通初始化函数HAL_TIM_Base_Init来完成对定时器的初始化的。下面我们打开该函数,看该函数如何定义。函数HAL_TIM_Base_Init的定义如下(只列出部分主要内容)HAL_StatusTypeDefHAL_TIM_Base_Init(TIM_HandleTypeDef*htim){if(htim==NULL)/*判断定时器句柄是否为空*/{returnHAL_ERROR;}if(htim->State==HAL_TIM_STATE_RESET)/*判断定时器是否处于复位状态*/{

HAL_TIM_Base_MspInit(htim);/*调用MSP函数使能模块的时钟*/}htim->State=HAL_TIM_STATE_BUSY;

TIM_Base_SetConfig(htim->Instance,&htim->Init);/*设置定时器的底层寄存器*/htim->State=HAL_TIM_STATE_READY;/*将定时器设置为准备好的状态*/returnHAL_OK;}可以看到,该函数通过调用Msp函数来使能模块的时钟(如有必要还会配置模块使用到的GPIO引脚),然后调用SetConfig函数来完成对底层寄存器的初始化。这点与串口的同类的通用初始化函数HAL_UA

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论