EFM32 LG232系列单片机干货之SPM I2C

本文介绍了EFM32系列单片机的I2CSPM库函数,相较于STM32,EFM32的I2C驱动更加简化。文章详细讲解了I2C初始化、传输序列设置以及读写操作,并提供了一个连续读取6个寄存器的示例代码,强调了正确配置硬件资源和处理通信异常的重要性。
摘要由CSDN通过智能技术生成

EFM32系列单片机虽然和STM32系列单片机同样是CortexM3单片机。但因为来自不同的公司,所以具备不一样的设计思路和不同的库函数。这一次我们来看下EFM32系列的I2C操作。

I2C总线是数字系统中常用的总线之一,很多传感器芯片都提供I2C接口用于和MCU通信。详细的I2C规范和通信的原理这里就不再赘述了。大家可以通过百度和相关的技术文档去了解。这里只在必要的地方提一下相关的概念。我们的主要精力就放在如何使用EFM32系列的I2C库函数来和I2C传感器芯片通信,获取相应的数据。

和STM32系列的单片机不同,EFM32单片机在I2C这一块提供了一个套件驱动包,对底层的I2C操作进行了进一步的简化,故而使用起来更加的方便。这个I2C驱动包就是I2CSPM。这个驱动包由两个文件组成:i2cspm.c和i2cspm.h。

下面先来看I2C初始化代码实例:

void setupI2C(void)
{
  I2CSPM_Init_TypeDef i2cInit;
  CMU_ClockEnable(cmuClock_GPIO, true);
  i2cInit.port = I2C0;
  i2cInit.sclPort = gpioPortA;
  i2cInit.sclPin = 1;
  i2cInit.sdaPort = gpioPortA;
  i2cInit.sdaPin = 0;
  i2cInit.portLocation = _I2C_ROUTE_LOCATION_LOC0;
  i2cInit.i2cClhr = i2cClockHLRStandard;
  i2cIn

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值