野火电子论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 2060|回复: 1

gpio初始化函数

[复制链接]
发表于 2023-5-17 10:15:04 来自手机 | 显示全部楼层 |阅读模式
为什么要这样计算引脚号啊?不能直接用吗,不懂这两句话是干什么的?
IMG_20230517_000545.jpg
回复

使用道具 举报

发表于 2023-5-18 08:36:25 | 显示全部楼层
1. 先取得 GPIO_Mode 的值,判断 bit4 是 1 还是 0 来判断是输出还是输入。如果是输出则设置
输出速率,即加上 GPIO_Speed 的值,输入没有速率之说,不用设置。
2. 配置 CRL 寄存器。通过 GPIO_Pin 的值计算出具体需要初始化哪个引脚,算出后,然后把
需要配置的值写入到 CRL 寄存器中,具体分析见代码注释。这里有一个比较有趣的是上/下
拉输入并不是直接通过配置某一个寄存器来实现的,而是通过写 BSRR 或者 BRR 寄存器来
实现。这让很多只看手册没看固件库底层源码的人摸不着头脑,因为手册的寄存器说明中
没有明确的指出如何配置上拉/下拉,具体见图上拉 _ 下拉寄存器说明 。
3. 配置 CRH 寄存器过程同 CRL。
野火论坛202305180834349725..png
回复 支持 反对

使用道具 举报

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

本版积分规则

联系站长|手机版|野火电子官网|野火淘宝店铺|野火电子论坛 ( 粤ICP备14069197号 ) 大学生ARM嵌入式2群

GMT+8, 2024-4-24 15:22 , Processed in 0.046475 second(s), 27 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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