打印

时钟初始化do while语句跳不出来

[复制链接]
627|12
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
dengdc|  楼主 | 2016-2-23 20:47 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
// 时钟初始化程序
void Clock_Init()
{
  unsigned char i;
  P5SEL=0X0C;
  P7SEL=0X00;
  //_bis_SR_register(SCG0);
  UCSCTL6=0X4001;                                    //打开XT2,XT1,SMCLK
  UCSCTL4|=SELM_5+SELS_5;                           //MCLK,SMCLK都选择XT2
  UCSCTL5|=DIVS_3+DIVM_0;                          //MCLK不分频,SMCLK8分频
  do
  {
    UCSCTL7 &= ~(XT2OFFG);                  // Clear XT1 & DCO fault flags
    SFRIFG1 &= ~OFIFG;                      // Clear OSC Fault flag
    for (i = 0xFF; i > 0; i--) ;           // Time for flag to set
   
  }while ( (SFRIFG1 & OFIFG) );
}

相关帖子

沙发
heweibig| | 2016-2-23 20:47 | 只看该作者
跳不出来,一直在执行?

使用特权

评论回复
板凳
dengdc|  楼主 | 2016-2-23 20:47 | 只看该作者
是的

使用特权

评论回复
地板
jiahy| | 2016-2-23 20:47 | 只看该作者
如果把while条件直接屏蔽变为while(0)

使用特权

评论回复
5
dengdc|  楼主 | 2016-2-23 20:48 | 只看该作者
就可以跳出循环了.但是这个子函数必须得一步一步烧写,点击go会导致串口信息发送回收不匹配

使用特权

评论回复
6
lizye| | 2016-2-23 20:48 | 只看该作者
什么意思啊

使用特权

评论回复
7
dengdc|  楼主 | 2016-2-23 20:48 | 只看该作者
比如说不管你发送多少字符,回收的不是80就是00

使用特权

评论回复
8
shimx| | 2016-2-23 20:49 | 只看该作者
加长点延时试试。

使用特权

评论回复
9
dengdc|  楼主 | 2016-2-23 20:49 | 只看该作者
嗯,好的,呵呵

使用特权

评论回复
10
309030| | 2016-2-27 20:03 | 只看该作者
晶振是好的还的是坏的

使用特权

评论回复
11
lefeng| | 2016-2-29 20:36 | 只看该作者
本帖最后由 lefeng 于 2016-2-29 20:38 编辑
如果把while条件直接屏蔽变为while(0)

while(0)的话,就不进循环了吧
循环挑不出来,说明晶振是话的吧

使用特权

评论回复
12
FireRiver9| | 2016-2-29 20:45 | 只看该作者
怎么样了,怎么解决的呢

使用特权

评论回复
13
尤彼卡| | 2016-2-29 20:58 | 只看该作者
控制XT2的寄存器打开了没有

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

892

主题

13885

帖子

7

粉丝