说明
有时候项目做好,时间长了就忘记,这边做一个总结,方便以后自己看。
使用环境:
IAR,协议栈 2_02_01_18
1 配置管脚
在CC2650_LAUNCHXL.h文件中配置,另,如果有其他外设或者gpio占用了这两个脚,那么务必要将他们取消掉。
/* I2C */
#define Board_I2C0_SCL0 IOID_6 // IOID_4
#define Board_I2C0_SDA0 IOID_7//IOID_5
2 I2C配置
/* I2C objects */
I2CCC26XX_Object i2cCC26xxObjects[CC2650_LAUNCHXL_I2CCOUNT];
/* I2C configuration structure, describing which pins are to be used */
const I2CCC26XX_HWAttrsV1 i2cCC26xxHWAttrs[CC2650_LAUNCHXL_I2CCOUNT] = {
{
.baseAddr = I2C0_BASE,
.powerMngrId = PowerCC26XX_PERIPH_I2C0,
.intNum = INT_I2C_IRQ,
.intPriority = ~0,
.swiPriority = 0,
.sdaPin = Board_I2C0_SDA0,
.sclPin = Board_I2C0_SCL0,
}
};
/* I2C configuration structure */
const I2C_Config I2C_config[] = {
{
.fxnTablePtr = &I2CCC26XX_fxnTable,
.object = &i2cCC26xxObjects[0],
.hwAttrs = &i2cCC26xxHWAttrs[0]
},
{NULL, NULL, NULL}
};
3 初始化
调用I2c初始化接口HwI2CInit
调用MMA初始化接口MMA845x_Init
4 动作
例如
ace_data_t ace_data;
MMA845x_GetState(&ace_data);
获取x y z信息
另,MMA8452.c MMA8452.h i2c.c i2c.h 可以在我的上传资源中查看