这就是开漏输出在IIC通信中的另一个作用。 SDA是高电平, 说明主设备A可以占用总线, 然后主设备A将SDA拉低, 开始通信。 SDA是低电平, 说明有人已经捷足先登了, 主设备A不能占用总线, 结束通信。 因此,模拟IIC一定要将GPIO端口设置为开漏输出并加上上拉电阻,硬件IIC会自动配置为开漏输出。 审核编辑:汤梓红...
void IIC_Init(void); //初始化IIC的IO口 void IIC_Start(void); //发送IIC开始信号 void IIC_Stop(void); //发生IIC停止信号 void IIC_Send_Byte(uint8_t txd); //IIC发生一个字节 uint8_t IIC_Read_Byte(unsigned char ack);//IIC读取一个字节 uint8_t IIC_Wait_Ack(void); //IIC等待应答AC...
SPI 和I2C这两种通信方式都是短距离的,芯片和芯片之间或者其他元器件如传感器和芯片之间的通信。SPI和IIC是板上通信,IIC有时也会做板间通信,不过距离甚短,不过超过一米,例如一些触摸屏,手机液晶屏那些薄膜排线很多用IIC,I2C能用于替代标准的并行总线,能连接的各种集成电路和功能模块。I2C是多主控总线,所以任何一个...
51CTO博客已为您找到关于stm32cubeMX GPIO模拟IIC的相关内容,包含IT学习相关文档代码介绍、相关教程视频课程,以及stm32cubeMX GPIO模拟IIC问答内容。更多stm32cubeMX GPIO模拟IIC相关解答可以来51CTO博客参与分享和学习,帮助广大IT技术人实现成长和进步。
GPIO模拟IIC接口信号质量分析 信号质量有问题的波形001: 信号质量有问题的波形002: 从上图可以看出,GPIO口模拟的I2C接口,电平都存在半高的情况。 因为I2C的接口是通过GPIO模拟实现的,该时钟信号线SCL内部默认为下拉状态,因而SCL对应的GPIO内部有下拉电阻,导致在输出为高电平时,上升沿慢的台阶出现。后把SCL脚的内部...
STM32CubeMX配置gpio模拟IIC 关于STM32 GPIO的配置等问题 一、GPIO的基本结构图示 二、模式 直接上图: 图表数据解析: 三、配置等问题 问题 一、GPIO的基本结构图示 提示:图片来自STM32中文参考手册P176 STM32英文参考手册也有内容无差别 二、模式 我们搜索的大多数资料显示的都是有8种模式;输入4种输出4种。但...
IIC_timeout(GET_SDA_DAT)) {goto IIC_TOUT;} //等待数据拉低#define IIC_SLAVE_SEND_LOW WAIT_IIC_SCL_LOW; SDA_OUT; SET_SDA_LOW; WAIT_IIC_SCL_HIGH;#define IIC_SLAVE_SEND_HIGH WAIT_IIC_SCL_LOW; SDA_OUT; SET_SDA_HIGH; WAIT_IIC_SCL_HIGH;#define IIC_SLAVE_SEND_ACK IIC_SLAVE_SEND...
IIC(Inter-Integrated Circuit)总线是一种由PHILIPS公司开发的两线式串行总线,用于连接微控制器及其外围设备。I2C总线用两条线(SDA和SCL)在总线和装置之间传递信息,在微控制器和外部设备之间进行串行通讯或在主设备和从设备之间的双向数据传送。I2C是OD输出的,大部分I2C都是2线的(时钟和数据),一般用来传输控制信号。
{11returnI2C_ERROR;12}1314simuI2CInstance->Delayus(1000);1516while(rSize--)17{18*rData=RecieveByteBySimuI2C(simuI2CInstance);19rData++;20if(rData==0)21{22IIC_NAck(simuI2CInstance);23}24else25{26IIC_Ack(simuI2CInstance);27simuI2CInstance->Delayus(1000);28}29}3031//结束通讯32SimuI2C...
下图为失败时i2c波形,由波形可看出主机端发送完i2c从端地址0x38后,从端未响应。 下面我们再看一下写成功时候的波形,由波形可看出i2c主机端发送从端地址0x38后,从端有ACK, 主机端继续发送要写入的寄存器地址0xA5, 从端ACK; 主机端继续发送写入寄存器的值0x03, 从端ACK。通信完成。