OpenEdv-开源电子网

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

关于stm32f103系列GPIO工作模式设置问题,很是不解,求大神指点。

[复制链接]

20

主题

69

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
5486
金钱
5486
注册时间
2018-3-25
在线时间
16 小时
发表于 2019-8-21 19:12:48 | 显示全部楼层 |阅读模式
50金钱
本帖最后由 时间继电器 于 2019-8-21 19:15 编辑

在使用STM32F103芯片的时,首先要对GPIO进行初始化设置工作模式。使用的是标准库编程,今天深扒了一下固件库函数,发现有一个地方很是不解,不懂固件库在定义引脚工作模式的时候为什么要进行如下定义:
从固件库得到引脚工作模式分别定义如下:
12.jpg
然后在引脚初始化函数中调用以上数据,进行工作模式设置,
13.jpg
从上面的程序中可以看出,固件库获得GPIO_Mode参数后进行了与运算


currentmode = ((uint32_t)GPIO_InitStruct->GPIO_Mode) & ((uint32_t)0x0F);
比如说GPIO_Mode此时为GPIO_Mode_IPD = 0x28,那么执行上面的与运算后数据是0x08,也就是二进制的1000,通过引脚寄存器可以得知一个引脚的设置只需要四位二进制即可,
14.jpg
那为什么固件库中还定义↓
15.jpg
按理说只需要定义低4位即可,固件库中听过与运算也把高四位丢弃了。求大神解释。。。。。。。。。。。




最佳答案

查看完整内容[请看2#楼]

你看函数就看完整啊 下面明明立马就用到高四位
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

7

主题

175

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1327
金钱
1327
注册时间
2019-7-11
在线时间
165 小时
发表于 2019-8-21 19:12:49 | 显示全部楼层
你看函数就看完整啊
下面明明立马就用到高四位
世界和平
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165536
金钱
165536
注册时间
2010-12-1
在线时间
2117 小时
发表于 2019-8-22 02:34:08 | 显示全部楼层
可能其他库函数需要用到相关位,这个你全局搜索下吧。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-6-9 14:35

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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