请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
部件号: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万);
}
}