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.
大家好,我需要帮助,我有一个项目,它使用MSP430F149来处理智能家庭安全系统。我现在需要做的是使用RS232到USB通过UART将MSP连接到笔记本电脑,并首先进行一些简单的通信。 但现在我所面对的是,我不能真正地保存从我的笔记本电脑发出的那些人物。 我的主板接收器缓冲器只能接收一次一个字节,所以当我尝试从我的笔记本电脑终端向主板发送一个句子,并尝试将其保存在我声明的另一个变量中时, 它保存了一个非常混乱的角色,我不知道它有什么错。 例如,我发送的电话号码类似于0124363516, 然后,我将数字从接收器缓冲器逐字节移动到变量,然后通过发送器缓冲器传输到我的笔记本电脑终端,显示其内部的内容,它就像(11,2.2465万)一样。IM使用IAR嵌入式工作台IDE和Realterm作为我的终端。 下面是我的编码,我可以获得一些帮助吗?非常感谢。
包括"io430-h"
#include <in430.h>
包含"nbc430-h"
#define uchar unsigned char
#define uint unsigned int
无符号字符s2;
unsigned char string2[]={"Plesae Key in Your Message:\r\n"};
无符号字符;
无符号字符串1[]={"请输入您的电话号码:\r\n"};
无符号int i=0;
无符号字符缓冲区[];
void io_init(void)
{
P3DIR4=1;P3DIR5=0;
}
空延迟(uint time)
{
UINT I,j;
对于(i = 0;i <时间;I++)
{
用于(j = 0;j < 30;j++);
}
}
void init_com( void )
{
P3SEL |= 0x30;
ME1 |= UTXE0 + URXE0;
UTCTL0 = SSEL0;
UBR00 = 0x03;
UBR10 = 0x00;
UMCTL0 = 0x34;
UCTL0 |=字符;
UCTL0 &=~SWRST;
IE1 |= URXIE0+UTXIE0;
IFG1&=~UTXIFG0;
_EINT();
LPM3;
}
#pragma vector=UART0RX_vector
__interrupt void usart0_rx (void)
{
while ((IFG1&URXIFG0)=0);
BUFFER[COUNT]=RXBUF0;
延迟(1);
TXBUF0 =缓冲器[计数];
COUNT+=1;
Void主(void)
{
WDTCTL = WDTPW + WDTHOLD;
io_init();¯
init_com();
同时(1);
}
计数定义在哪里? 它是否易变?
此外,缓冲区需要定义大小。