完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
前言:
最近在调试STM32L152芯片的定时器功能,本文总结下STM32L152芯片基本定时器的使用方法。 硬件平台:STM32L152 软件平台:keil v5+cubeMX 函数库:HAL库 基本定时器使用方法 下面简单讲述一下STM32L152的定时器使用步骤。 1.使用CubeMX对定时器进行配置,如定时器预分频值,计数值,定时器的触发方式等。 2.下面详细解析相关的代码; TIM_HandleTypeDef htim3; void TIM3_Init(void) { TIM_ClockConfigTypeDef sClockSourceConfig; TIM_MasterConfigTypeDef sMasterConfig; htim3.Instance = TIM3; htim3.Init.Prescaler = 32000-1;//预分频值,本例使用外部8MHz,倍频后是32M,32000分频后为1kHz,预分频值为32000-1,计算公式为:CK_INT/(TIM_Perscaler+1) htim3.Init.CounterMode = TIM_COUNTERMODE_UP; //上升计数 htim3.Init.Period = 1000-1;//计数值,1kHz即计数1000为1s,本例定时1s,计数值为1000-1 htim3.Init.ClockDivision = TIM_CLOCKDIVISION_DIV1; if (HAL_TIM_Base_Init(&htim3) != HAL_OK) { _Error_Handler(__FILE__, __LINE__); } sClockSourceConfig.ClockSource = TIM_CLOCKSOURCE_INTERNAL; //设置定时器时钟为内部时钟 if (HAL_TIM_ConfigClockSource(&htim3, &sClockSourceConfig) != HAL_OK) { _Error_Handler(__FILE__, __LINE__); } sMasterConfig.MasterOutputTrigger = TIM_TRGO_RESET; sMasterConfig.MasterSlaveMode = TIM_MASTERSLAVEMODE_DISABLE; if (HAL_TIMEx_MasterConfigSynchronization(&htim3, &sMasterConfig) != HAL_OK) { _Error_Handler(__FILE__, __LINE__); } HAL_TIM_Base_Start(&htim3);//启动定时器 HAL_TIM_Base_Start_IT(&htim3);//启动定时器中断 } 定时器的时钟使能和中断优先级在文件stm32l1xx_hal_msp.c中定义; void HAL_TIM_Base_MspInit(TIM_HandleTypeDef* htim_base) { if(htim_base-》Instance==TIM3) { /* USER CODE BEGIN TIM3_MspInit 0 */ /* USER CODE END TIM3_MspInit 0 */ /* Peripheral clock enable */ __HAL_RCC_TIM3_CLK_ENABLE(); /* TIM3 interrupt Init */ HAL_NVIC_SetPriority(TIM3_IRQn, 0, 0); HAL_NVIC_EnableIRQ(TIM3_IRQn); /* USER CODE BEGIN TIM3_MspInit 1 */ /* USER CODE END TIM3_MspInit 1 */ } } 下面是定时器的中断函数,定时时间到,标志位置位: void TIM3_IRQHandler(void) { HAL_TIM_IRQHandler(&htim3); TIM3_Flag=SET; } 在主程序中添加自己定义的事情: while(1) { if(TIM3_Flag==SET) { TIM3_Flag=0;//清除标志 //添加自己定义的代码 } } |
|
|
|
只有小组成员才能发言,加入小组>>
调试STM32H750的FMC总线读写PSRAM遇到的问题求解?
1750 浏览 1 评论
X-NUCLEO-IHM08M1板文档中输出电流为15Arms,15Arms是怎么得出来的呢?
1608 浏览 1 评论
1049 浏览 2 评论
STM32F030F4 HSI时钟温度测试过不去是怎么回事?
721 浏览 2 评论
ST25R3916能否对ISO15693的标签芯片进行分区域写密码?
1665 浏览 2 评论
1924浏览 9评论
STM32仿真器是选择ST-LINK还是选择J-LINK?各有什么优势啊?
709浏览 4评论
STM32F0_TIM2输出pwm2后OLED变暗或者系统重启是怎么回事?
559浏览 3评论
583浏览 3评论
stm32cubemx生成mdk-arm v4项目文件无法打开是什么原因导致的?
544浏览 3评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-18 09:58 , Processed in 0.914688 second(s), Total 77, Slave 60 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号