| void my_i2c_init(void)
{
   M0P_I2C->TM_f.TM=7;//I2C时钟配置为62KHZ
   M0P_I2C->CR_f.H1M=1;
   M0P_I2C->TMRUN=1;//使能I2C波特率计时器
   M0P_I2C->CR_f.ENS=1;//使能I2C模块。
   
}
 上面是I2C 初始化! I2C时钟已经打开了(已确认),
 可下面的代码 只能停在 发送第一个字节后, 奇怪的是 发送地址+写 ,有应答!确定发的字节值没有问题!
 
 // 发送START信号
    M0P_I2C->CR_f.STA=1;
    while(M0P_I2C->CR_f.SI !=1);
    while(M0P_I2C->STAT_f.I2CSTA !=0X08) ;
   
    //发送报文头信息
    M0P_I2C->DATA_f.I2CDAT=0Xb0; //装载发送从站地址即写
    M0P_I2C->CR_f.SI =0;//准备发送地址
    while(M0P_I2C->CR_f.SI !=1);//等待
    while(M0P_I2C->STAT_f.I2CSTA !=0X18) ;
    
    //发送固定的第1个字节
    M0P_I2C->DATA_f.I2CDAT=0X02; //此值固定
    M0P_I2C->CR_f.SI =0;//准备发送
    while(M0P_I2C->CR_f.SI !=1);//等待
    //只运行到此,永远等不到 M0P_I2C->STAT_f.I2CSTA =0X28,
    //此时M0P_I2C->STAT_f.I2CSTA 值为0X08 !WHY?
    while(M0P_I2C->STAT_f.I2CSTA !=0X28);
    M0P_GPIO->P1OUT_f.P15=0;//LED灯不亮!!!没有运行到此!!!
 
 
 |