
I2C,两线式串行总线,可发送和接收数据 SCL和SDA都必须上拉 I2C协议 1. 空闲状态 SCL和SDA同时处于高电平 2. 开始信号 SCL为高电平期间,SDA由高电平转为低电平 3. 停止信号 SCL为高电平期间,SDA由低电平转为高电平 4. 应答信号ACK 发送器每发送8个字节,就在时钟脉冲9期间释放数据线SDA,由接收器反馈一个应答信号 拖接收器成功接收该信号,则拉低SDA,表示ACK 若没有成功接收该信号,则不拉低,SDA仍为高,表示NACK 5. 数据的有效性 SDA高电平表示1,低电平表示0,时钟线SCL高电平期间SDA应保持稳定 6. 数据传输 在SCL控制下传送数据 I2C的实现 定义SCL与SDA的引脚 ![]() SDA需要能够转变IO的方向 ![]() IIC_Init ![]() II2_START ![]() IIC_Stop ![]() IIC_Wait_Ack ![]() IIC_Ack ![]() IIC_NAck ![]() IIC_Send_Byte ![]() IIC_Read_Byte 如果读到1,则最低位+1 ![]() 通过I2C操作24C02 初始化 ![]() 写一个字节 地址是2个字节u16,高8位是一个字节,即高字节,低8位是一个字节,即低字节 写入的是一个字节,8位,u8 ![]() 读一个字节 ![]() 写入读出多个地址 ![]() ———————————————— 版权声明:CodeForCoffee |
STM32 GUI LTDC 最大像素时钟评估方法
【2025·STM32峰会】GUI解决方案实训分享1-对LVGL咖啡机例程的牛刀小试以及问题排查
OpenBLT移植到STM32F405开发板
为什么要先开启STM32外设时钟?
【STM32MP157】从ST官方例程中分析RPMsg-TTY/SDB核间通信的使用方法
【经验分享】STM32实例-RTC实时时钟实验④-获取RTC时间函数与中断服务函数
STM32 以太网 MAC Loopback 的实现
STM32功能安全设计包,助力产品功能安全认证
基于STM32启动过程startup_xxxx.s文件经验分享
HRTIM 指南