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:模式1类型的 MSP432 driverlib SPI 设置

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

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/650785/msp432p401r-msp432-driverlib-spi-setup-for-mode-1-type

器件型号:MSP432P401R

我使用的是 MAX31855、它使用只读模式1 SPI 实现

1) 1) 我想确认"clockPhase (时钟相位)"和"clockPolarity (时钟极性)"条目的正确值是多少

在 eUSCI_SPI_MasterConfig 结构中。

 {
uint_fast8_t selectClockSource
uint32_t 时钟源频率
uint32_t 需要的 SpiClock
uint_fast16_t msbFirst
UINT_fast16_t 时钟相位
uint_fast16_t 时钟极性
UINT_fast16_t spiMode

2) 2)芯片返回一个32位值(即4字节)。 这是否意味着我必须 执行4个随机字节的 SPI 传输、每次传输后进行 SPI 读取

为了检索所有4个字节或、1个随机 SPI 字节发送和4个 SPI 读取。

谢谢

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

    您好!

    [引用 user="David Nyarko]1) 我想确认'clockPhase '和'clockPolarity'条目的正确值是什么

    供您参考:

    /* SPI_POL0_PHA0 */
    EUSCI_B_SPI_CLOCKPOLARITY_INACTION_LOW |
    EUSCI_B_SPI_PHASE_DATA_Captured_ONFIRST_Changed_ON_NEXT、
    
    /* SPI_POL0_PHA1 */
    EUSCI_B_SPI_CLOCKPOLARITY_INACTION_LOW |
    EUSCI_B_SPI_PHASE_DATA_Changed_ONFIRST_Capted_On_NEXT、
    
    /* SPI_POL1_PHA0 */
    EUSCI_B_SPI_CLOCKPOLARITY_INACTION_HIGH |
    EUSCI_B_SPI_PHASE_DATA_Captured_ONFIRST_Changed_ON_NEXT、
    
    /* SPI_POL1_PHA1 */
    EUSCI_B_SPI_CLOCKPOLARITY_INACTION_HIGH |
    EUSCI_B_SPI_PHASE_DATA_Changed_ONFIRST_captured_on_next 

    如果我没有弄错、对于 MAX31855、您将需要 SPI_POL0_PHA0、因此您的结构应如下所示:

    eUSCI_SPI_MasterConfig spiMasterConfig =
    {
    EUSCI_B_SPI_CLOCKSOURCE_SMCLK、 // SMCLK 时钟源
    0、
    4000000、 // SPICLK = 4MHz
    EUSCI_B_SPI_MSB_FIRST、 // MSB First
    EUSCI_B_SPI_PHASE_DATA_Captured_ONFIRST_Changed_ON_NEXT、// Phase
    EUSCI_B_SPI_CLOCKPOLARITY_INACTION_LOW、//低极性
    EUSCI_B_SPI_3引脚 // 3线 SPI 模式
    }; 

    [引用用户="David Nyarko"]

    2) 2)芯片返回一个32位值(即4字节)。 这是否意味着我必须 执行4个随机字节的 SPI 传输、每次传输后进行 SPI 读取、以便检索所有4个字节或1个随机 SPI 字节传输和4个 SPI 读取。 [/报价]

    四 次 SPI 读取、bspSpiRead (myBuf、4);   

    void bspSpiWrite (const uint8_t * buf、size_t length)
    {
    while (length-)
    {
    map_spi_transmitData (eUSCI_B0_BASE、* buf++);
    while (map_spi_isBusy (eUSCI_B0_BASE));
    }
    
    
    void bspi_transmitData (uint8_BASE
    
    
    
    
    
    = 0xbsp+);* bspi_translength (while +)* bSPI (uint0_bspi_bspi_bus+)+(while)+(uSPI)+(buSPI)+)* bus_buSPI (bus_bus_bus_bus_bus_bt (while +);
    }* busi_bid_bus_b
    

    希望这对您有所帮助。

     David

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

    谢谢。 这对我有很大帮助。 我仍有一些问题、但我将创建一个独立项目、该项目仅与热电偶 IC 通信并从该 IC 开始工作

    以确认它是否与固件或硬件相关。

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

    谢谢。 现在一切都正常。