主题中讨论的其他器件:MSP430WARE、 LP5569、
我正在尝试使用 MSP430Ware 中提供的驱动程序库在 LP-MSP430FR2476微控制器和 TI LP5569 LED 驱动器之间建立 I2C 通信。 我正在使用 Code Composer Studio v10 1.1.0.00010进行编程、并使用 MSP430Ware v3.80.10.09。 不幸 的是、当我运行 MSP430Ware_3_80_13_03\driverlib\examples\MSP430FR2xx_4xx\eusci_b_i2c\eusci_b_i2c_ex3_masterTxMultiple.c 中提供的示例代码时、我的程序在第一次调用"EUSCI_B_I2C_SendData+"(EUSCI_Start+、USCI_Multib+、b+、"uSend"BuData"时挂起。 具体而言、在该函数调用中、我的程序似乎在 eusci_b_i2c_.c 中停止 以下是我的程序被卡住的函数:
void EUSCI_B_I2C_masterSendMultiByteStart (uint16_t baseAddress、 uint8_t txData ) { //存储当前发送中断使能 uint16_t txieStatus = HWREG16 (baseAddress + OFS_UCBxIE)& UCTXIE; //禁用发送中断使能 HWREG16 (baseAddress + OFS_UCBxIE)&=~(UCTXIE); //发送启动条件。 HWREG16 (baseAddress + OFS_UCBxCTLW0)|= UCTR + UCTXSTT; //轮询发送中断标志。 <------------ 代码卡在这里 while (!(HWREG16 (baseAddress + OFS_UCBxIFG)& UCTXIFG)); //发送单字节数据。 HWREG16 (baseAddress + OFS_UCBxTXBUF)= txData; //恢复发送中断使能 HWREG16 (baseAddress + OFS_UCBxIE)|= txieStatus; }
我对示例代码所做的唯一偏差是更改从器件地址(我将 LP5569的地址设置为0x40)、GPIO 引脚(使用了 P1、引脚2和3)、并且我已更改中断代码以发送特定的两个字节 (控制寄存器地址后跟该寄存器的新值、但程序无论如何都不会达到该阶段)。
提前感谢!