IO模拟I2C

该博客介绍了如何在EFM32(基于Cortex-M3内核)微控制器上使用GPIO模拟I2C总线,仅支持主机模式和7位地址。内容涵盖了IO管脚配置、I2C总线频率设定、起始条件、读写操作的实现,以及对外提供的I2C设备读写功能接口。

1、使用IO模拟简单的I2C总线,仅支持主机模式和7位地址;

2、基于EFM32(CORTEX-M3内核);

3、第一段定义IO管脚及其操作,可修改这部分适配其它MCU;

4、第二段定义模拟的I2C总线频率;

5、第三段定义总线的起始、读写等基本操作;

6、第四段是对外的功能接口,实现了较为常用的I2C设备直接读写和I2C设备内部寄存器读写。


#include "em_gpio.h"

/***********************************************************************************************
*          IIC BUS PORT DEFINITION START
************************************************************************************************/
#define DATApin        gpioPortB, 11 
#define SCKpin         gpioPortB, 12 

#define PinOpOpen(p) 
#define PinOpOut(p)     GPIO_PinModeSet(p, gpioModePushPull, 1)
#define PinOpIn(p)      GPIO_PinModeSet(p, gpioModeInputPull, 1)
#define PinOpSet(p)     GPIO_PinOutSet(p)
#define PinOpClr(p)     GPIO_PinOutClear(p)
#define PinOpGet(p)     GPIO_PinInGet(p)
#define PinOpClose(p)   GPIO_PinModeSet(p, gpioModeDisabled, 1)
/***********************************************************************************************
*          IIC BUS PORT DEFINITION END
************************************************************************************************/

/***********************************************************************************************
*          IIC BUS FREQ DEFINITION START
************************************************************************************************/
#define IIC_BUS_FREQ    (1 * 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值