GPIOx_PDOR 与 GPIOx_PSOR GPIOx_PCOR有什么区别?
从使用功能来看,GPIOx_PDOR 完全涵盖了GPIOx_PSOR GPIOx_PCOR 的作用;而且GPIOx_PDOR还更多功能,能够读取输出状态,那 GPIOx_PSOR GPIOx_PCOR 的作用是什么? 看到一句话,
GPIOx_PSOR GPIOx_PCOR 的处理效率更高更快
不知道是不是这个原因 还没看懂 IOPORT接口是怎么用的, PSOR就如RM上面说的,是写1置位对应IO寄存器,PCOR就是写1清除对应IO寄存器。 isakura 发表于 2015-9-21 10:43
还没看懂 IOPORT接口是怎么用的,
你用的什么芯片,kinetis吗?
找些官方代码看看就知道了。 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置高或置低,而对于其他位,不受任何影响,。 看了下手册,貌似GPIOx_PSOR置1,在GPIOx_PDOR相应位也置1,GPIOx_PSOR置0,不操作;GPIOx_PCOR置1,在GPIOx_PDOR相应位清0,GPIOx_PCOR置0,不操作;
突然间有点想不通,用户直接操作GPIOx_PDOR置1或置0不就完事了,为什么还要多出这两个寄存器?? 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)。 security 发表于 2015-9-21 17:15
你没有仔细看我上面的回复
你如果都是整个32位一块置1或置0,当然多出这两个寄存器,是没用的。
关键是多 ...
对,明白了,谢谢 请问怎么用GPIOx_PDOR 来读取输出口状态呢? 维维豆奶21 发表于 2018-6-5 08:57
请问怎么用GPIOx_PDOR 来读取输出口状态呢?
好久没用飞思卡尔了,得回去看原来的程序{:biggrin:} 类似于STM32 的位带操作。 {:handshake:} Lu.Shi 发表于 2015-9-21 17:06
看了下手册,貌似GPIOx_PSOR置1,在GPIOx_PDOR相应位也置1,GPIOx_PSOR置0,不操作;GPIOx_PCOR置1,在GPIO ...
方便修改某位 没有这两个寄存器 你需要读 运算 写回!
页:
[1]