[求助]请问freescale网站上有没有关于iic的例程,哪位大哥能帮忙?
 
- UID
- 104936
- 性别
- 男
|
我用的是模拟时序的IIC,挺好用。就是Freescale单片机的。 |
水泡泡 我的QQ是:52449804 我的网站是: www.dyic.com.cn 欢迎访问和留言跟我联系 |
|
|
|
|
|
 
- UID
- 104936
- 性别
- 男
|

程序如下:
void IIC_writebyte(unsigned char record)
{
IBCR_MS_SL = 1; // Set transmit and master mode
IBCR_TX_RX = 1; // And generate start condition
IBDR = slavewrite; // Adress the slave and set up for master transmit
while (!IBSR_IBIF); // wait until IBIF
IBSR_IBIF=1; // clear the interrupt event flag
IBDR = slave_RD_address_LSB; // Send word adress
while (!IBSR_IBIF); // wait until IBIF
IBSR_IBIF=1; // clear the interrupt event flag
while(IBSR_RXAK); // check for RXAK
IBDR = record;
while (!IBSR_IBIF); // wait until IBIF
IBSR_IBIF=1; // clear the interrupt event flag
IBCR_MS_SL = 0; // generate stop signal
}
void IIC_readbyte()
{
unsigned char dummy;
IBCR_MS_SL = 1; // Set transmit and master mode
IBCR_TX_RX = 1; // And generate start condition
IBDR = slavewrite; // Adress the slave and set up for master transmit
while (!IBSR_IBIF); // wait until IBIF
IBSR_IBIF=1; // clear the interrupt event flag
while(IBSR_RXAK); // check for RXAK
IBDR = slave_RD_address_LSB; // Send word adress
while (!IBSR_IBIF); // wait until IBIF
IBSR_IBIF=1; // clear the interrupt event flag
while(IBSR_RXAK); // check for RXAK
IBCR_RSTA = 1; // set up repeated start
IBDR = SLAVEREAD;
while (!IBSR_IBIF); // wait until IBIF
IBSR_IBIF=1; // clear the interrupt event flag
while (IBSR_RXAK); // check for RXAK
IBCR_TX_RX = 0; // set up to receive
RD_data = IBDR; // dummy read
while (!IBSR_IBIF); // wait until IBIF
IBSR_IBIF=1; // clear the interrupt event flag
IBCR_TXAK = 1; // acknowledge disable
RD_data = IBDR;
while (!IBSR_IBIF); // wait until IBIF
IBSR_IBIF=1; // clear the interrupt event flag
IBCR_MS_SL = 0; // generate stop signal
dummy = IBDR; // dummy read
}
//****** Init routines *******************
void IIC_init(void){
IBFD = 0x4C; // frequency divider register: Bus = 8MHz => SCL = 91kHz
IBAD = 0x00; // slave address of this module
IBCR = 0x80; // enable IIC module and No interrupts
IBSR_IBAL = 1; // clear the IBAL flag
slave_RD_address_LSB = 0;
} |
水泡泡 我的QQ是:52449804 我的网站是: www.dyic.com.cn 欢迎访问和留言跟我联系 |
|
|
|
|
|