MSP430F5 SPI 从模式中断程序流程探讨

2019-03-24 14:49发布

我现在两个MCU,MCU1用3个GPIO模拟SPI作为主设备,430做为从设备.我看了一个TI例程,其中的SPI中断部分是这样的: 进入中断->判断是否可以发送数据("否"继续等待,"是"的话就把要发的数据放进发送缓冲区)->接收来自主设备的数据->退出. 我先在从设备要给主设备发送数据的话通过置第4个GPIO4告诉主设备,主设备检测GPIO4为高就来读,那么GPIO4的置位操作应该放在哪一步.如果放在该中断程序里,主设备不会发出时钟信号,程序也就不会进入中断;如果放在外面,主设备读到的数据会发生错误.主设备从第一个时钟下降沿开始读数据.请问有什么好的处理办法. TI例程如下: #pragma vector=USCI_A0_VECTOR
__interrupt void USCI_A0_ISR (void)
{
    switch (__even_in_range(UCA0IV,4)){
        //Vector 2 - RXIFG
        case 2:
            //USCI_A0 TX buffer ready?
            while (!SPI_getInterruptStatus(__MSP430_BASEADDRESS_USCI_A0__,
                       SPI_TRANSMIT_INTERRUPT
                       )) ;             //Transmit data to master
            SPI_transmitData(__MSP430_BASEADDRESS_USCI_A0__,
            transmitData
            );             //Receive data from master
            receiveData = SPI_receiveData(__MSP430_BASEADDRESS_USCI_A0__);             //Increment data to be transmitted
            transmitData++;             break;         default: break;
    }
} 此帖出自小平头技术问答
0条回答

一周热门 更多>

相关问题

    相关文章