打印

发现STM32的GPIO初始化部分,参考手册和函数库上不一致。

[复制链接]
3305|4
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
hugoliang|  楼主 | 2008-5-28 10:00 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
大家好!
我昨天在看STM32的GPIO部分初始化的时候,发现这么一个问题。
比如我想把某个PIN设置成上拉输入:
在参考手册上写着除了与CRL、CRH有关以外,还与ODR寄存器有关(该寄存器主要是为了体现是上拉还是下拉)
而在库函数的说明里面,只与CRL、CRH有关,我在查看原函数代码的时候,也确实看到初始化函数只操作了CRL和CRH两个寄存器。
不知道大家注意到这种情况没有?
这个地方应该怎样理解?
谢谢
沙发
香水城| | 2008-5-28 21:42 | 只看该作者

谢谢楼主的意见,我去查查

使用特权

评论回复
板凳
hugoliang|  楼主 | 2008-5-29 21:38 | 只看该作者

版主,你好!

请问,有结果了吗?谢谢

使用特权

评论回复
地板
ijk| | 2008-5-29 22:06 | 只看该作者

STM32的GPIO初始化部分,没有问题

STM32的GPIO初始化部分,没有问题;GPIO太简单了,不应该有问题:

        /* Reset the corresponding ODR bit */
        if (GPIO_InitStruct->GPIO_Mode == GPIO_Mode_IPD)
        {
          GPIOx->BRR = (((u32)0x01) << pinpos);
        }
        /* Set the corresponding ODR bit */
        if (GPIO_InitStruct->GPIO_Mode == GPIO_Mode_IPU)
        {
          GPIOx->BSRR = (((u32)0x01) << pinpos);
        }

使用特权

评论回复
5
hugoliang|  楼主 | 2008-5-30 15:58 | 只看该作者

哦,谢谢

原来是通过修改BRR和BSRR寄存器的值,来改变ODR的寄存器的。
谢谢

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

46

主题

92

帖子

0

粉丝