完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
1.时钟配置
时钟配置如下图,可以看到APB1总线时钟频率为36M,但定时器频率为72MHz. 2.定时器选项配置 定时器定时频率=时钟源频率/ [(PSC+1)(ARR+1)]=72M/[(71+1)(999+1)]=1000Hz,所以定时的时间为1ms. 定时相同的时间,PSC和ARR的值可以任意,但是注意PSC和ARR都是16位寄存器,最大值不超过65535. 定时器有如下三种计数模式: 递增计数模式:计数器从 0 计数到自动重载值,然后重新从 0 开始计数并生成计数器上溢事件。 递减计数模式:计数器从自动重载值开始递减到 0,然后重新从自动重载值开始计数并生成计数器下溢事件。 中心对齐模式:计数器从 0 开始计数到自动重载值 – 1 ,生成计数器上溢事件;然后从自动重载值开始向下计数到 1 并生成计数器下溢事件。之后从0 开始重新计数。 默认向上计数,由自动重转载值计数到最大值产生溢出。其他配置采用默认值。 3.定时器中断 点击NVIC中断管理,勾选定时器1更新中断,产生溢出时会跳转到中断服务函数。此处开启定时器1中断后还可配置中断优先级,可采用默认配置,也可自行配置。 4.GPIO配置 为显示定时效果,使LED每0.5s闪烁一次,因此还需初始化IO口输出。 我的开发板PB0与LED相连,将PB0设置为输出模式,并且将标签设置为LED0,方便移植修改。其他默认:初始化低电平,推挽输出,既不上拉也不下拉,低速。 5.工程选项配置 .编写业务代码 生成keil工程后打开,因为初始化的工j经由CubeMX配置好,接下来的步骤: 1)启动定时器 函数原型: HAL_StatusTypeDef HAL_TIM_Base_Start_IT(TIM_HandleTypeDef *htim) 2)中断回调函数编写 首先定义一个计数变量Tim1_cnt,定时器定时时间1ms,计数500次即达到定时0.5s的目的。 每次进入回调函数使Tim1_cnt+1,当定时0.5s时,翻转LED0状态。 void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim){ if (htim->Instance == htim1.Instance) { Tim1_cnt++; if(Tim1_cnt==500){ Tim1_cnt=0; HAL_GPIO_TogglePin(LED0_GPIO_Port, LED0_Pin); } } } 7.编译下载,默认使用ST-LINK下载,若使用其他下载器,需选择对应的下载方式。 |
|
|
|
只有小组成员才能发言,加入小组>>
调试STM32H750的FMC总线读写PSRAM遇到的问题求解?
1792 浏览 1 评论
X-NUCLEO-IHM08M1板文档中输出电流为15Arms,15Arms是怎么得出来的呢?
1626 浏览 1 评论
1094 浏览 2 评论
STM32F030F4 HSI时钟温度测试过不去是怎么回事?
732 浏览 2 评论
ST25R3916能否对ISO15693的标签芯片进行分区域写密码?
1682 浏览 2 评论
1943浏览 9评论
STM32仿真器是选择ST-LINK还是选择J-LINK?各有什么优势啊?
740浏览 4评论
STM32F0_TIM2输出pwm2后OLED变暗或者系统重启是怎么回事?
577浏览 3评论
600浏览 3评论
stm32cubemx生成mdk-arm v4项目文件无法打开是什么原因导致的?
562浏览 3评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-26 01:38 , Processed in 0.564785 second(s), Total 44, Slave 39 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号