给你写的launchpad430--UART

技术说明


因此我们在设计电路的时候,只需要连接这两个引脚到MAX3232电平转换芯片上就可以进行通信。
在通信之前我们应做一些设置,例如管脚、时钟等。


波特率设置技巧
查看datasheet:可以在chapter15找到下表

                                                                         图1

例如:我们设置SMCLK、MCLK = 1MHz,UARTA输入时钟为SMCLK,波特率 = 115200,开启读中断。

管脚设置

查看数据手册,连接UARTA的管脚是P1.1,P1.2
  P1SEL  = BIT1 + BIT2 ;                    // P1.1 = RXD, P1.2=TXD
  P1SEL2 = BIT1 + BIT2;

时钟及波特率设置

查看数据手册,找到设置波特率的表格,如上图1所示:
  UCA0CTL1 |= UCSSEL_2;                     // SMCLK
  UCA0BR0 = 8;                              // 1MHz 115200
  UCA0BR1 = 0;                              // 1MHz 115200
  UCA0MCTL = UCBRS2 + UCBRS1;               // Modulation UCBRSx = 6

初始化及中断设置

  UCA0CTL1 &= ~UCSWRST;                     // **Initialize USCI state machine**
  IE2 |= UCA0RXIE;                          // Enable USCI_A0 RX interrupt

完整例程

#include <msp430.h>

int main(void)
{
  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;
  
  // 以上是前一篇所介绍

  P1SEL  = BIT1 + BIT2 ;                    // P1.1 = RXD, P1.2=TXD
  P1SEL2 = BIT1 + BIT2;
  
  UCA0CTL1 |= UCSSEL_2;                     // SMCLK
  UCA0BR0 = 8;                              // 1MHz 115200
  UCA0BR1 = 0;                              // 1MHz 115200
  UCA0MCTL = UCBRS2 + UCBRS1;               // Modulation UCBRSx = 6
  
  UCA0CTL1 &= ~UCSWRST;                     // **Initialize USCI state machine**
  IE2 |= UCA0RXIE;                          // Enable USCI_A0 RX interrupt

  __bis_SR_register(LPM0_bits + GIE);       // Enter LPM0, interrupts enabled
}

// Echo back RXed character, confirm TX buffer is ready first
#pragma vector=USCIAB0RX_VECTOR
__interrupt void USCI0RX_ISR(void)
{
  while (!(IFG2&UCA0TXIFG));                // USCI_A0 TX buffer ready?
  UCA0TXBUF = UCA0RXBUF;                    // TX -> RXed character
}

函数扩展

编写个发送字符的函数
void SendChar(unsigned char c_data)
{
  UCA0TXBUF = c_data;
  while(!(IFG2&UCA0TXIFG));
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
MSP-EXP430F5529LP是TI最新的一款LaunchPad,采用了eZ-FET lite。在安装驱动方面可能存在一些问题。通常情况下,安装了CCS之后,MSP430LaunchPad的驱动会自动安装好,主要是MSP Application UART和MSP Debug Interface。但如果驱动安装失败,可能会出现"Error initializing emulator: No USB FET was found"的错误提示。解决方法是安装最新的CCSv5.5,并按照CCS的提示进行更新或修复固件操作。如果在Windows 7系统下遇到串口驱动安装问题,可能是因为缺少usbser.sys文件。可以将usbser.sys文件复制到C:\Windows\System32\drivers目录中,并手动升级驱动程序,指向附件中的oem51.inf文件,即可成功安装驱动。\[1\] MSP430单片机具有多种低功耗模式,不同的低功耗模式下需要选择不同的时钟信号。在使用低功耗模式3(LPM3)时,需要避免看门狗定时器的参考时钟选择为DCO、高频模式下的XT1或XT2作为时钟源的SMCLK或ACLK。当不需要看门狗定时器时,可以使用WDTHOLD控制位关闭看门狗计数器(WDTCNT),以减少单片机功耗。看门狗定时器控制寄存器可以进行软件编程,选择不同的时间间隔和模式,并具有口令保护功能。\[2\]\[3\] 总结来说,MSP-EXP430F5529LP是TI的一款LaunchPad开发板,使用eZ-FET lite。在安装驱动时可能会遇到一些问题,但可以通过安装最新的CCS版本和手动升级驱动程序来解决。此外,MSP430单片机还具有看门狗定时器功能,可以在不同的低功耗模式下进行配置,并通过软件编程进行控制。 #### 引用[.reference_title] - *1* [MSP-EXP430F5529LP: Error initializing emulator: No USB FET was found](https://blog.csdn.net/wanruoqingkong/article/details/19924281)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* *3* [MSP430F5529 DriverLib 库函数学习笔记(十四)看门狗定时器 (WDT)](https://blog.csdn.net/weixin_44457994/article/details/119281069)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值