打印
[汽车MCU – KEA]

KEA128中的GPIO驱动程序问题

[复制链接]
1852|8
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
一直往北走|  楼主 | 2014-11-14 11:13 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
#define XCONFIG_PIN_AS_GPIO(port,register_number,mode)   (mode == 0) ? (GPIO##port##_PDDR |= 0 << register_number) : (GPIO##port##_PDDR |= 1 << register_number)
这个宏定义函数中  如果端口为输入口(GPIO##port##_PDDR |= 0 << register_number) 这个地方是否有问题,因为把端口值与0相或不会改变状态啊?

相关帖子

沙发
FSL_FAE_STEVE| | 2014-11-14 11:17 | 只看该作者
楼主你好,这里的话是提供了一个模式选择,当模式mode为0时,PDDR相应的位与0相或,也就是不改变原值,当模式mode为1时,PDDR相应的位与1相或,也就是将值置为1 。

使用特权

评论回复
板凳
一直往北走|  楼主 | 2014-11-14 11:25 | 只看该作者
FSL_FAE_STEVE 发表于 2014-11-14 11:17
楼主你好,这里的话是提供了一个模式选择,当模式mode为0时,PDDR相应的位与0相或,也就是不改变原值,当模 ...

你好!当mode为0时相应端口因为输入端口,其方向寄存器相应位的值应该是0才对,这里如果与0相或的话,不是不会改变端口寄存器的值吗,我觉应该是相应位同0相与才对,是不是?

使用特权

评论回复
地板
FSL_FAE_STEVE| | 2014-11-14 13:24 | 只看该作者
一直往北走 发表于 2014-11-14 11:25
你好!当mode为0时相应端口因为输入端口,其方向寄存器相应位的值应该是0才对,这里如果与0相或的话,不 ...

是的,楼主考虑的很仔细,最好的办法是改成与0相与,默认情况下复位之后的寄存器值为0,但是如果被改动为1,使用该函数是无法设置为输入模式的。

使用特权

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

本版积分规则

15

主题

56

帖子

0

粉丝