您好、TI!
我想让 MasterTimeoutSet 函数在 I2C 模块上工作、但我没好运。
无论我尝试如何设置它、I2C_MCLKOCNT 寄存器都保持在0x00000000
我已经尝试使用 driverlib - I2CMasterTimeoutSet (I2C0_BASE、0x7D);
我已经尝试了直接寄存器操作- HWREG (I2C0_BASE + I2C_O_MCLKOCNT)= 0x7D;
在这两种情况下、I2C_MCLKOCNT 寄存器不发生变化。 我在这里做了严重的错误吗?
我已经在 while 循环中完成写入以进行确认、但 while 循环绝不会退出。
SysCtlPeripheralDisable(SYSCTL_PERIPH_I2C0);
SysCtlPeripheralReset(SYSCTL_PERIPH_I2C0);
SysCtlPeripheralEnable(SYSCTL_PERIPH_I2C0);
while(!SysCtlPeripheralReady(SYSCTL_PERIPH_I2C0));
SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOB);
GPIOPinConfigure(GPIO_PB2_I2C0SCL);
GPIOPinConfigure(GPIO_PB3_I2C0SDA);
GPIOPinTypeI2CSCL(GPIO_PORTB_BASE, GPIO_PIN_2);
GPIOPinTypeI2C(GPIO_PORTB_BASE, GPIO_PIN_3);
I2CMasterInitExpClk(I2C0_BASE, SysFreq, false); //False = 100kbs, True = 400kbs
while ((HWREG(I2C0_BASE + I2C_O_MCLKOCNT) & 0xFF) != 0x7D) {
HWREG(I2C0_BASE + I2C_O_MCLKOCNT) = 0x7D;
}
I2CMasterGlitchFilterConfigSet(I2C0_BASE, I2C_MASTER_GLITCH_FILTER_16);
您能告诉我如何获取该寄存器以进行实际设置吗?
谢谢!
本