找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 5420|回复: 4
收起左侧

STM32L053用HAL库配置TIM2详细教程

[复制链接]
ID:276663 发表于 2019-7-19 17:37 | 显示全部楼层 |阅读模式
前言:
        ST官方没有给STM32L0系列配标准库,但是有HAL库。为了移植方便,也是为了顺应潮流吧,使用HAL库开撸。个人水平有限,如有错误,还请指正mr.li.ming@qq.com。

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

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

先打开CubeMX选择STM32L053C8T6

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

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

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

4.png

下面配置定时器
5.png

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

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

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

生成工程的配置
7.png


8.png

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

第二步:Keil中需要的操作
9.png

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

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

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

11.png

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

12.png

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


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

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

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

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

评分

参与人数 1黑币 +100 收起 理由
admin + 100 共享资料的黑币奖励!

查看全部评分

回复

使用道具 举报

ID:276663 发表于 2019-7-29 15:52 | 显示全部楼层
是不是HAL库大家都不用
回复

使用道具 举报

ID:381818 发表于 2019-8-14 10:37 | 显示全部楼层
感谢楼主,我用不来cubeMAX,正在学习
回复

使用道具 举报

ID:59609 发表于 2019-12-25 13:42 | 显示全部楼层
不错的  教程谢谢
回复

使用道具 举报

ID:107799 发表于 2022-6-14 16:17 | 显示全部楼层
为什么下载的时候跳转到错误的页面?
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表