打印
[STM32]

【解答】stm32点亮led的问题1:实现led灯闪烁

[复制链接]
1834|1
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
STM32李工|  楼主 | 2014-8-14 13:59 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
led灯闪烁实验的讲解部分了。在固件库中,GPIO 端口操作对应的库函数函数以及相关定义在文件stm32f0xx_gpio.h 和 stm32f0xx_gpio.c 中。STM32 的 IO 口相比 51 而言要复杂得多,所以使用起来也困难很多。

    在配置IO口之前我们需要先使能IO口的时钟,其实现的函数为:
IO 口可以配置为 4 种模式:输入模式,输出模式,复用模式,模拟通道模式。由于 stm32f051 系列多数的 IO 关键复用了其外设功能,比如I2C,SPI,UART 等,此时就可以设置 IO 口为复用模式。模拟通道则作为AD,DA 的时候使用:
如果大家使用库函数编程的时候,可以在 stm32f0xx_gpio.h 文件中找到设置 IO 模式的结构体 GPIOMode_TypeDef :

这里我们点亮一个小灯需要将IO口设置成输出模式,而输出模式有两种,开漏输出和推挽输出。在 stm32f0xx_gpio.h 文件中找到设置输出模式的结构体 GPIOOType_TypeDef :

同时我们可以设置 IO 端口输出的速度,在库函数中通过结构体来解决:


对于IO端口的配置,我们通过函数GPIO_Init()来完成上述对IO口的配置,此函数的原型如下所示:(略)

其中GPIOx是需要配置的端口,GPIO_InitStruct是需要配置的端口的结构体:原型如下:

从结构体里可以看出,对IO口的初始化配置里包括了上述对IO口的模式,输出类型以及输出速率的配置。
最后我们对IO口的引脚拉高或者拉低,便可以实现led灯的闪烁了,其实现的函数分别为:

GPIO 相关的函数我们先讲解到这里。虽然 IO 操作步骤很简单,这里我们还是做个概括性的总结,操作步骤为:
1) 使能 IO 口时钟。调用函数为 RCC_APB2PeriphClockCmd()。
2) 初始化 IO 参数。调用函数 GPIO_Init();
3) 操作 IO。操作 IO 的方法就是上面我们讲解的方法。

相关帖子

沙发
acetuo| | 2020-10-14 00:34 | 只看该作者
做成一个函数,可以直接调用

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

8

主题

10

帖子

1

粉丝