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.

[参考译文] CCS/MSP430F5529:msp430.5529万

Guru**** 2611705 points


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

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/662789/ccs-msp430f5529-msp4305529

部件号:MSP430F5529

工具/软件:Code Composer Studio

尊敬的亲切社区成员:

我尝试在串行终端中读取UART中的数据,仅当有驱动时;即几乎所有可用设备使用的串行通信协议。 现在,当我发送适当的命令时,微处理器会启动连续的重新收集信息流。 我想要的是,每次发送命令时,只有一个此信息的实例。 我在下面附上了代码。

任何帮助都将受到极大的支持。

谢谢你。

谨致问候

Subhronil

#include <MSP430-h>
#include <mathy.h>
#include <stdio.h>

void main (void)
{
WDTCTL = WDTPW | WDTHOLD;
CHAR STR[]="答案是:";
char check ='a';//命令
P1DIR || BIT0;
//USCI设置代码===========================================================================================
P4SEL |= 0x30;
UCA1CTL1 |= UCSWRST;
UCA1CTL1 || UCSSEL_1;
//UCA1CTL1 |= UCBRKIE_1;
UCA1BR0 = 3;
UCA1BR1 = 0x00;
UCA1MCTL = 0x06;
UCA1CTL0 = 0x00;
UCA1IE = 0x01;
UCA1CTL1 &=~UCSWRST;
//主环路**********************************************************************************************************************
对于(;;)
{

INT I = 0;

UCA1CTL1 |= UCSWRST;
UCA1CTL1 &=~UCSWRST;
IF ((UCA1RXBUF == check)&(UCRXIFG))

{

while (str[i]!='\0')//发送第一个字符串
{
UCA1TXBUF = str [i];
期间(UCA1STAT&UCBUSY);
I++;

}
UCA1TXBUF = 0x0a;//表示下一行
期间(UCA1STAT&UCBUSY);

UCA1TXBUF = 0x0d;//表示下一行
while (UCA1STAT&UCBUSY);

}
否则
P1OUT ^= 0x01;
__DELAY周期(7.5万);

}
}

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

    这种防护不是很正确。 尝试:

    > IF ((UCA1IFG & UCRXIFG)&&(UCA1RXBUF ==检查))
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    非常感谢伴侣,这种方式非常有魅力。

    谢谢。