中级会员
- 积分
- 378
- 金钱
- 378
- 注册时间
- 2018-7-16
- 在线时间
- 58 小时
|
1金钱
一直不理解写字节和读字节SDA和SCL,还请大神解惑,我用的51.
/*I2C总线写一个字节*/
void wr_byte(uchar date)
{
uchar i;
for(i=0;i<8;i++)
{
date=date<<1;
SDA=CY; //用CY位将date的每一位通过SDA写进去
delay();
SCL=1; //这里将SCL拉高是为了将写入的那一位稳定吗?( SDA=CY)
delay();
SCL=0; //这里我知道,scl为低时,sda数据才允许变化
delay();
}
}
/*I2C总线读一个字节*/
uchar rd_byte()
{
uchar i,temp;
for(i=0;i<8;i++)
{
SCL=1;
delay();
temp=(temp<<1)|SDA;
delay();
SCL=0;
delay();
}
return temp;
}
|
最佳答案
查看完整内容[请看2#楼]
[mw_shl_code=c,true]/*I2C总线写一个字节*/
//参数是需要写的一个字节数据
void wr_byte(uchar date)
{
//循环辅助变量
uchar i;
//由于一个字节有8位,所以需要循环八次下面的内容
for(i=0;i
|