一个关于IIC通信应答验证的问题
时间:10-02
整理:3721RD
点击:
大家好,下面是我写的一个IIC发送8位数据的函数,请大伙看看其中验证应答位我是怎样写的?
/*************************************
函数名称:senddat
功能描述:带应答位,如果未收到应答位重试几次
**************************************/
void senddat(uchar dat)
{
uchar i,j=2,num;
do
{
scl=0;
num=0x80;
for(i=0;i<8;i++)
{
if(dat&num==0)sda=0;
else sda=1;
num>>=1;
scl=1;
delay();
scl=0;
delay();
}
sda=1;
scl=1;
delay();
}while(sda&&j--);//当收到应答0时,或超过一段时间后停止发送
scl=0;
if(j==0){报警函数}
}
这是一个I2C发送8位数据函数,我想验证一下应答位,这样写行吗?因为手头没有板子调试不了,
/*************************************
函数名称:senddat
功能描述:带应答位,如果未收到应答位重试几次
**************************************/
void senddat(uchar dat)
{
uchar i,j=2,num;
do
{
scl=0;
num=0x80;
for(i=0;i<8;i++)
{
if(dat&num==0)sda=0;
else sda=1;
num>>=1;
scl=1;
delay();
scl=0;
delay();
}
sda=1;
scl=1;
delay();
}while(sda&&j--);//当收到应答0时,或超过一段时间后停止发送
scl=0;
if(j==0){报警函数}
}
这是一个I2C发送8位数据函数,我想验证一下应答位,这样写行吗?因为手头没有板子调试不了,
可以的,
谢谢小编,
谢谢小编。
呵呵
见笑了,呵呵