请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
器件型号:MSP430F5528 大家好、
我的客户使用 MSP430、通过 DMA1 (RX)、DMA2 (TX)在从模式下发送和接收 SPI、通常情况下运行正常。
然而、当通过移除 STE 信号或中断从器件而发生溢出或时钟丢失时、会尝试恢复基于 STE 信号的复位过程、但移位寄存器似乎未初始化。
假定发送寄存器中剩余的数据将被重复输出。
SPI 模块为 SCB0。
//******************************************************************************
// yk2023
//This is the PORT1_VECTOR interrupt vector service routine
//
//******************************************************************************
#if defined(__TI_COMPILER_VERSION__) || defined(__IAR_SYSTEMS_ICC__)
#pragma vector=PORT1_VECTOR
__interrupt
#elif defined(__GNUC__)
__attribute__((interrupt(PORT1_VECTOR)))
#endif
void Port_1 (void)
{
// ISP reset
USCI_B_SPI_transmitData(USCI_Bx_BASE, TxNull);
USCI_B_SPI_disable(USCI_Bx_BASE);
USCI_B_SPI_enable(USCI_Bx_BASE);
DMA_disableTransfers(DMA_CHANNEL_1);
//Enable DMA transfers on channel 1
DMA_enableTransfers(DMA_CHANNEL_1);
DMA_disableTransfers(DMA_CHANNEL_2);
//Enable DMA transfers on channel 0
DMA_enableTransfers(DMA_CHANNEL_2);
//P1.4 IFG cleared
GPIO_clearInterrupt(
GPIO_PORT_P1,
GPIO_PIN4
);
}
如有必要、可以提供 SPI 部分的源。
如果您有任何问题、请告诉我。
提前感谢您。
此致、
肯利