原创 【TI博客大赛】MSP430单片机串口通讯

2012-11-12 16:14 2340 10 11 分类: MCU/ 嵌入式

   串行异步通讯的特点:
    1-异步通讯模式,包括线路空闲/地址位通信协议。
    2-有两个单独的移位寄存器,输入/输出移位寄存器
    3-传输7位或8位数据,可采用奇偶或无校验。
    4-可编程实现波特率调整。
    5-分别发,收单独中断。
    6-有效地检测到起始位实现从低功耗唤醒。
    7-状态标志检测错误或者地址位。

   串行同步通讯(SPI)的特点: 
    1-动持3线/4线的SPI通讯。
    2-支持主机模式与从机模式。
    3-收发有单独的缓冲器,移位寄存器。
    4-收发有单独的中断。
    5-时钟极性和相位可编程。
    6-主机模式的时钟频率可编程。
    7-7位/8位字符长度。

有关USART的详细应有原理,建议初学者参考清华大学出版社的<<MSP430系列16位超低功耗单片机原理与应用>>。

 

串行异步通讯应用例程
//*******************************************
//MSP430F149串口行实验程序
//P3.4为发送,P3.5为接收
//晶体使32768HZ.
//程序描述:利用串口调试软件;向串口发送一个字符,MSP430单片机接收到后从低功耗中唤醒.并将收接缓冲区的字符再发送到//电脑上的调试软件中.单片机发送完后又进入低功耗状态.
//*******************************************

#include <msp430x14x.h>

void main(void)
{
 WDTCTL = WDTPW + WDTHOLD; // 停止WDT

 UCTL0 = CHAR;             // 设串口控制寄存器,设为8位字符格式

 UTCTL0 = SSEL0;           // 设串口控制寄存器所使用的时钟,选择UCLK = ACLK

 UBR00 = 0x0D;             // 波特率设置32k/2400 - 13.65
 UBR10 = 0x00;           
 
 UMCTL0 = 0x6D;            // 波特率调整器设置

 ME1 |= UTXE0 + URXE0;     // 模块允许寄存器设置,使能USART0 TXD/RXD

 IE1 |= URXIE0;            // 中断允许寄存器设置,接收中断允许

 P3SEL |= 0x30;            // 将P3.4,5使用外围模块 = USART0 TXD/RXD
 P3DIR |= 0x10;            // 将P3.4设为输出(发),P3.5默认为输入(收)

 _EINT();                  // 全局中断使能

// Mainloop
for (;;)
{
 LPM3;                           // 进入LPM3模式,等待字符接收.

 while ((IFG1 & UTXIFG0) == 0);  // USART0发送UTXIFG0=1,表示UTXBUF准备好发送一下字符

 TXBUF0 = RXBUF0;                // 将收到缓冲区字符送发送区
 }
}

//串口接收中断,退出LPM3模式.
#pragma vector=USART0RX_VECTOR
__interrupt void usart0_rx (void)
{
  LPM3_EXIT;
}

//*****************************************
//例程结束

 

文章评论1条评论)

登录后参与讨论

用户426240 2012-11-17 16:22

传输太慢了,有8M的晶振怎么不用??
相关推荐阅读
wxg1988 2014-04-22 17:50
全球创客马拉松武汉站已经开始报名啦
星星之火,可以燎原! 全球创客马拉松在深圳、上海、北京、南京、成都等地相继点燃中国的创客之火,下一站:武汉! 改变世界,抑或改变自己,全球创客马拉松也许可以是梦想启航的地方。 英雄不问...
wxg1988 2013-10-24 13:15
液晶显示器原理LCD驱动基础
LCD显示器概述   ——》液晶显示器,LCD为英文 Liquid Crystal Display的缩写,它是一种数字显示技术,可以通过液晶和彩色过滤光源,并在平面面板上产生图像。  ...
wxg1988 2013-08-13 10:20
Arduino mini 亲手打造
Arduino,满足您创新创意的需要! Arduino 是一款便捷灵活、方便上手的开源电子原型平台,包含硬件(各种型号的Arduino板)和软件(Arduino IDE)。它适用于艺术家、设计...
wxg1988 2013-07-30 20:44
【博客大赛】STM32中断小结
  STM32中断EXTI STM32中断支持15个异常中断和240个外部中断,有256个中断优先级,其中I/O可配置为EXTI中断,捕捉外部信号,可配置为上升沿,下降沿,上升下降沿三种中...
wxg1988 2013-07-16 21:09
关注创客与开源电子,可以订阅
   http://list.qq.com/cgi-bin/qf_invite?id=04a0d177cb5a2dd6a4da786f024011139e353139950c4411 关注创客...
我要评论
1
10
关闭 站长推荐上一条 /2 下一条