2704|0

473

帖子

2

TA的资源

纯净的硅(初级)

楼主
 

求助关于USCI UART的波特率问题.. [复制链接]

4M晶振,要9600波特率...

用波特率计算工具算得:UBR1=0X01;UBR0=0XA0;UCA0MCTLW=0XC000;

怎么不对呢...和PC联系不上...
void main(void)
{
  WDTCTL = WDTPW + WDTHOLD;                 // stop watchdog

  // XT1 Setup
  
  PJSEL0 |= BIT4 + BIT5;
  
  CSCTL0_H = 0xA5;
  CSCTL1 |= DCOFSEL0 + DCOFSEL1;             // Set max. DCO setting
  CSCTL2 = SELA_0 + SELS_3 + SELM_3;        // set ACLK = XT1; MCLK = DCO=smlk
  CSCTL3 = DIVA_2 + DIVS_0 + DIVM_0;        // set all dividers  1MHZ
  CSCTL4 |= XTS;                //high speed mode
  CSCTL4&=~XT1DRIVE_3;
  CSCTL4 &= ~XT1OFF;
  
  do
  {
    CSCTL5 &= ~XT1OFFG;
                                            // Clear XT1 fault flag
    SFRIFG1 &= ~OFIFG;
  }while (SFRIFG1&OFIFG);                   // Test oscillator fault flag
  
  // Configure UART pins
  P2SEL1 |= BIT0 + BIT1;
  P2SEL0 &= ~(BIT0 + BIT1);
  
  P3OUT=0;
  P3DIR|=BIT4+BIT5+BIT6+BIT7;
  // Configure UART 0
  UCA0CTL1 |= UCSWRST;
  UCA0CTL1 = UCSSEL_1;                      // Set ACLK = 4MHZ as UCBRCLK
  UCA0BR0 = 0xa0;                              // 9600 baud
  UCA0BR1 = 0x01;
  UCA0MCTLW |= 0xc000;                     
                                            
  UCA0CTL1 &= ~UCSWRST;                     // release from reset
  UCA0IE |= UCRXIE;                         // Enable RX interrupt
  
  _EINT();


没有问题啊...
我估计是波特率设置有问题...
那个MCTLW到底怎么设置...按书上说小数5应该设置为0X6B才是...怎么是0XC0呢..
 
点赞 关注

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

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/10 下一条
艾睿电子& Silicon Labs 有奖直播 | 全新蓝牙信道探测:从技术创新到实际应用
直播时间:3月12日(周三)上午10:00
直播奖励:多功能榨汁机、蓝牙音箱、手机支架

查看 »

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

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

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

北京市海淀区中关村大街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
快速回复 返回顶部 返回列表