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.

[参考译文] MSP432P401R:使用 DriverLib 设置主 SPI 4线接口

Guru**** 2524550 points


请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/750700/msp432p401r-master-spi-4-wire-interface-setup-using-driverlib

器件型号:MSP432P401R

您好!

我正在尝试使用4线 SPI 协议与外部闪存进行通信。 我在 DriverLib 中看不到完全实现这一目标的方法。 我必须恢复手动设置外设寄存器中的位、请参阅下面的代码片段。

为什么需要设置该位、我猜与勘误表 USCI50有关?

这使用的是 simplelink_msp432p4_sdk_2_30_00_14。

那么、我想我的问题是、如何使用 DriverLib 根据勘误表 USCI50设置 UCSTEM = 1?


Edward

//外部闪存 IO
#include 
#include 

#define EXTFLASH_SPI_base EUSCI_A1_base

const uint8_t port7_mapping []=
{
//端口 P7:
PMAP_NONE、 PMAP_NONE、 PMAP_NONE、 PMAP_NONE、
PMAP_UCA1STE、PMAP_UCA1SIMO、PMAP_UCA1SOMI、PMAP_UCA1CLK //外部闪存端口映射
};

const eUSCI_SPI_MasterConfig spiMasterConfig =
{
EUSCI_B_SPI_CLOCKSOURCE_SMCLK、
12000000、
12000000、
EUSCI_SPI_MSB_FIRST、
EUSCI_SPI_PHASE_DATA_Captured_ONFIRST_Changed_ON_NEXT、
EUSCI_SPI_CLOCKPOLARITY_INACT_LOW、
EUSCI_SPI_4PIN_UCxSTE_ACTIVE_LOW
};

uint32_t extFlashInit()
{
//设置 SPI 外设
SPI_initMaster (EXTFLASH_SPI_base、&spiMasterConfig);
EUSCI_A_CMSIS (EXTFLASH_SPI_base)->CTLW0 |= EUSCI_A_CTLW0_STEM;// HACK 可使4线正常工作
SPI_enableModule (EXTFLASH_SPI_base);

//设置端口 I/O
PMAP_configurePorts ((const uint8_t *) port7_mapping、PMAP_P7MAP、1、
PMAP_ENABLE_Reconfiguration);

GPIO_setPeripheralModuleFunctionOutputPin (GPIO_PORT_P7、
GPIO_PIN4 | GPIO_PIN5 | GPIO_PIN7、
GPIO_PRIMARY_MODULE_FUNCTION);
GPIO_setPeripheralModuleFunctionInputPin (GPIO_PORT_P7、
GPIO_PIN6、
GPIO_PRIMARY_MODULE_FUNCTION);

返回0;
}



  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    尊敬的 Edward:

    此函数将执行以下操作:
    SPI_selectFourPinFunctionality

    此致、
    Stefan