I2C通信与解码笔记

I2C开始

根据如下图显示是I2C开始的的信号处理,从左到有的来看,在SCL为1高电平时候,SDA发生了由 1高电平0低电平 的转换。
在这里插入图片描述

void I2C_Start(void)
{
   
	I2C_SDA=1;
	I2C_SCL=1;
	I2C_SDA=0;
	I2C_SCL=0;
}
I2C结束

在SCL为1高电平时候,SDA发生了由 0低电平1高电平 的转换。
在这里插入图片描述

SDA=0;
SCL=1;
SDA=1;
I2C接收的方法与波形对比

遵循上面的时序分析的思路,我们查看接收数据位的波形变化。

接收一个字节:SCL低电平期间,从机将数据位依次放到SDA线上(高位在前),然后拉高SCL,主机将在SCL高电平期间读取数据位,所以SCL高电平期间SDA不允许有数据变化,依次循环上述过程8次,即可接收一个字节(主机在接收之前,需要释放SDA)
在这里插入图片描述
下面的代码,假如byte发送的字节为0xFE = 1111 1110;采用的思想就是按位循环的把这些数字给出来,的方式就是用 1 分别 到最后一位(也就是 按位与 )。

void I2C_SendByte(unsigned char Byte)
{
   
	unsigned char i;
	for(i=0
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值