msp430F2274使用串口通讯设置

2025-10-28 02:59:14

1、MSP430F2274单片机串口的P3.4 P3.5可以设置为标准串口。发现和MSP430F123,MSP430F149都不一样,在研究了相关手册资料后,实现自发自收。

msp430F2274使用串口通讯设置

2、首先新建一个工程,做一些基本设置

1) FETDebugger -->setup-->connection选择 USB连接方式 

2)Debugger下的-->setuo-->Driver 选 FET Debugger

3) General Options -->Target --> Device -->点按钮选 MSP430F2274

msp430F2274使用串口通讯设置

msp430F2274使用串口通讯设置

msp430F2274使用串口通讯设置

3、管脚定义:

因为P3口没有中断要通过P3SEL和P3DIR设置后RX,TX才能生效。

P3.4 P3.5 提供了一组标准的USRT0的通讯接口。

P3SEL = 0x30;                             // P3.4,5 = USCI_A0 TXD/RXD

msp430F2274使用串口通讯设置

4、晶振  设置。

WDTCTL = WDTPW + WDTHOLD;                 // Stop WDT

   if (CALBC1_1MHZ==0xFF) // If calibration constant erased

  {

    while(1);                               // do not load, trap CPU!!

  }

  DCOCTL = 0;                               // Select lowest DCOx and MODx settings

  BCSCTL1 = CALBC1_1MHZ;                    // Set DCO

  DCOCTL = CALDCO_1MHZ;

..................

msp430F2274使用串口通讯设置

5、波特率的设置也是比较有特点:

1MHz/9600 = ~104.2

  UCA0CTL1 |= UCSSEL_2;                     // SMCLK

  UCA0BR0 = 104;                            // 1MHz 9600

  UCA0BR1 = 0;                              // 1MHz 9600

  UCA0MCTL = UCBRS0;                        // Modulation UCBRSx = 1

  UCA0CTL1 &= ~UCSWRST;                     // **Initialize USCI state machine**

  IE2 |= UCA0RXIE;                          // Enable USCI_A0 RX interrupt

msp430F2274使用串口通讯设置

6、编写响应代码:

当收到串口数据时,进入响应函数,然后把RX缓存数据直接放到TX缓冲,实现数据的自发自收。

这里注意 : 用的是IFG2 

#pragma vector=USCIAB0RX_VECTOR

__interrupt void USCI0RX_ISR(void)

{

  while (!(IFG2&UCA0TXIFG));                // USCI_A0 TX buffer ready?

  UCA0TXBUF = UCA0RXBUF;                    // TX -> RXed character

}

msp430F2274使用串口通讯设置

7、代码编写完成后,IAR通过USB'烧写器 写入芯片。

打开串口精灵,设好波特率和串口号,发送数据给串口,如果能够收到同样数据的响应,说明OK。

msp430F2274使用串口通讯设置

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢