软件模拟I2C通讯

本文详细介绍了I2C协议的基本概念及其通信限制,并通过具体的软件模拟实现方法展示了起始信号、终止信号及主机发送应答信号的过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

I2C协议概述,有相当详细的名词解释

通信数量受限于地址空间和400Pf总线电容。

所有的数据传输过程中,SDA线的电平变化必须在SCL为低电平时进行,SDA线的电平在SCL线为高电平时要保持稳定。

I2C通讯协议软件模拟实现方法:

1、起使信号 

 

1 void I2C_Start(){
2   SDA_H;
3   delay(n); //电平切换时间
4   SCL_H;
5   delay(>4us);  //初始状态必须保持4us以上
6   SDA_L; //在SCL为高时,拉低SDA线发送起始信号。
7   delay(>4.7us); 
8   SCL_L; // 发完一位拉低SCL
9 } 

 

 

2 、终止信号

void I2C_Stop(){

 	SCL_L;

        delay(n);	//电平切换时间

        SDA_L;

        delay(n);

        SCL_H;

        delay(>4us);

        SDA_H;

        delay(>4.7us);

        SCL_L; 

 }                    

  

 

 3、主机发送应答信号ACK

void I2C_Ack(){
 SDA_Out(); SCL_L; delay(n); SDA_L; delay(n);  SCL_H;
delay();
SCL_L; }

 

转载于:https://www.cnblogs.com/geekj/p/10566807.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值