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.

[参考译文] MSP430F5529:两个使用UART (USCI_A0)的MSP430F5529启动板通信

Guru**** 2606725 points
Other Parts Discussed in Thread: MSP430F5529

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

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/653285/msp430f5529-two-msp430f5529-launch-pads-communication-using-uart-usci_a0

部件号:MSP430F5529

您好,

我正在尝试使用UART将字符'r'(0x72)从一个msp430f5529启动板发送到另一个启动板。 另一个启动板检测到'r'(0x72)并在p 1.0 亮起LED。

这是我对两个启动板的守则。

发射器

#include <MSP4S.h>

内部主(无效)

WDTCTL = WDTPW + WDTHOLD;//停止WDT

P3SEL || BIT3+BIT4;// WFP 3.3 4 = USI_A0 TXD/RXD

UCA0CTL1 |= UCSWRST;//**将状态机置于复位**

UCA0CTL1 |= UCSSEL_2;// SMCLK

UCA0BR0 = 9;// 1MHz 11.52万 (请参阅用户指南)

UCA0BR1 = 0;// 1MHz 11.52万

UCA0MCTL || UCBRS_1 + UCBRF_0;//调制UCBRSx=1,UCBRFx=0

UCA0CTL1 &=~UCSWRST;//**初始化USCI状态机**

//UCA0IE |= UCRXIE;//启用USI_A0 RX中断

(1){

(UCA0STAT和UCBUSY);

UCA0TXBUF = 0x72;

}

__no_operation()//用于Debugge

}

接收器

#include <MSP4S.h>

无符号int k;

内部主(无效)

WDTCTL = WDTPW + WDTHOLD;//停止WDT

P3SEL || BIT3+BIT4;// WFP 3.3 4 = USI_A0 TXD/RXD

WDTCTL = WDTPW+WDTHOLD;//停止WDT

P1DIR || BIT0;// WFP 1.0 设置为输出

P1OUT &=~BIT0;

UCA0CTL1 |= UCSWRST;//**将状态机置于复位**

UCA0CTL1 |= UCSSEL_2;// SMCLK

UCA0BR0 = 9;// 1MHz 11.52万 (请参阅用户指南)

UCA0BR1 = 0;// 1MHz 11.52万

UCA0MCTL || UCBRS_1 + UCBRF_0;//调制UCBRSx=1,UCBRFx=0

UCA0CTL1 &=~UCSWRST;//**初始化USCI状态机**

UCA0IE |= UCRXIE;//启用USI_A0 RX中断

__bis_sr_register(LPM0_bits + GIE);//输入LPM0,中断已启用

__no_operation();//用于调试器

}

//回显RXed字符,请先确认TX缓冲区已就绪

#if defined(__TI_Compiler_version__)|| defined(__IAR_SYSTEMS _ICC__)

#pragma vector=USI_A0_vector

__interrupt void USI_A0_ISR(void)

#Elif已定义(__GMNU__)

void __attribute__((interrupt (USI_A0_vector))) USI_A0_ISR (void)

#否则

错误编译器不受支持!

#endif

Switch(__偶 数_in_range(UCA0IV,4))

案例0:中断//矢量0 -无中断

案例2:

K = UCA0RXBUF;// TX -> RXed字符

如果(k == 0x72)

P1OUT |= BIT0;

中断

案例4:中断//矢量4 - TXIFG

默认值:中断

}

}

我将德克萨斯州的WFP 3.3 ,WFP的3.4 和 WFP的3.4 ,WFP的3.3 的Rx launchpad连接起来。 我正在UCA0RXBUF中接收垃圾值,指示灯未亮起。

我在准则中犯了什么错误?

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

    您会获得哪些价值?

    您是否尝试过一些较慢的波特率,例如9600?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我也尝试了2400。 不工作。 我也尝试了ACLK。 不使用。 通过串行端口与PC完美地进行传输和接收。 对于PC,I更改为UCA1信道。 但两个洗衣房不能:(
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您是否将两个PCB的GND连接在一起?
    您需要使用Rx,Tx和GND作为功能电路。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您会获得哪些价值?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    这似乎是硬件问题。 确保一个LaunchPad的RX/WFP 3.4 与另一个LaunchPad的TX/WFP 3.3 相连,反之亦然。

    此致,
    Ryan
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    除非两个PCB共享同一个GND,否则什么都不起作用。
    除Rx和Tx外,必须共享GND线。 5529LP上有许多GND引脚,从一个主板的J3,J10,J5或J1中选择一个,然后将其连接到第二个主板的另一个GND。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    请告知我们问题是否已解决/如何解决,以便可以关闭线程。

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

    我已经将Tx连接到Rx,将Rx连接到Tx (i,e WFP 3.3 连接到WFP 3.4 ,将WFP 3.4 连接到WFP 3.3)。 我已经下载了上面所附的代码。 但我看不到接收器中的LED 1发光。 而且在接收器的调试模式下,它会卡在行中
    __bis_sr_register(LPM0_bits + GIE);//输入LPM0,中断已启用

    我觉得我的软件中缺少了一些东西。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Manoj

    您是否还在两个启动板之间连接了GND线?

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

    一旦输入LPM0,CPU将停止,并且在维修RX ISR之前不会继续。 您从未回答过您收到的值,最好提供RX/TX线的示波器屏幕截图。

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

    其中一个启动板中有一些错误。 我更换了洗涤垫,它们工作正常。

    此致,
    Manoj。