司马朝阳 发表于 2013-4-16 10:47:50

本人刚接触msp430单片机 程序不对希望 高手指点

本帖最后由 司马朝阳 于 2013-4-16 15:33 编辑

我用msp430g2533 编写的串口通信,只要打开串口调试助手,他就自动发送数据。高手们帮忙看看,那个地方出错了。

程序如下

#include "msp430G2553.h"
#include "stdio.h"
int a,i;
void Init_uart0()
{

UCA0CTL1|=UCSWRST;
UCA0CTL0&=~UC7BIT;//字符长度为8
UCA0CTL1|=UCSSEL_2;//选择系统时钟
UCA0BR0=0x6D;       //波特率为9600
UCA0BR1=0;
UCA0MCTL=0;   //UCA0MCTL=UCBRS0;
IE2=UCA0RXIE+UCA0TXIE;//开接收使能
UCA0CTL1&=~UCSWRST;
P1SEL|=BIT1+BIT2;//将P1.1 P1.2设为第二功能
P1SEL2|=BIT1+BIT2;
}
void Uart0Sends(char *s)
{
while(*s!='\0')
{
    UCA0TXBUF=*s;
    while((IFG2&UCA0TXIFG)==0); //查询发送是否结束
    IFG2&=~UCA0TXIFG; //清除发送一标志位
    s++;
}
}
void main( )
{
// Stop watchdog timer to prevent time out reset
WDTCTL = WDTPW + WDTHOLD;
BCSCTL1 = CALBC1_1MHZ;//paizhi shizhong   
DCOCTL= CALDCO_1MHZ;
Init_uart0();
_EINT();
while(1)
{
    Uart0Sends("朋友");
    __delay_cycles (1048576);//延时
}
}
#pragma vector=USCIAB0RX_VECTOR
__interrupt void usart0_rx(void)
{
while((IFG2&UCA0RXIFG )==0);
//a=RXBUF0;
//i++;
i=UCA0RXBUF;
}

postek 发表于 2013-4-16 11:23:10

楼主,你的标题不符合论坛的要求吧?

tongdayusu 发表于 2013-4-16 12:24:47

楼主,你的标题不符合论坛的要求吧?
+1

雨雪随行 发表于 2013-4-16 12:48:48

坐等楼主悲剧

司马朝阳 发表于 2013-4-16 15:28:09

奥 抱歉 我是新申请的 对规则不太清楚 ,我以后会改成正规的

tongdayusu 发表于 2013-4-16 15:32:28

兄弟,现在可以编辑的。

司马朝阳 发表于 2013-4-16 15:35:47


兄弟,现在可以编辑的   不懂

wangqun 发表于 2013-4-16 15:50:32

在你的程序:
while(1)
{
    Uart0Sends("朋友");
    __delay_cycles (1048576);//延时
}
当然是一直在发数据了。

司马朝阳 发表于 2013-4-16 19:30:29

wangqun 发表于 2013-4-16 15:50 static/image/common/back.gif
在你的程序:
while(1)
{


谢谢我知道 了,   

司马朝阳 发表于 2013-4-16 19:30:47

wangqun 发表于 2013-4-16 15:50 static/image/common/back.gif
在你的程序:
while(1)
{


非常感谢
页: [1]
查看完整版本: 本人刚接触msp430单片机 程序不对希望 高手指点