isakura 发表于 2015-9-21 10:36:43

GPIOx_PDOR 与 GPIOx_PSOR GPIOx_PCOR有什么区别?

从使用功能来看,GPIOx_PDOR 完全涵盖了GPIOx_PSOR GPIOx_PCOR 的作用;
而且GPIOx_PDOR还更多功能,能够读取输出状态,那   GPIOx_PSOR GPIOx_PCOR 的作用是什么?

isakura 发表于 2015-9-21 10:41:28

看到一句话,
GPIOx_PSOR GPIOx_PCOR 的处理效率更高更快

不知道是不是这个原因

isakura 发表于 2015-9-21 10:43:20

还没看懂 IOPORT接口是怎么用的,

FSL_TICS_ZJJ 发表于 2015-9-21 14:49:33

PSOR就如RM上面说的,是写1置位对应IO寄存器,PCOR就是写1清除对应IO寄存器。

FSL_TICS_ZJJ 发表于 2015-9-21 14:50:00

isakura 发表于 2015-9-21 10:43
还没看懂 IOPORT接口是怎么用的,

你用的什么芯片,kinetis吗?
找些官方代码看看就知道了。

security 发表于 2015-9-21 15:11:25

isakura 发表于 2015-9-21 10:41
看到一句话,
GPIOx_PSOR GPIOx_PCOR 的处理效率更高更快



只调整部分BIT的情况,使用GPIOx_PDOR的话,就要使用经典的逻辑:read-modify-write
使用GPIOx_PSOR GPIOx_PCOR,只需将对应的BIT置1,其他不相关BIT置0,即可,就可以实现对应的BIT置高或置低,而对于其他位,不受任何影响,。

Lu.Shi 发表于 2015-9-21 17:06:15

看了下手册,貌似GPIOx_PSOR置1,在GPIOx_PDOR相应位也置1,GPIOx_PSOR置0,不操作;GPIOx_PCOR置1,在GPIOx_PDOR相应位清0,GPIOx_PCOR置0,不操作;
突然间有点想不通,用户直接操作GPIOx_PDOR置1或置0不就完事了,为什么还要多出这两个寄存器??

security 发表于 2015-9-21 17:15:58

Lu.Shi 发表于 2015-9-21 17:06
看了下手册,貌似GPIOx_PSOR置1,在GPIOx_PDOR相应位也置1,GPIOx_PSOR置0,不操作;GPIOx_PCOR置1,在GPIO ...

你没有仔细看我上面的回复
你如果都是整个32位一块置1或置0,当然多出这两个寄存器,是没用的。
关键是多数情况,我们并不是32位一块操作,如果只是操作其中几位,就必须不能影响其他位,如果只有一个寄存器的话,只能是read回来,修改对应的位,再回写回去(read-modify-write)。

Lu.Shi 发表于 2015-9-21 17:19:51

security 发表于 2015-9-21 17:15
你没有仔细看我上面的回复
你如果都是整个32位一块置1或置0,当然多出这两个寄存器,是没用的。
关键是多 ...

对,明白了,谢谢

维维豆奶21 发表于 2018-6-5 08:57:43

请问怎么用GPIOx_PDOR 来读取输出口状态呢?

isakura 发表于 2018-6-5 09:35:38

维维豆奶21 发表于 2018-6-5 08:57
请问怎么用GPIOx_PDOR 来读取输出口状态呢?

好久没用飞思卡尔了,得回去看原来的程序{:biggrin:}

su33691 发表于 2018-6-5 10:18:21

类似于STM32 的位带操作。

dreamboy 发表于 2021-8-2 10:47:47

{:handshake:}

728196 发表于 2021-8-2 11:34:59

Lu.Shi 发表于 2015-9-21 17:06
看了下手册,貌似GPIOx_PSOR置1,在GPIOx_PDOR相应位也置1,GPIOx_PSOR置0,不操作;GPIOx_PCOR置1,在GPIO ...

方便修改某位   没有这两个寄存器 你需要读 运算 写回!
页: [1]
查看完整版本: GPIOx_PDOR 与 GPIOx_PSOR GPIOx_PCOR有什么区别?