标题: STM32L053用HAL库配置TIM2详细教程 [打印本页]

作者: IdeaMing    时间: 2019-7-19 17:37
标题: STM32L053用HAL库配置TIM2详细教程
前言:
        ST官方没有给STM32L0系列配标准库,但是有HAL库。为了移植方便,也是为了顺应潮流吧,使用HAL库开撸。个人水平有限,如有错误,还请指正mr.li.ming@qq.com。

提示:1.使用的外部16M晶振,最大速度32MHz.
          2.使用的CubeMX版本V4.20.1,使用L0的驱动库版本1.9.0.

第一步:使用CubeMX生成初始化代码

先打开CubeMX选择STM32L053C8T6

为了测试方便,使用内部晶振。点击Clock Configuration如下图配置


然后拐回来我们设置一下TIM2, 如图选择内部时钟


同时我们做个输出检测脚,因为我的电路板上PC13接一个蓝色LED,所以做个下图的配置。



下面配置定时器

点击OK,
Internal Clock Division(CKD) 这里选No Division(选哪个都无所谓)其实仔细看过技术手册后发现这项配置跟定时器是没关系的,这句话是设置定时器时钟(CK_INT)频率与数字滤波器(ETRTIx)使用的采样频率之间的分频比例的(与输入捕获相关),0表示滤波器的频率和定时器的频率是一样的。

然后配置定时器的更新中断

把中断使能复选框选中,优先级按需选择,我选择1点击OK

生成工程的配置



选择打开工程进入下一步操作

第二步:Keil中需要的操作

打开main.c在这个位置添加启动TIM2的代码,强调一下位置是
/* USER CODE BEGIN 2 */

/* USER CODE END 2 */
这两行注释中间,CubeMX再次生成代码的时候不会删除用户代码。

这里我们找到了HAL库里中断处理回调函数的弱定义,去掉前面的__weak,复制到main.c



加上蓝色LED状态反转代码。



编译0 Error(s),0 Warning(s)


下载,重启电路板,现象是蓝灯亮了测一下蓝灯的控制脚信号,即PC13


频率484Hz的脉冲信号,理论上我们32 000 000经过32分频是1000 000,周期为1000,应该是每1ms翻转一次,由于误差,所以大概1.040ms翻转一次。基本符合要求,如果需要更精确可以适当调整。

希望对各位看官有所帮助,并能触类旁通。
使用HAL库的势在必行,多多进行尝试。

完整的pdf格式文档51黑下载地址:
STM32L053用HAL库TIM.pdf (2.08 MB, 下载次数: 61)


作者: IdeaMing    时间: 2019-7-29 15:52
是不是HAL库大家都不用
作者: 达达达    时间: 2019-8-14 10:37
感谢楼主,我用不来cubeMAX,正在学习

作者: cvi670    时间: 2019-12-25 13:42
不错的  教程谢谢
作者: vy654321    时间: 2022-6-14 16:17
为什么下载的时候跳转到错误的页面?




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1