请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
工具/软件:Code Composer Studio
您好!
我正在使用 TM4C123G 板、并按照"SW-TM4C-SENSORLIB-UG-1.1.pdf"中给出的示例连接 MPU6050、但我在生成 I2C 通信时遇到问题。 该示例是否足够、或者是否应该为通信添加额外的线路。 如果是、请 您提到我必须做的更改。
This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
工具/软件:Code Composer Studio
您好!
我正在使用 TM4C123G 板、并按照"SW-TM4C-SENSORLIB-UG-1.1.pdf"中给出的示例连接 MPU6050、但我在生成 I2C 通信时遇到问题。 该示例是否足够、或者是否应该为通信添加额外的线路。 如果是、请 您提到我必须做的更改。
您好!
很抱歉问这个基本问题、因为我对这个字段不熟悉 、我如何检查与其对应的 SCL 和 SDA 是否空闲。
void I2C1Init (void) { //clok 时钟= SysCtlClockFreqSet ((SYSCTL_OSC_INT | SYSCTL_USE_PLL | SYSCTL_CFG_VCO_480)、12000000); //启用 I2C 模块1 的时钟;SysCtl_Periph_I2CP1_ 引脚(GPIO_RESET_GPIOPT_GPIO6_GP1_);//为 GPIOP1_GPIOPT1_RESET_GPIOPT_6引脚配置 GPIOPT_GPIOPT_IP_IP_PHIN 引脚;GP1_引脚1 (GP1_IP_IP_IP_IP_IP_IP_GPIOPT_IP_IP_IP_IP_RESET_GP1_引脚1);GP1_IP_IP_IP_IP_IP_IP_IP_IP_IP_IP_IP_IP_GPIP_IP_6 (GPIOPT_IP_IP_IP_GPIP_GPIP_GPIP_GPIP_GPIP_6 (GPIP_IP_IP_IP_ //启用和初始化 I2C1主模块使用系统时钟 // I2C1模块。 I2C1传输速率设置为400kbps I2CMasterInitExpClk (I2C1_base、时钟、true); //清除 I2C FIFO HWREG (I2C1_base + I2C_O_FIFOCTL)= 80008000; //I2CMInit (&sI2CInst、I2C1_base、INT_I2ff、0xC1 0xFF、时钟); }
这是我的 I2C 初始化。 我所面临的问题是每次在 TM4C123G 调试器上调试代码时、while 循环中都会停止。
G_bMPU6050Done = false; MPU6050Init (&sMPU6050、&sI2CInst、0x68、MPU6050Callback、 0); while (!g_bMPU6050Done);
我已经阅读了很多文章、但我找不到任何好的答案、可以帮助我。
谢谢、
Amit Ashara、您好!
感谢大家的支持、我现在能够更清楚地理解。 但在调试期间、我发现 MPU6050初始化失败。
如上图所示
MPU6050Init (&sMPU6050、&sI2CInst、0x68、MPU6050Callback、0);
函数返回零。 因此 、它自身的第一次初始化会遇到一些问题。 因此、我想将"PU6050Callback"替换为 NULL、它也以相同的方式工作。 您能用什么方式帮助我吗? 我还 关注 了您在以下链接中的对话
谢谢你。
Vishnu