我用飞思卡尔的MC9S08AW32的IIC模块和一个触摸板芯片MPR121做通信,可是折腾了很多天,用示波器一直没有看到时序的波形图,怀疑示波器是不是要什么特别的设定,还是我的硬件接线方面有问题,我的写程序IIC_write是可以运行过去的,因为中间有等待应答,似乎从机是返回了应答信号的,但是示波器却一直没有看到时序,只看到SCL从高电平变成低电平,就没有变化了,没有脉冲时序,所以相当的矛盾,大家帮帮忙啊
一部分程序是这样的
IIC_start();
IIC_write(0xB4);
IIC_write(0x41); //从寄存器0x41写起
IIC_write(0x0F);
IIC_write(0x0A);
IIC_stop();
void IIC_start(){
IIC1C_IICEN = 0;
IIC1C_IICEN = 1;//iic总线模块可使用
IIC1S_IICIF = 1;//清除中断标志
IIC1C_MST=0;
IIC1C_TX=1;//发送模式
IIC1C_MST=1;//0->1,产生一个开始信号
delay();
}
void IIC_write(byte addr) {
IIC1D=addr;//发送寄存器地址
while(!IIC1S_IICIF);//一字节发送完
IIC1S_IICIF=1; //清除标志
while( IIC1S_RXAK) //等待应答
} |