panqjhust 发表于 2010-3-17 21:05:27

MSP430的UART0和UART1有区别没有啊?

/******************************************************
程序功能:接收来自PC机的字符,然后重新发送给PC机
-------------------------------------------------------
通信格式:N.8.1,9600
         无校验,8个数据位,1个停止位,波特率9600
------------------------------------------------------
测试说明:打开串口调试助手,正确设置通信格式,向学习板
          发送一个字符,观察是否收到回发的字符,以及是否
          正确
*******************************************************/
#include<msp430x14x.h>
#include"BoardConfig.h"

/********************主函数********************/
void main(void)
{
    WDTCTL = WDTPW + WDTHOLD;               // 关闭看门狗
    //BoardConfig(0xb8);                        // 关闭数码管、流水灯和电平转换
   
    P3SEL |= 0xc0;                            // 选择P3.4和P3.5做UART通信端口
    ME2 |= UTXE1 + URXE1;                     // 使能USART0的发送和接受
    UCTL1 |= CHAR;                            // 选择8位字符
    UTCTL1 |= SSEL0;                        // UCLK = ACLK
    UBR01 = 0x03;                           // 波特率9600
    UBR11 = 0x00;                           //
    UMCTL1 = 0x4A;                            // Modulation
    UCTL1 &= ~SWRST;                        // 初始化UART状态机
    IE2 |= URXIE1;                            // 使能USART1的接收中断

    while(1)
    {
      _EINT();                               //打开全局中断
      LPM1;                                  //进入LPM1模式
      while (!(IFG2 & UTXIFG1));             //等待以前的字符发送完毕
      TXBUF1 = RXBUF1;                     //将收到的字符发送出去
    }
}
/*******************************************
函数名称:UART0_RXISR
功    能:UART0的接收中断服务函数,在这里唤醒
          CPU,使它退出低功耗模式
参    数:无
返回值:无
********************************************/
#pragma vector = UART1RX_VECTOR
__interrupt void UART1_RXISR(void)
{
LPM1_EXIT;               //退出低功耗模式
}
=============================================================================================
/******************************************************
程序功能:接收来自PC机的字符,然后重新发送给PC机
-------------------------------------------------------
通信格式:N.8.1,9600
         无校验,8个数据位,1个停止位,波特率9600
------------------------------------------------------
测试说明:打开串口调试助手,正确设置通信格式,向学习板
          发送一个字符,观察是否收到回发的字符,以及是否
          正确
*******************************************************/
#include<msp430x14x.h>
#include"BoardConfig.h"

/********************主函数********************/
void main(void)
{
    WDTCTL = WDTPW + WDTHOLD;               // 关闭看门狗
    //BoardConfig(0xb8);                        // 关闭数码管、流水灯和电平转换
   
    P3SEL |= 0xc0;                            // 选择P3.6和P3.7做UART通信端口
    ME2 |= UTXE1 + URXE1;                     // 使能USART1的发送和接受
    UCTL1 |= CHAR;                            // 选择8位字符
    UTCTL1 |= SSEL0;                        // UCLK = ACLK
    UBR01 = 0x03;                           // 波特率9600
    UBR11 = 0x00;                           //
    UMCTL1 = 0x4A;                            // Modulation
    UCTL1 &= ~SWRST;                        // 初始化UART状态机
    IE2 |= URXIE1;                            // 使能USART1的接收中断

    while(1)
    {
      _EINT();                               //打开全局中断
      LPM1;                                  //进入LPM1模式
      while (!(IFG2 & UTXIFG1));             //等待以前的字符发送完毕
      TXBUF1 = RXBUF1;                     //将收到的字符发送出去
    }
}
/*******************************************
函数名称:UART1_RXISR
功    能:UART1的接收中断服务函数,在这里唤醒
          CPU,使它退出低功耗模式
参    数:无
返回值:无
********************************************/
#pragma vector = UART1RX_VECTOR
__interrupt void UART1_RXISR(void)
{
LPM1_EXIT;               //退出低功耗模式
}
==================================================================================================
后面这个uart1的代码,如果单个字符的发送,不会有乱码。发送字符串就丢失字符。
uart0的不论单个,还是字符串,都不会乱码。
求教高手原因。

ADO1234 发表于 2010-4-13 12:40:52

没学到这啊!!

wbbxajh 发表于 2010-4-14 09:57:59

P3SEL |= 0xc0;                            // 选择P3.4和P3.5做UART通信端口
P3SEL |= 0xc0;                            // 选择P3.6和P3.7做UART通信端口

这两行程序里相同的设置怎么解释不一样啊?设置一定要准啊

rubinrubin 发表于 2010-4-17 12:32:43

mark

zkcheng606 发表于 2010-4-23 15:32:09

两个程序的寄存器设置的一样,怎么会是2个USART口的通信程序呢?

panqjhust 发表于 2010-8-27 08:36:37

回复【2楼】wbbxajh
-----------------------------------------------------------------------
不好意思,确实写错了。太马虎了。
页: [1]
查看完整版本: MSP430的UART0和UART1有区别没有啊?