OpenEdv-开源电子网

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

gpio的输入时钟设置

[复制链接]

18

主题

64

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
383
金钱
383
注册时间
2015-11-1
在线时间
49 小时
发表于 2016-5-31 15:43:33 | 显示全部楼层 |阅读模式
1金钱
gpio的设置为输入时会有时钟频率吗? 如果有怎么用寄存器设置?或者说输入的话是不用管时钟频率的?

最佳答案

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

输入的时候,没有速度设置这一说法。 你直接设置为输入即可,没有其他速度设置的寄存器了。
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165536
金钱
165536
注册时间
2010-12-1
在线时间
2117 小时
发表于 2016-5-31 15:43:34 | 显示全部楼层
输入的时候,没有速度设置这一说法。
你直接设置为输入即可,没有其他速度设置的寄存器了。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

29

主题

492

帖子

0

精华

高级会员

Rank: 4

积分
810
金钱
810
注册时间
2016-4-7
在线时间
123 小时
发表于 2016-5-31 15:46:53 | 显示全部楼层
我们都用库函数方式来设置,输入好像没有设置频率的,输出有,2MHZ,10MHZ,50MHZ的选择
回复

使用道具 举报

30

主题

1170

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1993
金钱
1993
注册时间
2016-2-16
在线时间
527 小时
发表于 2016-5-31 16:14:36 | 显示全部楼层
输入的话是不用管时钟频率的
回复

使用道具 举报

2

主题

14

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
294
金钱
294
注册时间
2016-1-11
在线时间
100 小时
发表于 2016-5-31 16:18:22 | 显示全部楼层
学习
回复

使用道具 举报

18

主题

64

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
383
金钱
383
注册时间
2015-11-1
在线时间
49 小时
 楼主| 发表于 2016-5-31 20:49:03 | 显示全部楼层
例如:设置PA0上拉输入。寄存器版:GPIOA->CHL&=0XFFFF FFF0;   GPIOA->CHL|=0X0000 0008;   GPIOA->ODR|=1<<0;(这句不应该在输出的io口上吗?)
库函数版:GPIO_InitStructure.GPIO_Pin=GPIO_Pin_0;
                 GPIO_InitStructure.GPIO_Mode=GPIO_Mode_IPU;
                 GPIO_InitStructure.GPIO_speed=GPIO_Speed_50Mhz;
                 GPIO_Init(GPIOA,&GPIO_InitStructure);
我们知道寄存器gpio_chl中是低八个io口32位寄存器,所以四位来控制一个io口的状态。cnf位控制8种状态,mode位控制速度,也只有
mode为00是才是输入的方式。
所以请教下大家!
回复

使用道具 举报

34

主题

283

帖子

0

精华

高级会员

Rank: 4

积分
739
金钱
739
注册时间
2015-11-15
在线时间
226 小时
发表于 2016-5-31 21:52:28 | 显示全部楼层
小可爱 发表于 2016-5-31 20:49
例如:设置PA0上拉输入。寄存器版:GPIOA->CHL&=0XFFFF FFF0;   GPIOA->CHL|=0X0000 0008;   GPIOA->ODR|=1

这里写ODR寄存器是来区别上拉和下拉的
你没发现上拉下拉的CHL寄存器的相应位的值是一样的吗?
我是这么理解的,不知道对不对
与其感慨路难行,不如马上出发
回复

使用道具 举报

18

主题

64

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
383
金钱
383
注册时间
2015-11-1
在线时间
49 小时
 楼主| 发表于 2016-5-31 22:12:46 | 显示全部楼层
xueshawu 发表于 2016-5-31 21:52
这里写ODR寄存器是来区别上拉和下拉的
你没发现上拉下拉的CHL寄存器的相应位的值是一样的吗?
我是这么 ...

好像有点道理。  那我想问下为什么不用IDR寄存器呢?
回复

使用道具 举报

34

主题

283

帖子

0

精华

高级会员

Rank: 4

积分
739
金钱
739
注册时间
2015-11-15
在线时间
226 小时
发表于 2016-5-31 22:52:01 | 显示全部楼层
小可爱 发表于 2016-5-31 22:12
好像有点道理。  那我想问下为什么不用IDR寄存器呢?

IDR寄存器是只读的啊,而且IDR只是记录IO的电平的状态
与其感慨路难行,不如马上出发
回复

使用道具 举报

18

主题

64

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
383
金钱
383
注册时间
2015-11-1
在线时间
49 小时
 楼主| 发表于 2016-5-31 23:25:21 | 显示全部楼层
xueshawu 发表于 2016-5-31 22:52
IDR寄存器是只读的啊,而且IDR只是记录IO的电平的状态

对的,你说的有道理,IDR是只读,只能是16位的形式读出。ODR是可读可写的,并且也是16位操作!但是ODR的操作我不是很理解,什么时候是读,什么时候是写呢?
回复

使用道具 举报

34

主题

283

帖子

0

精华

高级会员

Rank: 4

积分
739
金钱
739
注册时间
2015-11-15
在线时间
226 小时
发表于 2016-6-1 07:53:42 | 显示全部楼层
小可爱 发表于 2016-5-31 23:25
对的,你说的有道理,IDR是只读,只能是16位的形式读出。ODR是可读可写的,并且也是16位操作!但是ODR的 ...

比如x=GPIOA->ODR;z这样就是读操作;
GPIOA->&=0xfff0f,这样就是写操作;
与其感慨路难行,不如马上出发
回复

使用道具 举报

34

主题

283

帖子

0

精华

高级会员

Rank: 4

积分
739
金钱
739
注册时间
2015-11-15
在线时间
226 小时
发表于 2016-6-1 07:56:37 | 显示全部楼层
而且手册上是这么规定区别上下拉输入的,看图
a.gif
与其感慨路难行,不如马上出发
回复

使用道具 举报

34

主题

283

帖子

0

精华

高级会员

Rank: 4

积分
739
金钱
739
注册时间
2015-11-15
在线时间
226 小时
发表于 2016-6-1 07:57:39 | 显示全部楼层
xueshawu 发表于 2016-6-1 07:56
而且手册上是这么规定区别上下拉输入的,看图

英文手册161页
与其感慨路难行,不如马上出发
回复

使用道具 举报

34

主题

283

帖子

0

精华

高级会员

Rank: 4

积分
739
金钱
739
注册时间
2015-11-15
在线时间
226 小时
发表于 2016-6-1 07:58:39 | 显示全部楼层

中文手册106页
与其感慨路难行,不如马上出发
回复

使用道具 举报

18

主题

64

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
383
金钱
383
注册时间
2015-11-1
在线时间
49 小时
 楼主| 发表于 2016-6-1 11:59:16 | 显示全部楼层
xueshawu 发表于 2016-6-1 07:56
而且手册上是这么规定区别上下拉输入的,看图

了解了,但是我还是想问下,对于io口的输入是不需要有频率的,但是库函数版的频率设置是怎么个意思? 到时候编译不是还是翻译成寄存器吗? 还是直接忽略输入频率的写入?
回复

使用道具 举报

30

主题

1170

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1993
金钱
1993
注册时间
2016-2-16
在线时间
527 小时
发表于 2016-6-1 12:10:33 | 显示全部楼层
本帖最后由 憨厚诚实大叔 于 2016-6-1 12:13 编辑
小可爱 发表于 2016-6-1 11:59
了解了,但是我还是想问下,对于io口的输入是不需要有频率的,但是库函数版的频率设置是怎么个意思? 到 ...

你设置成输入,他会忽略无视你设定的频率,同理,你设置成输出后,他就无视你的上下拉设置。
我在F0操作模拟IIC的时候,都是把这些按照他输入输出的改好了,到时直接改IO口的模式设置就好了,而不用重新改输入输出的具体设置
不过F1的不能这样,要 重新配置一遍好像
回复

使用道具 举报

18

主题

64

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
383
金钱
383
注册时间
2015-11-1
在线时间
49 小时
 楼主| 发表于 2016-6-2 09:37:30 | 显示全部楼层
嗯,我知道了,我问的是在库函数上面写了话是不是没有什么本质意义?就是形同虚设?
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-6-10 00:02

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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