I2C无法发送重复起始条件?跪求高手出现解答一下
DWORD I2CStartAgain( void ){
BYTE clear;
BYTE state;
BYTE conf;
BYTE data;
DWORD timeout = 0;
DWORD returnValue = FALSE;
state=I20STAT;//值为0x28
clear=I20CONCLR;//值为0x48
conf=I20CONSET;//值为0x48
data=I20DAT;//值为0x00
/*--- Issue a start condition ---*/
I20CONCLR = I2CONCLR_SIC;//|I2CONCLR_AAC|I2CONCLR_STAC;//发送重复起始条件前一定要清零SI
I20CONSET = I2CONSET_STA|I2CONSET_I2EN; /* Set Start flag */
state=I20STAT;//值为0x28*******************按手册应该这里变为0x10(已发送重复起始条件)才对!!
clear=I20CONCLR;//值为0x68
conf=I20CONSET;//值为0x68**************写入的值应该是0x2C,怎么这里称了0x68了呢??
/*--- Wait until START transmitted ---*/
while( 1 )
{
if ( I20STAT == 0x10 )
{
returnValue = TRUE;
break;
}
if ( timeout >= MAX_TIMEOUT )
{
returnValue = FALSE;
break;
}
timeout++;
}
return( returnValue );
------------------------
http://cache.amobbs.com/bbs_upload782111/files_32/ourdev_580319Q27N39.jpg
(原文件名:QQ截图未命名.jpg) 各位大哥快帮帮忙啊,这个小问题为难我一周多了,郁闷 看看上一状态,是不是应答的问题 state=I20STAT;//值为0x28
http://cache.amobbs.com/bbs_upload782111/files_32/ourdev_580453GG65GJ.jpg
(原文件名:QQ截图未命名.jpg)
以状态值28是一家接收到正确的应答了 继续等待中。。。 有人说不用判断状态代码
页:
[1]