HAL_TIM_Base_Start_IT

南北湖创客3个月前代码基础7


HAL_TIM_Base_Start_IT

这两个中断开启函数使用时会立即进入一次中断回调
HAL_TIM_Base_Start_IT(&htim2);//即使下一行加上HAL_TIM_Base_stop_IT也触发
base是开启定时器计数中断
HAL_TIM_IC_Start_IT(&htim1, TIM_CHANNEL_1);
ic是开启定时器输入捕获中断


  • htim:指向TIM_HandleTypeDef结构体的指针,包含了定时器的实例和配置信息。

  1. 创建一个TIM_HandleTypeDef结构体的变量。

  2. 初始化结构体的成员,特别是Instance和Init成员。

  3. 调用HAL库提供的定时器初始化函数,并将TIM_HandleTypeDef结构体的地址作为参数传入。




    tmpsmcr = htim->Instance->SMCR & TIM_SMCR_SMS;
    if (!IS_TIM_SLAVEMODE_TRIGGER_ENABLED(tmpsmcr))
    {
      __HAL_TIM_ENABLE(htim);
    }

该段代码根据定时器的类型(主定时器或从定时器)来使能定时器。

  • 如果是从定时器,会进一步判断是否处于触发模式,并根据触发模式的使能状态来决定是否使能定时器。

  • 如果是主定时器,直接使能定时器。


相关文章

延时函数(阻塞式,非阻塞式)

常规阻塞式延时:void delay_1ms(uint32_t count){    delay = count;    delay--;&...

保存现场

以下是一个简单的示例,演示了如何在函数调用过程中保存和恢复寄存器的值:#include <stdio.h>// 定义一个全局变量,用于存储寄存器的值int global_var = 0;/...

make及makefile,编译原理

1、出现*** No rule to make target ` ‘, needed by xxx. Stop.时,基本都是属于找不到所依赖的文件所导致的,查看.pro文件是否有问题。使用Eclips...

二人接力队列

二人接力队列

一般循环队列的属性如下:    elements\textit{elements}elements:一个固定大小的数组,用于保存循环队列的元素。  &...

incompatible type argument

 Error[Pe167]: argument of type "void (*)(void const *)" is incompatible with paramet...

stm32的代码和内存管理(SRAM空间)

stm32的代码和内存管理(SRAM空间)

SRAM空间1、文件中声明和定义(全局变量、静态数据和常量)从0x20000000开始,到堆的起始地址(堆是向上的)。2、HEAP区;(堆是向上的)3、STACK区。(栈是向下的)堆区(heap):一...

发表评论    

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。