OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 2448|回复: 3

新手请教一下GPIO端口模式配置问题

[复制链接]

1

主题

3

帖子

0

精华

新手上路

积分
45
金钱
45
注册时间
2019-7-11
在线时间
9 小时
发表于 2019-11-30 16:04:24 | 显示全部楼层 |阅读模式
1金钱
typedef enum
{ GPIO_Mode_AIN = 0x0,
  GPIO_Mode_IN_FLOATING = 0x04,
  GPIO_Mode_IPD = 0x28,
  GPIO_Mode_IPU = 0x48,
  GPIO_Mode_Out_OD = 0x14,
  GPIO_Mode_Out_PP = 0x10,
  GPIO_Mode_AF_OD = 0x1C,
  GPIO_Mode_AF_PP = 0x18
}GPIOMode_TypeDef;

想知道这里面的赋值是怎么实现设置模式的? CRH、CRL寄存器的话不应该是4位设置一个端口位吗? 这里为什么是8位?  

百度很久都没找到相关的 所以来这发帖请求大神的帮助

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

33

主题

1628

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
6666
金钱
6666
注册时间
2015-8-25
在线时间
1035 小时
发表于 2019-11-30 19:21:22 | 显示全部楼层
这些数据写成二进制看看,0x28 =101000,用的时候只是取其中的四个有效bit位
回复

使用道具 举报

0

主题

3

帖子

0

精华

新手入门

积分
6
金钱
6
注册时间
2019-12-1
在线时间
1 小时
发表于 2019-12-1 16:10:07 | 显示全部楼层
szczyb1314 发表于 2019-11-30 19:21
这些数据写成二进制看看,0x28 =101000,用的时候只是取其中的四个有效bit位

高4位拿来做什么用的?
回复

使用道具 举报

28

主题

294

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1790
金钱
1790
注册时间
2018-3-26
在线时间
294 小时
发表于 2019-12-2 09:13:51 | 显示全部楼层
  1. typedef enum
  2. {
  3.         GPIO_Mode_AIN = 0x0,                                //模拟输入
  4.         GPIO_Mode_IN_FLOATING = 0x04,                //浮空输入
  5.         GPIO_Mode_IPD = 0x28,                                //下拉输入
  6.         GPIO_Mode_IPU = 0x48,                                //上拉输入
  7.         GPIO_Mode_Out_OD = 0x14,                        //开漏输出
  8.         GPIO_Mode_Out_PP = 0x10,                        //推挽输出
  9.         GPIO_Mode_AF_OD = 0x1C,                                //复用开漏输出
  10.         GPIO_Mode_AF_PP = 0x18                                //复用推挽输出
  11. }GPIOMode_TypeDef;
复制代码



看怎么设置,就看懂这个GPIO_Init 函数,里面操作了几个寄存器,对照手册一看操作了那些位 就懂了
茵茵猪头
回复

使用道具 举报

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

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-5-24 06:16

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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