Other Parts Discussed in Thread: TMP006, BOOSTXL-EDUMKII
主题中讨论的其他部件:BOOSTXL-EDUMKII, BOOSTXL-SENSORS
工具/软件:Code Composer Studio
您好,
我安装了简单的链接示例,但它不起作用,程序在调用函数 sensorTmp007后停止,我不明白它发生了什么。
有人能帮帮我吗?
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.
Other Parts Discussed in Thread: TMP006, BOOSTXL-EDUMKII
工具/软件:Code Composer Studio
您好,
我安装了简单的链接示例,但它不起作用,程序在调用函数 sensorTmp007后停止,我不明白它发生了什么。
有人能帮帮我吗?
Armando,
好的。 拥有BoosterPack中没有的传感器不是问题! 如果你也能引导我去做你的例子。 我不认为代码片段或项目名称是I2C示例之一,这些示例可以在 TI资源管理器 的 MSP432 SimpleLink SDK示例下找到。
可能发生的情况是,您根本没有使用LaunchPad针脚与外设针脚分配的正确组合。 如果您向我发送示例的位置,我可以帮助您解决问题。
此致,
Bob L.
Bob Landers
我很高兴穿上它(" 好的。 拥有不在BoosterPack中的传感器不是问题!"),我在 以下链接中的TI资源浏览器中使用的示例: bootxl_sensorguI_msp432p401r 。 我唯一做的修改是在main.c上。
相关内容:
MSP432 TMP006
5V ----------- >VCC
接地----------- 接地
6.5 >SCL
6.4 > SDA
接地----------- AD0
接地----------- AD1.
#include <stdio.h>
#include "msp.h"
#include "driverlib/driverlib.h"
#include "HAL_I2C.h"
#include "TMP006.h"
// TMP007
uint16_t rawTemp;
uint16_t rawObjTemp;
float tObjTemp;
obtfloat
= float mmajmw/ mavid Amp(空
WatchDoghold();
/*初始化I2C通信*/
initI2I22();
/*初始化TMP006温度传感器*/
sensorTmp007Init();
而(1){
/*从TMP006获得温度值*/
IF (TMP_ON){
sensorTmp007Enable(true);
sensorTmp007Read(&rawTemp,&rawObjTemp);
sensorTmp007Convert (rawTemp,rawObjTemp,&tObjTemp,&tObjAmb);
sensorTmp007Enable(fals);
}
}
}
void WatchDoghold(void ){
WDTCTL = WDTPW | WDTHOLD;/*停止监视计时器*/
}
一个直接的问题是,您是否拥有Bosch Sensor Sensor Hub BoosterPack (在丝网屏幕上有一个清晰的BOSCH),或者您是否拥有 BOOSTXL传感器 BPack (如本链接所示)? 2所需的代码会有所不同,因此要使用您参考的演示代码,需要安装BoosterPack。 我刚刚确认代码将会超过 sensorTmp007Init();请调用有问题的演示代码。
-Bob
Bob
我已经测试了tmp006和tmp007代码,两者都不起作用。 我已经知道该怎么做了。正如我前面提到的,我有一个Adafruit板,它包含tmp006,因为我已经看到一些用户在尝试连接此传感器时也有问题,我尝试了tmp007的代码,它一直工作到输入以下部分:
sensorTmp007Read(&rawTemp,&rawObjTemp);
sensorTmp007Convert (rawTemp,rawObjTemp,&tObjTemp,&tObjAmb);
在基座上,两个代码都是相似的,如果它起作用...代码挂起在布尔值上
Armando,
您是否能够在这方面取得更多进展? 我看了sensorTmp007Read和sensorTmp007Convert()的基本代码,你希望在你的代码中正确使用它们。 从这一点开始,我唯一想尝试的是使用传感器BoosterPack和您引用的bootxl_sensorgui代码,以查看在使用 本示例设计的硬件时,您的主板是否工作正常。
为供您将来参考,下面是我可能建议的其他操作,以使其正常工作:
这就是我目前能提供的所有帮助。 如果您确实获得了此功能,或者有一些其他调试数据,请继续阅读此帖子。
此致,
Bob L.
您的图看起来正常-我可以在输出中看到开始条件和停止条件。 下面是一个示例对,用于查看I2C是否在您的Launchpad上工作。 主/从设备对需要2个LPad。
以下示例位于MSP432P4 SDK下的TI资源浏览器中:
1. I2C_MASTER_w_multibyte-MASTER_CODE
2.I2C_MASTER_w_multibyte-slaver_code
另一种方法是在连接传感器BoosterPack时运行TMP007示例,查看是否获得SimpleLink Academy (SLA)模块中提到的结果。
(注意-此时SLA链接已关闭。 我将在发布时更新此帖子)。
此致,
Bob L.
您好,Bob Landers
我可以获得值,但是代码只在第一次运行时运行。 之后,读取值"冻结"。 我离开了我的I2C代码的书面功能
void I2C_write16 (无符号字符指针,无符号int writeByte){
/**/
while (EUSSCI_B1->CTLW0 & EUSCI_B_CTLW0_TXSTP);
/*启动I2C写入操作*/
EUSCI_B1->CTLW0 |= EUSCI_B_CTLW0_TR + EUSCI_B_CTLW0_TXSTT;
/**/
EUSCI_B1->IFG &=~(EUSCI_B_IFG_TXIFG0);
/**/
While (EUSCI_B1->STATW & EUSCI_B_STATW_BBUSY_OFS);
/**/
EUSCI_B1->TXBUF =指针;
/**/
EUSCI_B1->TXBUF =(unsigned char)(writeByte>>8));
/**/
EUSCI_B1->TXBUF =(unsigned char)(writeByte&0xFF);
/**/
EUSCI_B1->CTLW0 |= EUSCI_B_CTLW0_TXSTP;
/**/
}