完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
STM32通用定时器
如下事件发生时产生中断/DMA(6个独立的IRQ/DMA请求生成器): 更新:计数器向上溢出/向下溢出,计数器初始化(通过软件或者内部/外部触发) 触发事件(计数器启动、停止、初始化或者由内部/外部触发计数) 输入捕获 输出比较 支持针对定位的增量(正交)编码器和霍尔传感器电路 触发输入作为外部时钟或者按周期的电流管理 STM32 的通用定时器可以被用于:测量输入信号的脉冲长度(输入捕获)或者产生输出波形(输出比较和 PWM)等。 使用定时器预分频器和 RCC 时钟控制器预分频器,脉冲长度和波形周期可以在几个微秒到几个毫秒间调整。STM32 的每个通用定时器都是完全独立的,没有互相共享的任何资源。 ——————**正点原子资料** STM32通用定时器时间计算 1MHz=1000KHz=1000000Hz=1us 1000Hz=1ms Tout = ((arr+1)*(psc+1))/Tclk arr:重装载值 psc:预分频系数 例如:arr=1000-1 psc=8400-1 Tclk=84MHz Tout=10008400/84 =1000100KHz=1000*10us=100ms 100KHz=1/100000 s=10us 使用STM32cubemx配置通用定时器 一、新建工程 1、打开STM32cubemx 点击ACCESS TO MCU SELECTOR 2、选择对应的开发板型号(我的开发板为F407ZG) 二、配置 1、配置RCC 2、配置CLock TIM3定时器的时钟来源于APB1和一个倍频器 时钟频率为84MHz 3、配置GPIO(PF9),LED 选择GPIO_Output 4、配置TIM3 (1)点击Timers,选择TIM3 在Clock Source中选择 Internal Clock (2)配置预分频系数、计数模式、重装载值和分频系数 这里定时时间为100ms,不分频 (3)配置TIM3的中断(NVIC) 在主界面选择NVIC 配置TIM3 global interrupt 三、输出代码 点击Project Manager 输出工程 三、添加自定义代码 1、选择对应的开发板型号 2、重写回调函数 在 /* USER CODE BEGIN 4 */ /* USER CODE END 4 */ 插入 //TIM3的更新时间回调函数 void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim) { if(htim-》Instance == htim3.Instance) HAL_GPIO_TogglePin(GPIOF,GPIO_PIN_9);//改变PF9的电平 } 在主函数while前面加入 HAL_TIM_Base_Start_IT(&htim3);//开启定时器3的中断 编译并烧到开发班中,LED等会100ms变换一次状态 注:__weak,常见于定义函数,在MDK ARM链接时优先链接定义为非weak的函数或变量,如果找不到则再链接weak函数,并且编译器不会报错。 |
|
|
|
只有小组成员才能发言,加入小组>>
调试STM32H750的FMC总线读写PSRAM遇到的问题求解?
1760 浏览 1 评论
X-NUCLEO-IHM08M1板文档中输出电流为15Arms,15Arms是怎么得出来的呢?
1613 浏览 1 评论
1058 浏览 2 评论
STM32F030F4 HSI时钟温度测试过不去是怎么回事?
721 浏览 2 评论
ST25R3916能否对ISO15693的标签芯片进行分区域写密码?
1670 浏览 2 评论
1932浏览 9评论
STM32仿真器是选择ST-LINK还是选择J-LINK?各有什么优势啊?
724浏览 4评论
STM32F0_TIM2输出pwm2后OLED变暗或者系统重启是怎么回事?
564浏览 3评论
590浏览 3评论
stm32cubemx生成mdk-arm v4项目文件无法打开是什么原因导致的?
548浏览 3评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-20 14:10 , Processed in 0.905349 second(s), Total 78, Slave 62 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号