RT-thread学习笔记1 I2C设备驱动学习之EEPROM驱动(上)

本文介绍了如何在RT-thread操作系统中,基于STM32的ALIENTEK MINI开发板,编写I2C EEPROM驱动。重点讨论了I2C总线驱动接口的实现,包括设置SDA和SCL线的状态,以及GPIO配置和时钟初始化。通过不改变GPIO输入输出模式,直接读取推挽输出状态来获取I2C端口的状态,实现了I2C驱动的基础功能。

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

RT-thread中关于I2C设备驱动主要有i2c_core.ci2c_dev.ci2c-bit-ops.c这个几个文件,这次的主要任务就是结合提供的i2c驱动库编写eeprom的读写函数,基于ALIENTEK MINI STM32作为开发平台。

 

 第一步:由于RT-thread中的i2c-bit-ops.c文件中已经实现了i2c的总线驱动,我们只需要完成关于结构体rt-i2c-bit-ops中定义的接口就可以了,

    1)主要i2c接口定义如下:      

struct rt_i2c_bit_ops

{

    void *data;           

    void (*set_sda)(void *data, rt_int32_tstate);  // 设置SDA数据线

    void (*set_scl)(void *data, rt_int32_tstate);  // 设置SCL时钟线

    rt_int32_t (*get_sda)(void *data);              // 获取SDA数据线状态

    rt_int32_t (*get_scl)(void *data);              // 获取SCL时钟线状态

 

    void (*udelay)(rt_uint32_t us);

 

    rt_uint32_t delay_us;  /* scl and sda line delay */

    rt_uint32_t timeout;   /* in tick */

};

 

?问题

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值