完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
|
|
相关推荐
1个回答
|
|
3.7.1.STM32的5种定时器简介
(1)看门狗定时器(WWDG) (2)Systick定时器 (3)高级定时器(TIM1 & TIM8) (4)通用定时器(TIMx) (5)基本定时器(TIM6 & TIM7) 3.7.2.SYSTICK定时器详解1 3.7.1.1、SYSTICK定时器的作用 (1)专用于产生RTOS的系统滴答时钟 (2)可用于裸机程序中短时间精确延时函数 (3)可用作普通定时中断功能 3.7.1.2、SYSTICK定时器的数据手册 (1)24位定时器 (2)各个寄存器含义 3.7.3.SYSTICK定时器详解2 3.7.3.1、SYSTICK寄存器在标准库中的封装 (1)SysTick_CLKSourceConfig (2)SysTick_Config SysTick_Config函数配置的状况是:默认使用AHB时钟,会产生中断,中断优先级为最低,并且最末尾启动了定时器 3.7.3.2、SYSTICK定时器的2种工作模式 (1)中断方式 (2)查询方式 3.7.3.3、SYSTICK定时器的定时计算 (1)公式:重装载值 = systick时钟频率(Hz) * 想要的定时时间(S) (2)举个栗子(1ms) CNT = 72000000Hz * 0.001S = 72000 (3)查询方式和中断方式都是这样计算 3.7.4.SYSTICK定时器详解3 3.7.4.1、SYSTICK中断实现LED每隔500ms闪烁一次 开发板使用ARM3.0,接线时LED端口接P0端口,对应PB8-15,实际实验时用PB8这个LED 3.7.5.SYSTICK定时器详解4 3.7.5.1、SYSTICK查询方式实现us和ms级精确延时函数 大家要理解:查询和中断方式的差异,查询方式是阻塞式的,中断方式是非阻塞的。 void delay_us(unsigned int us) void delay_ms(unsigned int ms) 3.7.6.STM32的定时器学习要点 3.7.6.1、通用定时器和其他的区别 (1)其实最多可以有17个定时器 (2)功能差别 3.8.6.2、STM32定时器的学习要点 (1)先学会定时器基本功能的使用 (2)高级功能用到时再去细看 (3)设计本身的复杂性导致学习难度大,要有耐心 (4)很多书面概念要搞清楚,需要前后不停对照,必要时要记笔记帮助理解 (5)学习三宝:数据手册+外设库源码+例程 3.7.7.定时器的数据手册 3.7.8.定时器例程分析和编程实践 3.7.9.问题解决及PWM输出功能引入 3.7.9.1、上节遗留问题解决 cnt = 1ms * 5Khz = 0.001s*5000Hz = 5 实际测试得到的是1KHz的结果,说明前面分析有误。 计算:假设时钟是72M,则定时时间为:5/10KHz = 0.5ms,方波周期就为1KHz,对的上。 结论:APB1时钟确实是36MHz,但是APB1到定时器时钟那边时中间被乘以2了,所以又变成72MHz了。 3.7.9.2、定时器的PWM输出功能介绍 (1)通过定时器的中断,在isr中将一个GPIO引脚电平反转,可以实现PWM输出功能 (2)定时器附带专用的PWM输出功能,定时器内部和某个引脚绑定,然后定时器设置好了之后内部开始+1或者-1,然后时间到之后不是产生中断,而是直接将绑定的引脚电平反转产生PWM输出。 3.7.10.TIM2的PWM输出功能详解 3.7.10.1、专用PWM输出的实现原理 (1)所谓的比较原理,涉及3个计数有关的寄存器 (2)在输入捕获/输出比较功能中 3.7.10.2、相关的寄存器 (1)TIMxCNT、TIMxARR、TIMxCCRn (2)CCMR1、CCMR2、CCER (3)CR1、CR2、PSC 3.7.10.3、标准库中相关API (1)TIM_TimeBaseInit (2)TIM_OCnInit (3)TIM_OCnPreloadConfig (4)TIM_OCnFastConfig (5)TIM_ClearOC1Ref (6)TIM_OCnPolarityConfig 3.7.11.TIM2的专用PWM输出编程实践 3.7.12.DS18B20程序在STM32上的移植1_2 3.7.13.DS18B20程序的移植3 3.7.13.1、效果的演示 3.7.13.2、问题1:串口显示和调试 (1)必须用板载DB9串口,USB转串口不行 (2)如何又能下载程序又能让串口工作 (3)串口涉及到的模块时钟使能别忘了 3.7.13.3、DS18B20程序要点 (1)P3.7对应GPA15,默认是JTDI,需要重映射为GPIO (2)PA15输出时要配置为OD输出,才能实现双向IO 注意:STM32的GPIO要想实现双向IO,有2个条件:OD输出模式 + 外部上拉电阻 (3)原来程序中的一些用i++实现的延时,要注意用新的延时函数替换 |
|
|
|
只有小组成员才能发言,加入小组>>
调试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 07:45 , Processed in 0.744478 second(s), Total 77, Slave 61 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号