请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
器件型号:CC1350STK 工具/软件:Code Composer Studio
你(们)好
我已根据 wiki 中提到的步骤(忽略磁力计的计算)、将底部链接作为磁力计的示例代码。 当我运行底部代码时、我得到三个轴的0 (null)值。您能帮助我解决这个问题吗?
void * mainThread (void * arg0)
{
/* 1秒延迟*/
uint32_t 时间= 1;
unsigned int i;
/*调用驱动程序初始化函数*/
GPIO_init();
I2C_init();
display_init();
/*打开主机显示屏以输出*/
Display = Display_open (Display_Type_UART、NULL);
if (display =NULL){
while (1);
}
/*打开用户 LED */
GPIO_WRITE (Board_GPIO_LED0、Board_GPIO_LED_ON);
Display_printf (display、0、0、"启动 Display \n");
/*创建 I2C 以供使用*/
I2C_Params_init (&i2cParams);
i2cParams.bitrate = I2C_400kHz;
I2C = I2C_open (Board_I2C_TMP、&i2cParams); // Board_I2C_TMP 这是正确的地址?
if (i2c == NULL){
Display_printf (display、0、0、"Error Initializing I2C\n");
while (1);
}
否则{
display_printf (display、0、0、"I2C initialized!\n"\});
}
if (SensorI2C_open ())
{
SensorMpu9250_init();
SensorMpu9250_powerOn ();
SensorMpu9250_enable (0x006F); // 这是启用传感器的正确方法吗?
}
while (1)
{
bool 成功;
//读取数据
Success = SensorMpu9250_magRead (magData);
if (成功)
{
i2cTransaction.slaveAddress = Board_MPU9250_MAG_ADDR; // 0x0C
MAG_X = 1.0 * magData[0];
mag_y = 1.0 * magData[1];
mag_z = 1.0 * magData[2];
display_printf (display、0、0、"Sample %u:%d (C)\n"、i、mag_X);
display_printf (display、0、0、"Sample %u:%d (C)\n"、i、mag_y);
display_printf (display、0、0、"Sample %u:%d (C)\n"、i、mag_z);
}
}
睡眠(时间);
GPIO_TOGGLE (Board_GPIO_LED0);
I2C_Close (i2c);
display_printf (display、0、0、"I2C closed!\n"\});
返回0;
}
提前感谢
此致
RAM