[汽车MCU – KEA] KEA128中的GPIO驱动程序问题

[复制链接]
2297|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

粉丝
快速回复 在线客服 返回列表 返回顶部