一知半解学CubeMX——TIM:定时中断实现LED闪烁
来源:互联网 发布:螃蟹 知乎 编辑:程序博客网 时间:2024/05/18 12:44
一知半解学习环境:
1、CubeMX 4.23.0
2、uVision 5.14.2
3、MCU 启明 STM32F407 开发板(高配版) V3.1
一知半解学习目标:
1、掌握CubeMX下RCC以及SYS的相关配置;
2、掌握CubeMX下GPIO的相关配置;
3、掌握CubeMX下定时器常规中断的配置;
一知半解实现过程:
1、配置系统调试接口及时基时钟源;
2、配置外部高速时钟源(HSE);
3、配置定时器参数(TIM1);
4、根据原理图配置相应GPIO引脚并修改宏定义名称;
5、配置时钟树,主频168M;
6、配置管脚默认输出状态及速率;
7、配置定时器预分频及装载值,开启定时器中断;
由于此处选择的是定时器1(TIM1),该定时器挂载在APB2总线上,因此TIM1时钟为168M。为了使LED间隔0.5S翻转,需要配置TIM1的中断时间为0.5S,为了方便计算预分频值定为 16800-1,装载值为5000-1; ((168M/16800)/5000) = 2Hz,即周期为0.5S。
8、生成工程,并添加相关程序;
首先,main.c程序中添加(放置于定时器配置之后)开启 TIM1计时中断;
/* USER CODE BEGIN 2 */
/*使能定时器1中断*/
HAL_TIM_Base_Start_IT(&htim1);
/* USER CODE END 2 */
其次,在 tim.c文件中添加定时器中断完成回调函数;
/* USER CODE BEGIN 1 */
void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim){
if (htim->Instance == TIM1){
/* Toggle LED */
HAL_GPIO_TogglePin(LED0_GPIO_Port,LED0_Pin);
HAL_GPIO_TogglePin(LED1_GPIO_Port,LED1_Pin);
HAL_GPIO_TogglePin(LED2_GPIO_Port,LED2_Pin);
}
}
/* USER CODE END 1 */
一知半解套路回顾:
1、掌握CubeMX配置的常规套路,如SYS、RCC以及时钟树的配置等;
2、掌握TIM中断开启函数的使用;
3、掌握定时器中断回调函数的使用;
阅读全文
1 0
- 一知半解学CubeMX——TIM:定时中断实现LED闪烁
- 一知半解学CubeMX——GPIO:LED
- 一知半解学CubeMX——GPIO:外部(按键)中断
- 一知半解学CubeMX——UART:空闲中断结合DMA实现不定长数据收发
- 一知半解学CubeMX——UART:Printf实现
- 一知半解学CubeMX——创建工程
- 一知半解学CubeMX——RNG:随机数发生器
- 一知半解学CubeMX——IIC:OLED屏显示
- 定时计数器实现LED交替闪烁
- 第四节:累计定时中断次数使LED灯闪烁。
- 定时器查询法和定时器中断法实现LED闪烁
- 创龙TMS320C6748开发板———Timer配置 + Timer触发中断 + GPIO控制LED闪烁
- Stm32按键中断使LED灯闪烁
- Stm32定时器中断使LED灯闪烁
- LED:利用通用定时器定时闪烁
- FPGA 降频实现led的闪烁,LED不闪烁
- 中断驱动学习与实例——定时器0中断实现led流水灯
- TimeApplication利用中断让LED每0.4秒闪烁
- Machine Learning学习笔记-概述
- javaweb前端后端通信乱码问题剖析
- FCC算法:六、找出多个数组中的最大数--Return Largest Numbers in Arrays
- python入门基础教程(一)
- git 配置
- 一知半解学CubeMX——TIM:定时中断实现LED闪烁
- eclipse 创建或导入的maven web项目常见问题汇总
- 机器学习--入门
- 获取select控件的值和文本
- 1.股票基础知识
- Tree (树上期望dp)
- 京东抢购秒杀助手—小桃子版
- 编译器在什么情况下无法产生类的四个默认函数
- 67.设计模式笔记-策略模式