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.

[参考译文] MSP-EXP430FR5969:MSP-EXP430FR5969

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

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/732581/msp-exp430fr5969-msp-exp430fr5969

器件型号:MSP-EXP430FR5969
主题中讨论的其他器件:MSP430FR5969MSP430WARE

您好!

我想使用 UART 获取一些字符串、并使用中断返回相同的字符串。 我无法写入正确的程序。 此外、如何实现该代码?

我应该将 TXD 和 RXD 引脚短接吗? 还是应该使用图中所示的 USB 转线缆?

  

还可以帮助您处理代码。

#include 
#include 
#include 


volatile unsigned int i;

void main (void)
{
WDTCTL = WDTPW + WDTHOLD; //停止 WDT
PM5CTL0 &=~LOCKLPM5;
P4DIR |= BIT6;
P1DIR |= 0x01; //所有 P1.x 输出
P1OUT |= 0x01;
P4OUT |= BIT6;

P2SEL0 = 0x00;//(BIT5 + BIT6);
P2SEL1 |= 0x60;//BI5 + BIT6;

UCA0CTL1 |= UCSSEL_1; // CLK = ACLK
UCA0BR0 = 0x03; // 32kHz/9600 = 3.41
UCA0BR1 = 0x00; //
UCA0MCTLW |= 0x0021;//UCA0MCTL = UCBRS1 + UCBRS0; //调制 UCBRSx = 3.
UCA0IE |= 0x000F;

UCA0CTL1 &=~UCSWRST;

UCA0TXBUF ='1';

_bis_register (GIE);//_enable_interrupt ();

}

#OUT pragma vector = USCI_A0_vector
_ interrupt void USCI_A0_ISR (void){
switch (_even_in_range (UCA0IV、18))
}{//此处我切换 LED 只是为了查看中断是否发生




了 UCI_A0_ISR;Vector 0x0:0xBIT0 = 0x00或0xBIT0:0x4:0xBIT0:0xBIT0 ^^^ 0:0xBIT0:0x4:0xBI0/ 0/ 0/ 0:0xBIT0:0x4:0xBIT0:0:0:0:0xBIT0 UCTXIFG
break;
case 0x06:P1OUT ^= BIT0;//向量6:UCSTTIFG
break;
case 0x08:P1OUT ^= BIT0;//向量8:UCTXCPTIFG

break;
default:break;
}

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

    <<<我希望使用 UART 获取一些字符串、并使用中断返回相同的字符串。
    哪种硬件会发送您的字符串、哪种硬件是接收器?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、Tushar、
    我建议您从 TI-Resource Explorer 中提供的代码示例开始、该示例随附 IDE Code Composer Studio (CCS)、可从 TI 网页下载。

    当您在 CCS 中打开 Resource Explorer 并在左侧窗口转到 Software >> MSP430Ware - v3.80.04.05 >> Devices >> MSP430FR5XX_6XX >> MSP430FR5969 >> Peripheral Examples >> Register Level 时,您可以找到各种示例,包括多个用于 UART 的示例。 还有一个简单的回路代码示例 msp430fr59xx_euscia0_UART_03.c
    这是一个经过测试的代码示例、您可以使用该示例验证您的硬件。 验证成功后、您可以逐步修改它以用于您的目的。

    /*-版权所有-、BSD_EX
    *版权所有(c) 2012、德州仪器(TI)公司
    *保留所有权利。
    *
    *以源代码和二进制形式重新分发和使用、有无
    *如果满足以下条件、则允许进行修改
    符合*:
    *
    **源代码的重新分发必须保留上述版权
    *注意、此条件列表和以下免责声明。
    *
    **二进制形式的再发行必须复制上述版权
    *请注意、中的此条件列表和以下免责声明
    *随分发提供的文档和/或其他材料。
    *
    **德州仪器公司的名称和名称均不相同
    *其贡献者可用于认可或推广衍生产品
    *未经特定的事先书面许可。
    *
    *本软件由版权所有者和贡献者"按原样"提供
    *以及任何明示或暗示的保证、包括但不限于:
    *特定适销性和适用性的隐含保证
    *不承认目的。 在任何情况下、版权所有者不得或
    *派遣国应对任何直接、间接、偶然、特殊、
    *典型或必然的损害(包括但不限于
    *采购替代货物或服务;丧失使用、数据或利润;
    *或业务中断)、无论原因是什么以及任何责任理论、
    *无论是合同、严格责任还是侵权行为(包括疏忽或)
    *否则)因使用本软件而以任何方式产生、
    *即使被告知可能会发生此类损坏。
    *
    秘书长的报告
    *
    * MSP430代码示例免责声明
    *
    * MSP430代码示例是通常包含的低级程序
    *高度演示单个外设功能或器件功能
    *简明扼要。 为此、代码可能依赖于器件的加电默认值
    *寄存器值和设置、如时钟配置和注意
    *在组合多个示例中的代码时应采取这种方法、以避免潜在的问题
    *效果。 有关 GUI、另请参阅 www.ti.com/grace 和 www.ti.com/msp430ware
    *用于外设配置的 API 函数库方法。
    *
    *--/版权--*/
    //
    // MSP430FR59xx 演示- USCI_A0外部环回测试@ 115200波特
    //
    //说明:此演示将 TX 连接到 MSP430 UART 的 RX
    //示例代码显示了寄存器的正确初始化
    //和中断来接收和发送数据。 如果数据不正确、则 P1.0指示灯为
    //打开。
    // ACLK = n/a、MCLK = SMCLK = BRCLK =默认 DCO = 1MHz
    //
    //
    // MSP430FR5969
    // --------
    // RST -| P2.0/UCA0TXD|---|
    // | ||
    // -| ||
    // | P2.1/UCA0RXD|---|
    // | |
    // | P1.0|--> LED
    //
    / P. Thanigai
    // Texas Instruments Inc.
    /2012年8月
    //使用 CCS V4和 IAR Embedded Workbench 构建版本:5.5
    //
    #include

    volatile unsigned char RXData = 0;
    volatile unsigned char TXData = 1;

    int main (空)

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

    //配置 GPIO
    P1OUT &=~BIT0; //清除 P1.0输出锁定
    P1DIR |= BIT0; //表示 P1.0上的 LED
    P2SEL1 |= BIT0 | BIT1; // USCI_A0 UART 操作
    P2SEL0 &=~(BIT0 | BIT1);

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

    //将 USCI_A0配置为 UART 模式
    UCA0CTLW0 = UCSWRST; //将 eUSCI 置于复位状态
    UCA0CTL1 |= UCSSEL_SMCLK; // CLK = SMCLK
    UCA0BR0 = 8; // 1000000/115200 = 8.68
    UCA0MCTLW = 0xD600; // 1000000/115200 - INT (1000000/115200)=0.68
    // UCBRSx 值= 0xD6 (请参阅 UG)
    UCA0BR1=0;
    UCA0CTL1 &=~UCSWRST; //解除复位
    UCA0IE |= UCRXIE; //启用 USCI_A0 RX 中断

    while (1)

    while (!(UCA0IFG & UCTXIFG));
    UCA0TXBUF = TXData; //将数据加载到缓冲区中

    _bis_SR_register (LPM0_bits | GIE); //输入 LPM0、中断被启用



    #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

    switch (__evo_in_range (UCA0IV、USCI_UART_UCTXCPTIFG))

    USCI_NONE 案例:中断;
    USCI_UART_UCRXIFG 案例:
    RXData = UCA0RXBUF; //读取缓冲区
    if (RXData!= TXData) //检查值

    P1OUT |= BIT0; //如果不正确,打开 P1.0
    while (1); //陷阱 CPU

    TXData++; //递增数据字节
    _BIC_SR_REGISTER_ON_EXIT (LPM0_BITS);//在 TI 上退出 LPM0
    中断;
    案例 USCI_UART_UCTXIFG:中断;
    案例 USCI_UART_UCSTTIFG:中断;
    案例 USCI_UART_UCTXCPTIFG:中断;



    此致
    Peter
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我建议您从示例 msp430fr59xx_euscia0_UART_03.c 开始(slac536k、"产品"页面上的"工具和软件")。

    要实现物理回路、请在 TXD 和 RXD 引脚之间使用跳线。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    P2SEL1 |= BIT0 | BIT1;// USCI_A0 UART 操作
    P2SEL0 &=~(BIT0 | BIT1);
    您的代码已在上述行中提及。

    但对于 MSP-EXP430FR5969、RXD 和 TXD 引脚为2.6 2.5、
    因此、我认为代码应该如下所述
    如果我错了、请更正。
    P2SEL1 |= BIT5 | BIT6;// USCI_A0 UART 操作
    P2SEL0 &=~(BIT5 | BIT6);

    此外、不检查错误数据、而是检查正确的数据并按如下方式进行更改

    if (RXData = TXData)//检查值

    P1OUT |= BIT0;//如果错误打开 P1.0
    while (1);//陷阱 CPU


    但它仍然无法正常工作。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    谢谢你
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    没有特殊硬件。 我刚刚将 MSP-EXP430FR5969开发板连接到我的 PC 并使用 Code Composer Studio。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    >但对于 MSP-EXP430FR5969、RXD 和 TXD 引脚为2.6 2.5、
    根据 Launchpad UG (SLAU535B)第6节、P2.0/.1 (UCA0)连接到反向通道 TXD/RXD (J13)。

    根据数据表(SLAS704F)、表6-54、P2.5/.6为 UCA1。 它们在 J4上可用,在这里它们只是为了混淆事物,也标记为“TXD/RXD”。 但它们不是您想要的。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您的 PC 上有哪些软件可从 COM 端口读取并发送回 LP?
    您知道如何查找反向通道使用的 COM 端口吗?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、Tushar、
    只是为了清理一些东西。
    如 Bruce 所述,连接到 PC 的反向通道 UART 位于 P2.1/RX 和 P2.0/TX 上,显示在 LP 用户指南 www.ti.com/.../slau535b.pdf 第37页的 LP 原理图中
    因此、如果您打算使用与 PC 的通信、则需要使用这些引脚。 在 IO 原理图部分的数据表中、您可以找到有关选择特定 IO 功能所需的控制位选择的详细信息。
    正如您之前提到的 PC 一样、我们还需要阐明您正在使用的硬件状态、因为 PC 和 MSP430回路不能同时工作。 请记住、PC TX 和 MSP430 TX 将相互推动。 这也是您不接收数据的原因之一。
    因此、请确保、如果您测试的是 MSP430唯一回路、则需要从 PC 断开 TX 与 MSP430 TX 的连接。 这些是 J13处的跳线、在本例中需要断开。
    在 PC 上运行 UART 的情况下、需要移除 MSP TX 和 RX 之间的短路。
    如果仅使用 J13上的跳线这两个选项、则基本上不会出错。
    也许您可以为我们提供一种状态和设置的更新、解决上述问题。 非常感谢。

    此致
    Peter