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.

[参考译文] MSP430F1611:MSP430F1611 SPI 问题

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

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/732049/msp430f1611-msp430f1611-spi-problem

器件型号:MSP430F1611
主题中讨论的其他器件: MSP430F5324MSP430G2553

您好!
我想使用 SPI 通信与任何其他控制器(例如 Arduino)或其他 MSP430F1611进行通信,我访问了此(gist.github.com/.../3326502) 链接并尝试加载此代码,但存在问题。

这些代码行显示错误、

 P1SEL = BIT1 + BIT2 + BIT4;
 P1SEL2 = BIT1 + BIT2 + BIT4;
 UCA0CTL1 = UCSWRST;                      //**将状态机置于复位状态**
 UCA0CTL0 |= UCMSB + UCSYNC;              // 3引脚、8位 SPI 主器件
 UCA0CTL1 &=~UCSWRST;                    //**初始化 USCI 状态机**
 IE2 |= UCA0RXIE;   

错误是、

ERROR[Pe020]:标识符"P1SEL2"未定义
ERROR[Pe020]:标识符"UCA0CTL1"未定义  
ERROR[Pe020]:标识符"UCSWRST"未定义  
ERROR[Pe020]:标识符"UCA0CTL0"未定义  
ERROR[Pe020]:标识符"UCMSB"未定义  
ERROR[Pe020]:标识符"UCSYNC"未定义  
ERROR[Pe020]:标识符"UCA0RXIE"未定义  


请帮助我解决此问题。

谢谢你

注意事项。
工程师 Rizwan Khalid

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

    您好!

    这是因为 MSP430F1611的这些标识符没有分别在 MSP430.h 中的 msp430f1611.h 中定义。 它们属于不同的 MSP430。 如果我单击您的链接、我会收到404错误。

    MSP430F1611没有一个 USCI (通用串行通信接口)、而是一个通用同步/异步接收/发送(USART)。

    请查看我们的代码示例、这些示例可在产品文件夹 MSP430F1611的"工具与软件"选项卡下找到。

    fet140_spi0_05.c -主 SPI

    fet140_spi0_06.c -从器件 SPI

    您还可以在 TI Resource Explorer中找到这两者。

    MSP430F1611是我们较早的微控制器系列之一。 我建议使用较新版本 MSP430F5324。 它具有类似的规格、但价格比2.14美元低得多。

    此致、

    Andre

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    它没有显示错误、
    现在、我将检查是否向从器件发送数据。
    非常感谢
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    现在、我要将任何数据从主器件发送到从器件、例如、当我按下主器件的任何引脚(例如 P2.0)上连接的任何按钮时、LED 将连接到从器件的任何引脚(例如 P4.0)上。
    请告诉我它会怎么做??
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Rizwan、您好!

    请了解、我们无法为完整的应用提供示例代码。 在本例中、您有三个组件。

    I2C 通信

    2.按钮事件

    3. LED 亮起或闪烁

    对于 LED 闪烁、请参阅代码示例中的以下示例:fet140_1.c

    我们没有 MSP430F1611的按钮事件示例、但您可以使用其中一个 MSP430G2553。 唯一的区别是、MSP430G2553具有内部上拉电阻、而 MSP430F1611没有内部上拉电阻。 您需要在外部放置一个。 上拉电阻器必须具有已定义的信号、并且不会使引脚悬空。

    http://dev.ti.com/tirex/#/Device/MSP430G2553/?link=Software%2FMSP430Ware%2FDevices%2FMSP430G2553%2FPeripheral%20Examples%2FRegister%20Level%2Fmsp430g2xx3_P1_04.c

    #include 
    
    int main (void)
    {
    WDTCTL = WDTPW + WDTHOLD; //停止看门狗计时器
    P1DIR = 0x01; // P1.0输出、否则输入
    P1OUT = 0x10; // P1.4置1、否则复位
    // MSP430F1611没有内部上拉 

    // P1REN |= 0x10; // P1.4上拉 P1IE |= 0x10; // P1.4中断使能 P1IES |= 0x10; // P1.4高/低边沿 P1IFG &=~0x10; // P1.4 IFG 清零 __bis_SR_register (LPM4_bits + GIE); //输入带中断的 LPM4 } //端口1中断服务例程 #if defined (__TI_Compiler_version__)|| Defined (__IAR_systems_ICC__) #pragma vector=Port1_vector __interrupt void Port_1 (void) #Elif defined (__Gvoid Compiler__) void __attribute__(void Port1_vector)(void Port1_vector )(void Port1)(void)(void Port1)(void)(void)(void!port 1 (void)(void #endif { P1OUT ^= 0x01; // P1.0 =切换 P1IFG &=~0x10; // P1.4 IFG 清零 }

    此致、

    Andre

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