发新帖本帖赏金 3.00元(功能说明)我要提问
返回列表
打印
[STM32F4]

【f446re开发板试用】 定时器中断翻转LED灯

[复制链接]
987|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
karaxiaoyu|  楼主 | 2015-10-6 15:27 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
首先非常感谢21IC,第一次收到官方的板子,前台通知我去拿的时候还有点小激动,拿到之后就迫不及待的拆开了,来张图先,

官方的默认程序是通过按键控制LED闪烁的频率,大概完了一下就开始上网找资料了,看到大部分资料都是使用STM32CubeMX生成的代码,使用的是HAL库,虽说都是一个思想,但还是习惯用标准库,具体建立的过程就不讲了,论坛有大神讲的非常清楚了,后面是我找到的一些资料:

STM32的通用定时器包含一个1632位的自动重载计数器,,由预分频器驱动,一般用于测量输入捕获或输出比较多一些,这里用到定时器3,有4个独立的通道。下面讲述定时器的初始化:
RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM3,ENABLE);  //定时器3挂在APB1下,首先使能时钟
之后是TIM_TimeBaseInitTypeDef结构体成员变量的设置,TIM_Prescaler用来设置分频系数,
TIM——CounterMode用来设置计数模式,有向上、向下、中央对其模式可以选择,TIM_Period用来设置自动重转载周期,然后使能定时器更新中断
TIM_ITConfig(TIM3,TIM_IT_Update,ENABLE); //允许定时器3更新中断

优先级设置为抢占优先级1,子优先级3
最后一步使能定时器3
在中断服务函数里面,通过GPIO_ToggleBits(GPIOA,GPIO_Pin_5);来翻转LED灯,基本的功能就实现了,这里溢出时间为Tout=((arr+1)*(psc+1))/定时器频率 us.
下面附上程序,也是在某大神的基础上改的,以后有时间再继续玩NUCLEO的HAL库看了视频说以后会推荐使用这个库,估计也是趋势,谢谢!
文件有点大,统一放入百度网盘
链接.zip (201 Bytes)




打赏榜单

21ic小喇叭 打赏了 3.00 元 2015-10-26

发新帖 本帖赏金 3.00元(功能说明)我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

8

主题

72

帖子

3

粉丝