器件型号:MSP432P4111
尊敬的所有人:
我尝试使用 P3.4~P3.6作为 SPI2接口、代码如下所示。 但它不像我预期的那样工作。 有人知道我在配置中缺少什么吗? 谢谢你。
xview。
========================================================================
// MSP432上连接到 SD 卡的引脚
#define SD_SOMI BIT7
#define SD_SIMO BIT6
#define SD_CLK BIT5
#define SD_CS BIT4
//端口
#define SD_SPI_SEL P3->SEL0
#define SD_SPI_DIR P3->DIR
#define SD_SPI_OUT P3->OUT
#define SD_CS_OUT P3->OUT
#define SD_CS_DIR P3->DIR
#define SD_EUSCI EUSCI_B2
空 SDCard_init (空)
{
SD_SPI_SEL |= SD_CLK + SD_SOMI + SD_SIMO;
SD_SPI_DIR |= SD_CLK + SD_SIMO;
SD_SPI_OUT |= SD_SOMI;//某些 SD 卡品牌需要上拉
SD_CS_DIR |= SD_CS;
SD_CS_OUT |= SD_CS;
SD_EUSCI->CTLW0 |= EUSCI_B_CTLW0_SWRST; //将 eUSCI 状态机复位
SD_EUSCI->CTLW0 = EUSCI_B_CTLW0_SWRST | //在复位时保持 eUSCI 状态机
EUSCI_B_CTLW0_MST | //设置为 SPI 主设备
EUSCI_B_CTLW0_SYNC | //设置为同步模式
EUSCI_B_CTLW0_CKPH | //将时钟极性设置为高电平
EUSCI_B_CTLW0_MSB; // MSB 优先
SD_EUSCI->CTLW0 |= EUSCI_B_CTLW0_ssel_SMCLK;
SD_EUSCI->BRW = 48; ///2、fBitClock = fBRCLK/(UCBRx+1)。
SD_EUSCI->CTLW0 &=~EUSCI_B_CTLW0_SWRST; //初始化 USCI 状态机
}
========================================================================================================