历史上的今天
今天是:2025年06月18日(星期三)
2018年06月18日 | 一知半解学CubeMX——TIM:定时中断实现LED闪烁
2018-06-18 来源:eefocus
一知半解学习环境:
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、掌握定时器中断回调函数的使用;
史海拾趣
|
高手进来指导下:关于MC33996和MC33993的开关量输入和开关量输出电路的设计及程序 各位大虾。。小弟刚接手设计一个用MC9S08DZ60与MC33993和MC33996设计一个开关量输入输出的电路,想请你们指导下电路及程序,请设计过这个电路的高手指导下。谢谢哈。····· … 查看全部问答> |
|
北京时间2011年3月11日下午14时46分左右,日本东北地区宫城县北部发生里氏8.8级特大地震。震中位于日本本州岛仙台港以东130公里处。此地震对日本国宫城县、岩手县、枥木县、福岛县、茨城县、山形县等地造成强烈伤害。由于宫城县、岩手县、枥木县 ...… 查看全部问答> |
|
网上找的,写程序时快速查找相关寄存器,配合《stm32不完全手册》直接寄存器操作代码,对stm32入门很有帮助 [ 本帖最后由 xujibicool 于 2012-9-9 01:06 编辑 ]… 查看全部问答> |




