打印

新人报到,请允许我小吝啬下。

[复制链接]
1678|3
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
乡间河太急|  楼主 | 2013-3-9 13:03 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
rc, ck, ST, ic, PLL
一直知道有这个网站存在,不过没怎么来过,还提一下,哈哈,我曾经在网站根据地正门口前仰望过 21IC 这个**,我在天河,嘿嘿
最近在学STM32,遇到问题搜一下,被百度引领到了这里,看了一个帖子,感到这里的版主还是特别给力的,很有耐心。
好了,进入正题。
看了一段时间的书,开始折腾手头的板子,用的芯片是103ZE6。按照自己的理解配置好时钟后,发现程序不能表达了。硬件仿真一下,发现在将时钟切换成PLL72M输出后,下一步就无法执行了。对照着正点原子的程序,对比两个程序切换完时钟后的相应寄存器的设置,发现时钟并没有配置错。(当然,我只观察了RESET和CLOCK这个窗口、一些IO窗口和MDK左边的一些寄存器,不排除可能存在其他我还不了解的潜在影响。)
不明白为什么,切换完时钟后,单击下一步,汇编区里面的代码就全变成了FFFF FFFF;undefined这样的字眼。请问是怎么回事呢?
下面是自己的程序。
#include "sys.h"
void Systick()
{       
        SysTick->VAL = 0X00;
        SysTick->CTRL |= 0X01;
        while(!((SysTick->CTRL)>>16)&0X01);
        SysTick->CTRL =0X00;       
}
void LED_Init(void)
{
        RCC->APB2ENR|=1<<3;    //使能PORTB时钟                    
        RCC->APB2ENR|=1<<6;    //使能PORTE时钟       
                    
        GPIOB->CRL&=0XFF0FFFFF;
        GPIOB->CRL|=0X00300000;//PB.5 推挽输出            
    GPIOB->ODR|=1<<5;      //PB.5 输出高
                                                                                          
        GPIOE->CRL&=0XFF0FFFFF;
        GPIOE->CRL|=0X00300000;//PE.5推挽输出
        GPIOE->ODR|=1<<5;      //PE.5输出高
}
int main()
{
        RCC->CR = 0X01;        //HSION
        while(!((RCC->CR>>1)&0X01)); //wait for HSIRDY
        RCC->CR |= 0X00010080;        //HSEON
        while(!((RCC->CR>>17)&0X01));        //wait for HSERDY
        RCC->CFGR = 0X001D0400;        //PLLXTPRE cleared,PLLSRC seted,PLLMUL = 9       
        RCC->CR |= 0X01000000;        //PLLON
        while(!((RCC->CR>>25)&0X01));        //wait for PLLRDY
        RCC->CFGR |= 0X02;        //change system clock
        while(!((RCC->CFGR>>3)&0X01));
        LED_Init();
        SysTick->LOAD = 9000*1000;
        while(1)
        {
                GPIOB->ODR &= ~(0<<5);
                Systick();
                GPIOB->ODR = 1<<5;
                Systick();
        }
}
新人分不多,允许我小吝啬一下哈,谢谢各位。
沙发
乡间河太急|  楼主 | 2013-3-9 14:15 | 只看该作者
自行解决了,哈哈,谁来3L就两分到手啦,虽然不多

使用特权

评论回复
板凳
金融小数| | 2013-3-9 16:34 | 只看该作者
应该先选择HSE作为系统时钟,然后设置PLL

使用特权

评论回复
评分
参与人数 1威望 +1 收起 理由
乡间河太急 + 1 很给力!
地板
乡间河太急|  楼主 | 2013-3-9 18:39 | 只看该作者
金融小数 发表于 2013-3-9 16:34
应该先选择HSE作为系统时钟,然后设置PLL

亲,如何结贴给分啊

使用特权

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

本版积分规则

1

主题

6

帖子

0

粉丝