大型网站开发经典框架,seo网站优化推广,视频素材交易网站建设,关键字有哪些title: HAL-Cubemax定时器使用记录 tags:
STM32HalCubemax 文章目录 HAL-Cubemax定时器使用记录分享一种思路1.创建一个ms(毫秒)级延时中断2.创建计数的变量3.在需要延时的函数中对变量阈值进行判断4.验证实例--完整使用记录代码 问题往期内容基础库HAL cubemax VSCODE GCC …
title: HAL-Cubemax定时器使用记录 tags:
STM32HalCubemax 文章目录 HAL-Cubemax定时器使用记录分享一种思路1.创建一个ms(毫秒)级延时中断2.创建计数的变量3.在需要延时的函数中对变量阈值进行判断4.验证实例--完整使用记录代码 问题往期内容基础库HAL cubemax VSCODE GCC HAL-Cubemax定时器使用记录 我们有些程序在执行或者和下位几交互的过程中可能会出现下位机硬性规定需要等待多少秒的情况然而我们的程序又必须得执行下去这样会造成单片机大量资源出现过度浪费的情况解决这种问题的办法有很多。
分享一种思路
1.创建一个ms(毫秒)级延时中断
2.创建计数的变量
3.在需要延时的函数中对变量阈值进行判断
4.验证实例–完整使用记录代码
Cubemax创建一个ms定时器很简单这里不赘述附上参考链接
STM32CubeMX学习笔记5——基本定时器接口使用
uint32_t time 0;
extern uint32_t time;
void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim){if(htim-Instance TIM7) // 定时器6基地址{ // 自定义应用程序 time; // 每1ms进来1次}}
业务逻辑 while (1){/* USER CODE END WHILE *//* USER CODE BEGIN 3 */ if(time 1000) // 每1秒LED灯翻转一次 { HAL_GPIO_TogglePin(LED_G_GPIO_Port,LED_G_Pin); time 0; }}这样就能做到每秒触发一次少占用资源了
问题
if(time 1000)
这里我们是让它到达1000ms时 就触发业务函数 如若单业务逻辑比较多时
此时到达1000ms 时 if 来不及判断 那么 这个函数永远没有执行 那么 这种情况如何处理
如果是换成if(time 1000)
又那么超过了多少个ms呢
往期内容
基础库
01VScode开发stm32环境搭建
02点亮一个LED
03按键控制LED
HAL cubemax VSCODE GCC
HAL PWM 配置 占空比 频率
HAL-DMA中断空闲接受不定长数据
HAL-按键-MultiButton使用记录