Other Parts Discussed in Thread: TM4C1294NCPDT, LDC1614
主题中讨论的其他器件: LDC1614
我正在努力通过 I2C 协议将 MPU9-150传感器集线器升压与 TM4C1294NCPDT Launchpad 相连。
//系统时钟120000000
SysCtlClockFreqSet ((SYSCTL_XTAL_25MHz |SYSCTL_OSC_MAIN |SYSCTL_USE_PLL | SYSCTL_CFG_VCO_480)、120000000);
//I2C 配置
//1. 使能 I2C0的时钟
SET_BIT (SYSCTL_RCGCI2C_R、0);
//2. 使能 s GPIOB 模块的时钟。 第2页。
SET_BIT (SYSCTL_RCGCGPIO_R、1);
//3. 启用 I2C 引脚以实现其交替功能。 第671/1344页。
SET_BIT (HWREG (GPIO_PORTB_BASE + GPIO_O_AFSEL)、2);
SET_BIT (HWREG (GPIO_PORTB_BASE + GPIO_O_AFSEL)、3);
SET_BIT (HWREG (GPIO_PORTB_BASE + GPIO_O_DEN)、2);
SET_BIT (HWREG (GPIO_PORTB_BASE + GPIO_O_DEN)、3);
//4. 启用 SDA (PB3)引脚以进行开漏操作。 第676...页
SET_BIT (HWREG (GPIO_PORTB_BASE + GPIO_O_ODR)、3);
//5. 配置 PMCn 域以分配 I2C 信号
//连接到适当的引脚。 第8.6821351页。
HWREG (GPIO_PORTB_BASE + GPIO_O_PCTL)|=(2<<(4*2))|(2<<(4*3));
//6. 初始化 I2C 主设备。 第1031页
I2CMasterEnable (I2C0_BASE);
//用于标准模式
ptrIIC->IIC_MTPR=(uint8_t)(120000000 /(2*(10)*100000 ))-1 ;
当我从传感器读取作为一个封装的12个字节时、I2C 只能读取三个或四个正确的值、而其他字节始终为零。
LDC1614传感器也出现了同样的问题。 对于 LDC1614、它仅在超快模式下工作!!
那么、我的问题是什么?