[MSP430] 3.UART

这一节我们将会看到如何在 MSP430 Launchpad 上使 用 UART 进行通信。我们的程序将会实现通过 UART 从 PC 读入一个字节的数据,然后发送相应的反馈字节给 PC。通信 模式为 115200 波特率,全双工,8 位数据,无奇偶校验,1 位停止位。

MSP430 G2553(Launchpad 使用的芯片)是 MSP430 家 族中比较给力的芯片,它集成了硬件 UART 模块。
UART 通信在处理/调试传感器的时候尤为有用,举一个简单的 例子,我们可以用温度传感器采集数据,经过 AD 转换之后通过 UART 发送给 PC,传送的方式可以是有线,也可以使用无线例如蓝牙。
让我们直接进入正题吧。

首先,你应该已经熟悉了这样的开头:

#include "msp430g2553.h"
#define TXLED BIT0 
#define RXLED BIT6 
#define TXD BIT2 
#define RXD BIT1
const char string[] = { "Hello World\n" }; 
unsigned int i; //Counter
像前两节中所做的那样,程序开头包含 MSP430G2553 的头文 件,然后宏定义一些常数使得程序更具可读性。

接着我们定义了一个 char 类型数组(即一个 C String),存了 我们将要反馈给 PC 的信息(经典的 Hello World)。最后定义一个 计数变量,辅助反馈字符串的发送。

int main(void) {
  WDTCTL = WDTPW + WDTHOLD; // Stop WDT
  DCOCTL = 0; // Select lowest DCOx and MODx settings
  BCSCTL1 = CALBC1_1MHZ; // Set DCO
  DCOCTL = CALDCO_1MHZ;
这依然是大家熟悉的 main 函数的开始方法,首先关闭看门狗定 时器,之后的三行将单片机的内部时钟设置为 1MHz。接下来 UART 和板上所有其他外设都将使用 SMCLK 时钟(sub-main clock)。

  P2DIR |= 0xFF; // All P2.x outputs
  P2OUT &= 0x00; // All P2.x reset
  P1SEL |= RXD + TXD ; // P1.1 = RXD, P1.2=TXD
  P1SEL2 |= RXD + TXD ; // P1.1 = RXD, P1.2=TXD
  P1DIR |= RXLED + TXLED;
  P1OUT &= 0x00;</
  • 2
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值