mirror of
https://github.com/Arthur-cai/Soft_I2C_Driver.git
synced 2025-06-17 21:17:52 +00:00

1. 支持时钟延展 2. 支持400KHz速率(不同平台移植可能需要手动调整) 3. 支持GD32F30x平台和STM32F10x平台 4. 通过驱动注册的方式使用 5. lib文件夹为GD和STM的标准库 6. dsview文件夹为逻辑分析仪抓取波形 7. 驱动文件为 bsp_soft_i2c.c, bsp_soft_i2c.h, bsp_soft_i2c_private.h Signed-off-by: ArthurCai <arthurcai_c@163.com>
27 lines
1.1 KiB
Plaintext
27 lines
1.1 KiB
Plaintext
软件模拟I2C驱动
|
|
|
|
【特性】
|
|
1. 支持时钟延展
|
|
2. 支持400KHz快速模式
|
|
3. 支持GD32F30x平台和STM32F10x平台
|
|
|
|
【移植步骤】】
|
|
1. 将 bsp_soft_i2c.c, bsp_soft_i2c.h, bsp_soft_i2c_private.h 文件添加到工程中
|
|
2. GD工程需要有全局宏 GD32F30X_HD 或 GD32F30X_XD 或 GD32F30X_CL
|
|
3. STM工程需要有全局宏 STM32F10X_HD 或 STM32F10X_MD 或 STM32F10X_CL 以及 USE_STDPERIPH_DRIVER
|
|
|
|
【使用方法】
|
|
1. 在一个驱动注册.c文件中使用 SOFT_I2C_DEF 接口, 参照其注释,注册 I2C 驱动
|
|
2. 如果需要外部声明, 则需要在驱动注册.h文件中使用 SOFT_I2C_EXT 接口
|
|
3. 其他文件使用 I2C 驱动时, 需包含h头文件
|
|
4. 调用 soft_i2c_init() 函数初始化 I2C 驱动, 此函数会初始化监控变量, 并强制配置SCL和SDA为开漏高电平
|
|
5. 调用 soft_i2c_write() 函数进行 I2C 数据发送
|
|
6. 调用 soft_i2c_read() 函数进行 I2C 数据读取
|
|
|
|
【开启时钟延展】
|
|
1. 在 bsp_soft_i2c.h 文件中, 取消注释 __SOFT_I2C_CLOCK_STRECH_EN__
|
|
2. 或者在工程中, 添加全局宏 __SOFT_I2C_CLOCK_STRECH_EN__
|
|
|
|
【联系方式】
|
|
如有BUG, 请联系 arthurcai_c@163.com
|