完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
哈搂各位高手们好,小弟刚接触M051买了温子棋老师的书看,可是有一点真的是一直搞不清楚
以下是成是範例 ***************************************** *函数名称:timed_Write_Cycle *输 入:无 *输 出:无 *功 能:同步的写周期 ******************************************/ void Timed_Write_Cycle(void) { while (I2STATUS != 0x18) //0x18=00011000 Master Transmit Address ACK { //启动 I2CON |= STA; I2CON |= SI; while ((I2CON SI) != SI); I2CON = ((~STA) (~SI)); //请问这是i2c清零的动作吗??但是I2C清零不是要写1吗?还是说先写进i2con,等下次I2CON |= SI;发生时在写入 //设备地址 I2DAT = EEPROM_SLA | EEPROM_WR; //set address and read/write mode. I2CON |= SI; //怪怪的,是I2C清零还是还是启动I2C下个状态,应该是启动I2C下个状态,但是那由谁来写1清零呢 while ((I2CON SI) != SI); } if (I2STATUS != 0x18) //检查应答 { DEBUGMSG("Not ACK returned!"); } //停止 I2CON |= STO; //why stop?? don't know I2CON |= SI; //请问是清零 还是下个状态启动 while (I2CON STO); } 小弟看了新唐的技术参考手册,可是还是摸不清楚I2C SI触发和status的关係 文件上都是说SI触发后下个周期status反映,但是SI是不是会一直维持到下个status要发生的时候,写一次1进去,作清零,跟触发下次status阿 有没有详细的时序关係图阿,小弟找好多资料都找不到耶 希望这裡的高手可以帮忙一下 感激不尽 |
|
相关推荐 |
|
只有小组成员才能发言,加入小组>>
624浏览 3评论
506浏览 2评论
361浏览 1评论
381浏览 1评论
348浏览 1评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-21 22:48 , Processed in 0.602650 second(s), Total 75, Slave 58 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号