STM32F411RE TIM1输入捕获

 时间:2024-10-13 02:06:45

TIM1输入捕获的一个简单应用,基础代码是用STM32CubeMX生成的,基于STM32F411RE,实测可行。

工具/原料

STM32CubeMX

Keil

HAL基础代码配置

1、新建一个STM32CubeMX工程,切换到Pinout,展开TIM1,选择Clock Source为“Internal C造婷用痃lock”(内部时钟),使能Channel1,有图对应的引脚PA8会相应作出反应。

STM32F411RE TIM1输入捕获

2、根据规格书配置好捕获需要的滤波,以及定时器的计数周期等参数。

STM32F411RE TIM1输入捕获
STM32F411RE TIM1输入捕获

3、在“NVIC Settings”页勾选TIM1的捕获比较中断。

STM32F411RE TIM1输入捕获

4、在“GPIO Settings”配置好捕获引脚,这个在TIM1使能后会自动配置,可以保持默认。

STM32F411RE TIM1输入捕获

5、配置完毕,生成代码。

STM32F411RE TIM1输入捕获

添加自己的代码

1、打开刚刚用STM32CubeMX生成的代码:

STM32F411RE TIM1输入捕获

2、添加一个全局变量,用于保存捕获的数值,为了保证程序的可维绻栌泌氘护性,这个变量最好遵照HAL的规范定义到相应的用户庐舌垩卫区域,比如:/* USER CODE BEGIN PV *//* Private variables ---------------------------------------------------------*/uint32_t g_u32_tim1OC_data = 0/* USER CODE END PV */

STM32F411RE TIM1输入捕获

3、在进入main函数的主循环前,使能TIM1的通道1捕获中断,同样注意放到用户代码区: /* USER CODE BEGIN 2 *HAL_TIM_OC忧溲枷茫_Start_IT(&htim1, TIM_CHANNEL_1);//使能TIM1 通道1 捕获 /* USER CODE END 2 */

STM32F411RE TIM1输入捕获

4、最后在捕获中断函数中读取捕获的数据撕良滤儆值: /* USER CODE BEGIN TIM1_CC_IRQn 1 */extern uint32_t g_u32_tim1OC_datag_u32_tim1OC_data = HAL_TIM_ReadCapturedValue(&htim1, TIM_CHANNEL_1);//读取TIM1 通道1捕获 /* USER CODE END TIM1_CC_IRQn 1 */

STM32F411RE TIM1输入捕获
  • 碧蓝航线沃克兰
  • 巫师3技能加点
  • 魔兽世界110升级攻略
  • 热门搜索
    珍惜生命的手抄报 小学生科普手抄报 防震手抄报 关于大自然的手抄报 立冬手抄报 爱劳动手抄报 普通话手抄报文字内容 小学生手抄报大全 暑假生活手抄报 卫生小常识手抄报