3007|4

2

帖子

0

TA的资源

一粒金砂(中级)

楼主
 

msp430fr5739 串口程序问题 [复制链接]

  1. #include
  2. unsigned int i;
  3. //unsigned char RXData = 0;
  4. //unsigned char TXData = 0;
  5. unsigned char check = 0;
  6. int main(void)
  7. {
  8.   WDTCTL = WDTPW + WDTHOLD;  
  9.   CSCTL0_H = 0xA5;
  10.   CSCTL1 |= DCOFSEL0 + DCOFSEL1;
  11.   CSCTL2 = SELA_3 + SELS_3 + SELM_3;
  12.   CSCTL3 = DIVA_0 + DIVS_0 + DIVM_0;
  13.   CSCTL4 |= XT1OFF;
  14.   // Configure UART pins
  15.   P2SEL1 |= BIT0 + BIT1;
  16.   P2SEL0 &= ~(BIT0 + BIT1);
  17.   // Configure UART 0
  18.   UCA0CTL1 |= UCSWRST;
  19.   UCA0CTL1 = UCSSEL_1;                      // Set ACLK = 32768 as UCBRCLK
  20.   UCA0BR0 = 53;                              // 9600 baud
  21.   UCA0BR1 = 0;
  22.   UCA0MCTLW |= 0x4900;                      // 32768/9600 - INT(32768/9600)=0.41
  23.                                             // UCBRSx value = 0x53 (See UG)
  24.   UCA0CTL1 &= ~UCSWRST;                     // release from reset
  25.   UCA0IE |= UCRXIE;                         // Enable RX interrupt
  26.   
  27.    __bis_SR_register(LPM0_bits + GIE);      // LPM3 + Enable interrupt
  28. }
  29. // Echo back RXed character, confirm TX buffer is ready first
  30. #pragma vector=USCI_A0_VECTOR
  31. __interrupt void USCI_A0_ISR(void)
  32. {
  33. // switch(__even_in_range(UCA0IV,0x08))
  34. // {
  35. // case 0:break;                             // Vector 0 - no interrupt
  36. // case 2:                                   // Vector 2 - RXIFG
  37.     while (!(UCA0IFG&UCTXIFG));             // USCI_A0 TX buffer ready?
  38.    // UCA0TXBUF = UCA0RXBUF;                  // TX -> RXed character
  39.   UCA0TXBUF = 1;
  40.     //  break;
  41. // case 4:break;                             // Vector 4 - TXIFG
  42. // default: break;  
  43. // }
  44. }
复制代码
就想实现串口的收发,始终用的内部时钟(msp-exp430fr5739的板子,没接XT1晶振),看看哪里出错了、?

最新回复

晶振问题  详情 回复 发表于 2013-10-23 20:36
 
点赞 关注

回复
举报

139

帖子

0

TA的资源

一粒金砂(高级)

沙发
 
第一句,#include 头文件什么也没有,就一句include,应该是#include "msp430fr5739.h"
首先进入低功耗模式3的程序不应该那么写吧。
 
 

回复

139

帖子

0

TA的资源

一粒金砂(高级)

板凳
 
#include "msp430fr5739.h"
void main ()
{
  WDTCTL  = WDTPW + WDTHOLD;
  CSCTL0  = CSKEY;
  CSCTL1 |= DCOFSEL0 + DCOFSEL1; //选择DCO主频8MHz
  CSCTL2  = SELA_3 + SELS_3 + SELM_3;//ACLK,SMCLK,MCLK,all of them selected from DCO
  CSCTL3  = DIVA_0 + DIVS_0 + DIVM_0;//都是1分频,即意味着所有的时钟源都是来自内部DCO,为8MHz
  CSCTL4 |= XT1OFF;
  P2SEL1 |= BIT0 + BIT1;
  P2SEL0 &= ~(BIT0 + BIT1);
  
  UCA0CTLW0  |= UCSWRST;                      //按userguide里定义的寄存器名称来吧,UCA0CTL0
  UCA0CTLW0  |= UCSSEL_1;                     // Set ACLK = 8MHz as UCBRCLK
  UCA0BR0 = ?????????;                        // 如何设置波特率,看的我头大
  UCA0MCTLW |= 0x4900;                        // 哪位高手给我解释一下
  UCA0CTL1 &= ~UCSWRST;                     // release from reset
  UCA0IE |= UCRXIE;                         // Enable RX interrupt  
  while(1)
  {
    LPM3;//进入低功耗模式3
  }
#pragma vector=USCI_A0_VECTOR
__interrupt void UART0_Recive()
{
  UCA0TXBUF = UCA0RXBUF;//把收到的发送出去。
  while(UCA0IFG&UCTXIFG);//等待发送完毕
}
 
 
 

回复

139

帖子

0

TA的资源

一粒金砂(高级)

4
 
你的程序似乎并不是为MSP430FR5739写的,而是其他的型号。
 
 
 

回复

10

帖子

0

TA的资源

一粒金砂(初级)

5
 
晶振问题
 
 
 

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

查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/10 下一条
有奖直播:当AI遇见仿真,会有什么样的电子行业革新之路?
首场直播:Simcenter AI 赋能电子行业研发创新
直播时间:04月15日14:00-14:50

查看 »

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

 
机器人开发圈

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

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

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

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