S3C44B0X芯片,为什么IIC每发送或接收一个数据, 就要重新配置以下IICCON寄存器
在通过IIC发送或接受了一个数据时,总要有一行程序:rIICCON=0xaf;资料上写的是每发送或接收一个数据, 就要重新配置以下IICCON寄存器。可是,为什么要这么做呢?
IIC驱动目的是多芯片通信,每次所对应的芯片可能不一样,所以每次配置下芯片是以一种安全的模式
题我在调试时找到答案了。当通过IIC发送一次数据,产生IIC中断后,IICCON的值会自动变为0xBF(应该是由硬件决定的,软件未对此设置),也就是说IICCON的Interrupt Pending位会设置为1,根据文档,我们可以知道此位设置为1,IIC就停止操作了。所以,为了让IIC恢复操作,每次IIC中断发生后,为了继续能使用IIC操作,软件要重新设置IICCON为0xAF;