“线程”中讨论的其它部件: CC2642R, 测试
您好,
我 使用 EXP430FR2433开发套件,将 MSP430FR2433配置为从属设备,将 p1.2配置为 SDA,将 p1.3配置为 SCL,同时还启用 了 I2C 中断从主设备接收数据...... 但 I2C 中断甚至不会触发一次以接收数据。在将 SDA 和 SCL 引脚与主中继器连接时,MSP430 EVK 正在向下拉 SDA 线....ca,您可以为此提供解决方案。
在主端,我收到“I2C 总线已在使用”之类的错误
MSP430FR2433代码中的从属模式配置如下
/*------------- GPIO 配置------------------------------------------------------- *
无效 GPIO 配置()
{
GPIO 设置外围模块功能输入引脚(
GPIO 端口 P1,
MSP_I2C_SDA | MSP_I2C_SCL,
GPIO 主模块功能
);
PM5CTL0和=~LOCKLPM5;
}
/*------------- 唾液模式--------------------------- *
void set_i2c_Slive_mode ()
{
PARAM_i2c_SLAVE .slaveAddress =从属地址; //从属 地址= 0x44
PARAM_i2c_SLAVE .slaveAddressOffset = EUSCI_B_I2C_OFFSET0; // EUSCI_B_I2C_OW_ADDREST_OFFSET0 = 0x00
PARAM_i2c_SLAVE .slaveOwnAddressEnable = EUSCI_B_I2C_OW_ADDREST_ENABLE;// EUSCI_B_I2C_OW_ADDREST_ENABLE = UCOAEN
EUSCI_B_I2C_initSlave_寄存 器(EUSCI_B0_BASE,¶m_i2c_Slave);
//启用 I2C 模块以启动操作
EUSCI_B_I2C_ENABLE (EUSCI_B0_BASE);
EUSCI_B_I2C_ClearInterrupt (EUSCI_B0_BASE,
EUSCI_B_I2C_Transmit INTERRUPT0 |
EUSCI_B_I2C_receive_INTERRUPT0 |
EUSCI_B_I2C_CLOCK_LOW_TIMEOUT_INTERRUPT |
EUSCI_B_I2C_STOP_INTERRUPT
);
EUSCI_B_I2C_enableInterrupt (EUSCI_B0_BASE,
EUSCI_B_I2C_receive_INTERRUPT0 |
EUSCI_B_I2C_CLOCK_LOW_TIMEOUT_INTERRUPT |
EUSCI_B_I2C_STOP_INTERRUPT
);
UCB0CTLW1 |= UCCLTO_3;//(clk 低超时约34毫秒)
}
/*------------- 中断----------------------- *
#pragma vector=USCI_B0_vector
_interrupt void USCIB0_ISR(void)// ISR 内禁用的所有中断
{
}