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.

[参考译文] CCS/MSP432P401R:MSP432P491R + TMP006

Guru**** 2595805 points
Other Parts Discussed in Thread: TMP006

请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/642558/ccs-msp432p401r-msp432p491r-tmp006

部件号:MSP432P401R

工具/软件:Code Composer Studio

各位同事,您好!

我正在尝试开发一个带有msp432和传感器tmp006的系统,我制作了一个示例代码,在这里我配置了DE I2C协议,但我没有得到传感器的温度。有人能帮我吗? 我将CCS与CMSIS一起使用,欢迎提供任何帮助。
提前感谢!

#define SCL_Pin			BIT5						/*PIN 5*/
#define SDA_Pin			BIT4						/*PIN 4*/
#define TMP006_ADDR (0x40)						/*设备地址*/

uint8_t	RXData[5]={0};
uint8_t RXDataPointer;

void TMP006_IRQ(void){/*I2C

引脚配置*/
P6->SEL0|= SCL_Pin | SCI_Pin;					/*PIN 6.5 和*DPREP*I2*I2*////*EBISCIR0_EBISC1*EPOIC_ENTIF_EBIST_BISC1*/= 6.4

启用
EBISC1= EBIST_POIC_BISC1=



		



			/*软件重置启用*/
EUSCI_B1->CTLW0 |= EUSCI_B_CTLW0_SWRST |/*		在重置模式下仍保留ESCI */
				EUSCI_B_CTLW0_MODE_3|/*I2*I2*I2*I2*ESCI_SCI_SCI_SCI_SCI_STB0_STB1*MASTER		
							模式*/ E1000_SCI_SCI_SCI_SCI_SCI_SCI_SCI_SCI_SCI_SCI_SCI_SCI0_SCI0_SC1=30=0=0=0=0=0=0=0=0=0=0=0=0=0=0=0=0=0=0=0=0=0=0=0=0=0=0=0=0=0=0=0=0=0=0=0=0=0=0=0=0=0=0=0=0=0=0=0=0=
							
					

		
								
						/*要接收的字节数*/
EUSCI_B1->I2CSA = TMP006_ADDR;					/*从属I2C特定地址*/
EUSCI_B1->CTLW0 &=~(EUSSCI_B_CTLW0_SWRST);		/*RELESE eUSCI from RESET*/

EUSCI_B1->IE |_EIE|EUSCI_RXB 		/*启用接收中断*/
	EUSCI_B_IE_NACKIE | 		/*启用nack interrupt */
	EUSCI_B_IE_BCNTIE; 		/*启用字节计数器中断*/
	
}

void UartI2C_Task(void){
	unsigned int I;

	SCB->SCR |= SCB_SCR_SLEEPONEXIT_MSK;		/*不唤醒PON EXIT ISR*/

	(i = 2000;I>0;I;I;I;I--);
	/*验证是否已发送停止条件/IF

	(EUSCI_LWSCI_SCI_SCI_SCI_SC1_LWSTB1_LWSTB1; E_SCB1_SCI_SCB1_SCI_SCI_SCB1_LWSTB1; E=0; E_B_SCI_SCI_SCI_SCI_SCI_SC1_LWSTB1_LWSTB1_SC
			
		
__no_operation();
}/*I2C

中断服务例程*/
void EUSCIB0_IRQHandler(void){
IF (EUSSCI_B0->IFG & EUSCI_B_IFG_NACKIFG){
EUSCI_B0->IFG &=~ EUSCI_B_IFG_NACKIFG;


EUSCI_B0->CTLW0 || EUSCI_B_CTLW0_TXSTT;/*I2C	启动条件*/
}
IF (EUSSCI_B0->IFG & EUSCI_B_IFG_RXIFG0){

EUSCI_B0->IFG &=~ EUSCI_B_IFG_RXIFG0;

RXData[RXDataPointer+]= EUSCI_B0->RXBUF;/*获取TX数据*/

如果(RXDataPointer > sizeof (RXData)){
RXDataPointer = 0;
}

//从ISR退出时唤醒
scb->scr &=~scb_scr_SLEEPONEXIT_MSK;	/*退出时唤醒DROM ISR*/


}
IF (EUSSCI_B0->IFG & EUSCI_B_IFG_BCNTIFG){

EUSCI_B0->IFG &=~ EUSCI_B_IFG_BCNTIFG;
}
}