void I2CMasterSpeedSet(unsigned long ulBase, unsigned long ulSpeed)
{
unsigned long ulClk, ulTPR;
ulClk = SysCtlClockGet( ); // 获取当前的系统时钟速率
ulTPR = (ulClk / (2 * 10)) / ulSpeed;
//ulTPR = ((ulClk + (2 * 10 * ulSpeed) - 1) / (2 * 10 * ulSpeed)) - 1; // 两种计算ulTPR的方式均可
if (ulTPR < 2) ulTPR = 2; // 防止过高的速率设置请求
if (ulTPR > 256) ulTPR = 256; // 防止过低的速率设置请求
ulTPR = ulTPR - 1;
HWREG(ulBase + I2C_O_MTPR) = ulTPR;
}
这个函数最后行是什么意思,I2C_O_MTPR是什么啊?
请高手指教,谢谢!
I2C_O_MTPR 0x0000000C // I2C Master Timer Period
I2CMasterSpeedSet 这个应该不是库里边的函数吧。
一般用I2CMasterInitExpClk来初始化