多语言展示
当前在线:589今日阅读:183今日分享:45

NUCLEO-F411RE定时器实现LD3闪亮

NUCLEO-F411RE开发板有3个LED,其中F411RE可以控制的是LD2,而LD3在PCB上可以通过设置不同的电阻连接配置到不同的端口,这里以默认的SB42电阻为例,即用PA5控制。
工具/原料
1

STM32CubeMX

2

Keil

方法/步骤
1

从官网下载NUCLEO-F411RE,找到MB1136.pdf。

2

MB1136就是NUCLEO-F411RE的原理图总图,在第三页可以看到开发板芯片的原理图。找到LD2,可以看到它有好几个端口连接了,但是每一个端口都通过电阻隔开了,我的开发板连接了SB42,而SB29是断开的,所以可以通过PA5控制它。

3

使用STM32CubeMX生成一个STM32F411RE的工程,同时记得使能定时器TIM1。接着打开工程,定义一个GPIO_PinState变量,用于保存PA5的端口状态。

4

在void TIM1_UP_TIM10_IRQHandler(void)中断函数中增加一段小代码,用于操作pc8_flag,即pc8_flag的状态会按设定的定时周期翻转。

5

添加GPIO_Init函数,对PA5端口进行初始化,配置为输出模式,记得开启时钟。

6

添加static void MX_TIM1_Init(void)初始化TIM1,不要忘记开启更新中断,这个函数需要在while(1)循环前调用。

7

在main函数进入主循环前调用配置函数,然后再while(1)循环的用户代码区域添加对PA5端口的写操作,即将pc8_flag写到PA5,而pc8_flag的状态是在TIM1更新中断中操作的。

8

在贴一个时钟初始化的函数,这个其实是STM32CubeMX自动生成的,这里使用了16M的内部时钟,不适用PLL也不分频。

注意事项
1

1、实例中使用的是内部16M时钟,而且没有分频,如果采用的不是这个配置那么需要更改下TIM1的配置参数。

2

2、使用任何一个外设都要保证相应的时钟已经开启了。

3

3、注意LD2端口在PCB上实际的控制端口,最简单就是看相应的电阻怎么焊接的。

推荐信息