/* 设置寄存器启动传输 */
/* 1. 配置为 master tx mode */
IICCON |= (1<<7); /* TX mode, 在ACK周期释放SDA */
IICSTAT = (1<<4);
/* 2. 把从设备地址写入IICDS */
IICDS = msg->addr<<1;
/* 3. IICSTAT = 0xf0 , 数据即被发送出去, 将导致中断产生 */
IICSTAT = 0xf0;
/* 后续的传输由中断驱动 */
/* 循环等待中断处理完毕 */
发送模式:
IICDS = 第一个字节------> 发送完成---->产生中断,拉低SCL----------->在中断程序中判断状态--------->
IICDS = 第二个字节------->发送。。。
接收模式:
发起传输,接收第一个字节-------->产生中断------->SCL被拉低--------->中断程序中判断
『本文转载自网络,版权归原作者所有,如有侵权请联系删除』