前几天我的系统在操作I/O口电平时无意间"误伤"了I2Cm的口驱动状态,导致I2Cm工作时好时坏,两年前也发生过误伤RX8口的类似情况,今天终于明白了以下两点:
1. 用与或操作I/O口时要小心误伤这个P?口上的外设。 2. 有些外设的XX_Start();是专门用来初始化这个外设的口驱动状态的,不应该只在初始化时调用一次,应该在用到这个外设时调用一下,这可能不完全正确,但可以避免一些,看具体情况.例如我在操作P1上某个I/O口后,"误伤"了软I2Cm的(P1.5,P1.7),I2Cm的口读写不正常,这时只要在I2Cm读写前加一条I2Cm_Start();就可解决.
以上不是解决问题的好方法,我只想说有人碰到此类型的问题时,这有可能是一个问题考虑方向,说得不一定对,希望用者得其法. |