历史上的今天
今天是:2025年02月18日(星期二)
2019年02月18日 | STM32F429IGT6寄存器映射点亮LED灯
2019-02-18 来源:eefocus
原理图如下(以PH10引脚的连接的LED灯为例)

我们只需要给PH10引脚一个低电平,那么LED即可点亮。
内部GPIO原理图如图所示,红色箭头即为GPIO输出方向,只要给置位/复位寄存器写数据数据就会传到输出数据寄存器(或者直接给输出数据寄存器赋值),经过推挽输出电路然后输出高低电平。

首先配置与PH10引脚有关的寄存器(寄存器映射)
通过查阅stm43f4的参考手册,相关寄存器映射如下(下面会讲到每个寄存器都是什么功能)

接下来按照如下顺序配置相关寄存器
1. GPIO 模式
首先我们把连接到 LED 灯的 PH10引脚配置成输出模式,即配置 GPIO 的 MODER寄存器,MODER中包含 0-15 号引脚,每个引脚占用 2个寄存器位。这两个寄存器位设置成“01”时即为 GPIO的输出模式。

2. 输出类型
GPIO输出有推挽和开漏两种类型,我们了解到开漏类型不能直接输出高电平,要输出高电平还要在芯片外部接上拉电阻,不符合我们的硬件设计,所以我们直接使用推挽模式。配置 OTYPER寄存中的 OTYPER10寄存器位,该位设置为 0时 PH10引脚即为推挽模式。


3. 输出速度
GPIO引脚的输出速度是引脚支持高低电平切换的最高频率,本实验可以随便设置。此处我们配置 OSPEEDR 寄存器中的寄存器位 OSPEEDR10即可控制 PH10的输出速度。

4. 上/下拉模式
当 GPIO 引脚用于输入时,引脚的上/下拉模式可以控制引脚的默认状态。但现在我们的 GPIO 引脚用于输出,引脚受 ODR寄存器影响,ODR寄存器对应引脚位初始初始化后默认值为 0,引脚输出低电平,所以这时我们配置上/下拉模式都不会影响引脚电平状态。但因此处上拉能小幅提高电流输出能力,我们配置它为上拉模式,即配置 PUPDR寄存器的 PUPDR10 位,设置为二进制值“01”。


5. 控制引脚输出电平
在输出模式时,对 BSRR寄存器或ODR 寄存器写入参数即可控制引脚的电平状态。

6. 开启外设时钟
设置完 GPIO的引脚,控制电平输出,以为现在总算可以点亮 LED 了吧,其实还差最后一步。
在《STM32芯片架构》的外设章节中提到 STM32 外设很多,为了降低功耗,每个外设都对应着一个时钟,在芯片刚上电的时候这些时钟都是被关闭的,如果想要外设工作,必须把相应的时钟打开。
STM32 的所有外设的时钟由一个专门的外设来管理,叫 RCC(reset and clockcontrol),RCC 在《 STM32 中文参考手册》的第六章。所有的 GPIO都挂载到 AHB1 总线上,所以它们的时钟由 AHB1外设时钟使能寄存器(RCC_AHB1ENR)来控制,其中 GPIOH 端口的时钟由该寄存器的位 7 写 1 使能,开启GPIOH端口时钟。
具体代码实现如下

上一篇:如何新建stm32固件库工程
史海拾趣
|
SAA7113的LLC应该是每个像素点的同步信号,请问SAA7113的LLC输出的信号是方波还是其他什么波形?我用的时候,出来的波形是锯齿波,感觉不对?有谁用过,帮我确认一下!… 查看全部问答> |
|
Symbian开发内容介绍热线:010-51292078 021-51875830 0755-61280252 传真:021-62450161 010-62475416业务手机:15921673576曙海培训网站:http://www.51qianru.cn曙海培训曙海培训pads培训Cadence培训Allegro培训<a href=\" ...… 查看全部问答> |
|
谈小功率开关电源设计方面的几点总结1帖 wjjzqy团长 1319三2010-07-08 18:26 小功率开关电源的设计多要求交流全范围工作,一般常见于大功率电源或家用电器的辅助电源,工控电源的5VSB输出部分,PLC控制的供电部分,独立的小功率模块电 ...… 查看全部问答> |
|
俺要把一个跑在Windows CE(ARM)上的程序移植到Windows CE(MIPS)上去。 现在已经可以编译链接成功了,但是在Windows CE(MIPS)上一执行exe文件就报错,错误是“找不到($俺的程序名)或它的某一个组件。请确认路径和文件名正确并且所需要的库全部可用 ...… 查看全部问答> |
|
想找omnivision的图像传感器,但是代理商都要求很大的批量才行,我只需要几片,该怎么办呀? 在学校,做东西的时候需要几片CMOS图像传感器,现在选定的是omnivision的ov7740,找了很多代理商,但是都要求要一个包装的才能订货,也就是1700片左右,我的天啊,我哪里能承受地起,现在我该怎么办呢? 之前选定的是cypress赛普拉斯的CMOS图像传 ...… 查看全部问答> |
|
wince5.0 nk.bin大于32M不能保存到NANDFLASH,因为进入CE后后面的32M被格式化了(NANDFLASH总共64M),请问怎么才能保存更大的NK.BIN?我想从48M的位置开始格式化,怎么才能做到?… 查看全部问答> |




