本帖最后由 zyftank 于 2025-7-28 06:38 编辑
当我们对GPIO进行置位操作时,对应的库函数是对BOP寄存器进行了赋值,翻看用户手册里写到BOP对应的PIN位置1时,会将相对应的OCTL寄存器的PIN位置1,拉高PIN电平。
对GPIO进行位清除操作的时候,是对BC寄存器CR对应的PIN位置置1,对应的PIN位置1时,会将OCTL寄存器的位清除,拉低PIN电平。
每个操作单个逻辑在理解上没问题,但是当我对同一个PIN脚先进行置位操作,随即进行清除操作,理论上这个PIN脚对应的BOP寄存器和BC寄存器的值都会是1,那么OCTL寄存器将是置位还是清除?
实验时,对PIN脚先拉高后拉低,操作结果是没问题的。由于在读取BOP寄存器的数值并通过串口打印,好像数值跟预期不一致,不敢确定是读取了正确的BOP寄存器的数值。
大家有没有更深刻的理解,欢迎留言。
|