1850|0

2015

帖子

0

TA的资源

纯净的硅(中级)

楼主
 

msp430f5529简单uart源程序(用串口助手 发什么 回复什么) [复制链接]

单片机源程序如下:

  1. /*****用串口助手 发什么  回复什么****/
  2.  
  3.  
  4.  
  5. #include "msp430f5529.h"
  6. // ACLK = REFO = 32768Hz, MCLK = SMCLK = default DCO/2 = 1048576Hz
  7. // P3.4,5——USCI_A0 TXD/RXD;P9.4,5——USCI_A2 TXD/RXD;P10.4,5——USCI_A3 TXD/RXD;
  8. void main(void)
  9. {
  10.   WDTCTL = WDTPW + WDTHOLD;                 // Stop WDT
  11.   P4SEL |=BIT4+BIT5 ;                             // P5.6,7 = USCI_A1 TXD/RXD
  12.   UCA1CTL1 |= UCSWRST;                      // **Put state machine in reset**
  13.   UCA1CTL1 |= UCSSEL_2;                     // SMCLK
  14.   UCA1BR0 = 9;                              // 1MHz 115200 (see User's Guide)
  15.   UCA1BR1 = 0;                              // 1MHz 115200
  16.   UCA1MCTL |= UCBRS_1 + UCBRF_0;            // Modulation UCBRSx=1, UCBRFx=0
  17.   UCA1CTL1 &= ~UCSWRST;                     // **Initialize USCI state machine**
  18.   UCA1IE |= UCRXIE;                         // Enable USCI_A1 RX interrupt
  19.   __bis_SR_register(LPM0_bits + GIE);       // Enter LPM0, interrupts enabled
  20. }
  21. // Echo back RXed character, confirm TX buffer is ready first,发送数据之前确定发送缓存准备好
  22. #pragma vector=USCI_A1_VECTOR
  23. __interrupt void USCI_A1_ISR(void)
  24. {
  25.   switch(__even_in_range(UCA1IV,4))
  26.   {
  27.   case 0:break;                             // Vector 0 - no interrupt
  28.   case 2:                                   // Vector 2 - RXIFG
  29.    while (!(UCA1IFG&UCTXIFG));    // USCI_A1 TX buffer ready?   UCTXIFG(USCI Transmit Interrupt Flag)
  30.                                    //等待数据发送完成 完成UCTXIFG置1 跳出循环
  31.     UCA1TXBUF = UCA1RXBUF;                  // TX -> RXed character
  32.     break;
  33.   case 4:break;                             // Vector 4 - TXIFG
  34.   default: break;
  35.   }
  36. }
  37. // UCTXIFG=0x02,UCA1IFG&UCTXIFG,当UCA1IFG的UCTXIFG位为1时,说明UCA1TXBUF为空,
  38. //跳出while循环循环;当UCTXIFG位为0时UCA1TXBUF不为空,停在循环。
 
点赞 关注

回复
举报
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/10 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表