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.

[参考译文] MSP430FR2433:MISO 奇怪的波形

Guru**** 2560010 points
Other Parts Discussed in Thread: MSP430FR2433

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

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/682309/msp430fr2433-miso-weird-waveform

器件型号:MSP430FR2433
主题中讨论的其他器件: MSP430WARE

您好!

我一直在尝试使用两个 MSP430FR2433、一个用作主器件、另一个用作从器件。

我使用了 TI 提供的代码示例。

msp430fr243x_euscia0_SPI_12 从器件

msp430fr243x_euscia0_SPI_09主器件

MISO 波形永远不会变为零、它应该是这样吗?

时钟和 MOSI 波形符合预期

蓝色-> MOSI

黄色->时钟

绿色-> MISO

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您是否已将其设置为主器件上的 GPIO 输出并将其驱动为高电平?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、Keith、这是主代码

    /*-版权所有-、BSD_EX
    *版权所有(c) 2014、德州仪器(TI)公司
    *保留所有权利。
    *
    *以源代码和二进制形式重新分发和使用、有无
    *如果满足以下条件、则允许进行修改
    符合*:
    *
    **源代码的重新分发必须保留上述版权
    *注意、此条件列表和以下免责声明。
    *
    **二进制形式的再发行必须复制上述版权
    *请注意、中的此条件列表和以下免责声明
    *随分发提供的文档和/或其他材料。
    *
    **德州仪器公司的名称和名称均不相同
    *其贡献者可用于认可或推广衍生产品
    *未经特定的事先书面许可。
    *
    *本软件由版权所有者和贡献者"按原样"提供
    *以及任何明示或暗示的保证、包括但不限于:
    *特定适销性和适用性的隐含保证
    *不承认目的。 在任何情况下、版权所有者不得或
    *派遣国应对任何直接、间接、偶然、特殊、
    *典型或必然的损害(包括但不限于
    *采购替代货物或服务;丧失使用、数据或利润;
    *或业务中断)、无论原因是什么以及任何责任理论、
    *无论是合同、严格责任还是侵权行为(包括疏忽或)
    *否则)因使用本软件而以任何方式产生、
    *即使被告知可能会发生此类损坏。
    *
    秘书长的报告
    *
    * MSP430代码示例免责声明
    *
    * MSP430代码示例是通常包含的低级程序
    *高度演示单个外设功能或器件功能
    *简明扼要。 为此、代码可能依赖于器件的加电默认值
    *寄存器值和设置、如时钟配置和注意
    *在组合多个示例中的代码时应采取这种方法、以避免潜在的问题
    *效果。 有关 GUI、另请参阅 www.ti.com/grace 和 www.ti.com/msp430ware
    *用于外设配置的 API 函数库方法。
    *
    *--/版权--*/
    //
    // MSP430FR243x 演示- eUSCI_A0、SPI 3线制主器件递增数据
    //
    //说明:SPI 主设备使用3线制模式与 SPI 从设备通信。 令人惊叹
    //数据由从0x01开始的主器件发送。 接收到的数据
    //与之前的传输相同 TXData = RXData-1。
    // USCI RX ISR 用于处理与 CPU 的通信、通常在 LPM0中。
    // ACLK =~32.768kHz、MCLK = SMCLK = DCO ~ 1MHz。 BRCLK=SMCLK/2。
    //
    //
    // MSP430FR2433
    // --------
    // /|\| |
    // || |
    // -|RST |
    // | |
    // | P1.4|->数据输入(UCA0SIMO)
    // | |
    // | P1.5|<-数据输出(UCA0SOMI)
    // | |
    // | P1.6|->串行时钟输出(UCA0CLK)
    //
    //
    //朱灵
    // Texas Instruments Inc.
    // 2015年9月
    //使用 IAR Embedded Workbench v6.20和 Code Composer Studio v6.0.1构建
    //
    #include

    unsigned char RXData = 0;
    unsigned char TXData;

    int main (空)

    WDTCTL = WDTPW | WDTHOLD; //停止看门狗计时器

    P1SEL0 |= BIT4 | BIT5 | BIT6; //将3-SPI 引脚设置为第二个功能

    UCA0CTLW0 |= UCSWRST; //**将状态机置于重置中**
    UCA0CTLW0 |= UCMST|UCSYNC|UCCKPL|UCMSB;// 3引脚、8位 SPI 主器件
    //时钟极性高,MSB
    UCA0CTLW0 |= UCSSEL_SMCLK; // SMCLK
    UCA0BR0 = 0x01; ///2、fBitClock = fBRCLK/(UCBRx+1)。
    UCA0BR1=0; //
    UCA0MCTLW = 0; //无调制
    UCA0CTLW0 &=~UCSWRST; //**初始化 USCI 状态机**
    UCA0IE |= UCRXIE; //启用 USCI_A0 RX 中断
    TXData = 0x01; //保留 TX 数据

    PM5CTL0 &=~LOCKLPM5; //禁用 GPIO 上电默认高阻抗模式
    //激活先前配置的端口设置
    while (1)

    UCA0IE |= UCTXIE; //启用 TX 中断
    _bis_SR_register (LPM0_bits | GIE);//启用全局中断,进入 LPM0
    __no_operation(); //对于调试,保留在 LPM0中
    _DELAY_CYCLES (2000); //下次传输前延迟
    TXData++; //递增发送数据



    #if defined (__TI_Compiler_version__)|| Defined (__IAR_systems_ICC__)
    #pragma vector=USCI_A0_Vector
    _interrupt void USCI_A0_ISR (void)
    #Elif defined (_GNU_)
    void __attribute__((中断(USCI_A0_Vector)) USCI_A0_ISR (void)
    其他
    错误编译器不受支持!
    #endif

    开关(__evo_in_range (UCA0IV、USCI_SPI_UCTXIFG))

    USCI_NONE 案例:中断; //向量0 -无中断
    USCI_SPI_UCRXIFG 案例:
    RXData = UCA0RXBUF;
    UCA0IFG &=~UCRXIFG;
    _BIC_SR_REGISTER_ON_EXIT (LPM0_BITS);//唤醒以设置下一个 TX
    中断;
    USCI_SPI_UCTXIFG 案例:
    UCA0TXBUF = TXData; //发送字符
    UCA0IE &=~UCTXIE;
    中断;
    默认值:break;

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    如果这确实是你的主器件、或者你的评论是错误的:

    //| P1.4|->数据输入(UCA0SIMO)
    //||
    //| P1.5|<-数据输出(UCA0SOMI)
    //||
    //| P1.6|->串行时钟输出(UCA0CLK)

    表示"数据输入"是"MO"或"主输出"
    "数据输出"是"MI"或"主输入"。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    e2e.ti.com/.../msp430fr243x_5F00_euscia0_5F00_spi_5F00_12.ce2e.ti.com/.../msp430fr243x_5F00_euscia0_5F00_spi_5F00_11.cI'm抱歉、我上传了错误的代码。

    我正在使用4线制模式、我将立即上传正确的代码