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.
Kyle wang, 你先查查看ARM的I2C是否支持multi-master I2C systems下的arbitration,如果支持的话,那你可以两遍都设为master,在应用过程中如果ARM和MSP430同时发送数据的话,总线仲裁就会起作用。但是如果ARM不支持的话,你就把ARM设为master,MSP3430设为slave,两外将MSP430的一个GPIO接至ARM,当MSP430检测到SIM卡插入,想要发送数据给ARM时,就先给通过GPIOARM一个中断,告诉ARM我要传数了即可。自己看着灵活应用吧。
Lina Lian,您好!
我I2C模块的时钟源直接照搬例程中的设置
void System_Clock_Init(void)
{
WDTCTL = WDTPW + WDTHOLD; // Stop watchdog
if (CALBC1_1MHZ ==0xFF || CALDCO_1MHZ == 0xFF)
{
while(1); // If calibration constants erased
// do not load, trap CPU!!
}
BCSCTL1 = CALBC1_1MHZ; // Set DCO
DCOCTL = CALDCO_1MHZ;
}
void Setup_USI_Slave(void)
{
USICTL0 = USIPE6 + USIPE7 + USISWRST; // Port & USI mode setup
USICTL1 = USII2C + USIIE + USISTTIE; // Enable I2C mode & USI interrupt
USICKCTL = USICKPL; // Setup clock polarity
USICNT |= USIIFGCC; // Disable automatic clear control
USICTL0 &= ~USISWRST; // Enable USI
USICTL1 &= ~USIIFG; // Clear pending flag
DataDirection = Receive;
__enable_interrupt();
}