OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 3216|回复: 5

求助:STM32F103RBT6无法72MHz时钟下运行

[复制链接]

17

主题

170

帖子

0

精华

高级会员

Rank: 4

积分
562
金钱
562
注册时间
2018-7-8
在线时间
118 小时
发表于 2018-9-16 00:59:28 | 显示全部楼层 |阅读模式
1金钱
板子是ministm32 v1.9,
程序代码如下,寄存器版本
[mw_shl_code=c,true]int main(void)         //main是程序入口
{
    /***************   程序总共2部分之第1部分 时钟频率的配置 {开始 *********************************/
    /***** 以下是关于RCC时钟 详细请见《STM32F10XXX参考手册》6.3节RCC寄存器描述 *******/
    unsigned char sws = 0;
    RCC->CR |= 0X00010000; //使能外部高速时钟HSEON
    while(!(RCC->CR>>17));  //将RCC_CR寄存器的值右移17位,等待HSERDY就绪,即外部时钟就绪

    /* 因为手册有要求APB1时钟频率不超过36MHZ,而在STM32中最大为72MHZ */
    /* 为了保证最大速度,我们这里设置成2分频 */
    /* 设置寄存器CFGR里的8-10位的值为100 */
    RCC->CFGR = 0x00000400;
   
        /* 做实验,设置寄存器CFGR里的11-13位的值为101  4分频*/
    //RCC->CFGR |= 0x00002800;

        //RCC->CFGR = 0x00002F00;


    /* 寄存器CFGR的18-21四个bit位配置成以下值,则PLL就会设置成对应的值:
    0000:PLL 2倍频输出          1000:PLL 10倍频输出
    0001:PLL 3倍频输出          1001:PLL 11倍频输出
    0010:PLL 4倍频输出          1010:PLL 12倍频输出
    0011:PLL 5倍频输出          1011:PLL 13倍频输出
    0100:PLL 6倍频输出          1100:PLL 14倍频输出
    0101:PLL 7倍频输出          1101:PLL 15倍频输出
    0110:PLL 8倍频输出          1110:PLL 16倍频输出
    0111:PLL 9倍频输出          1111:PLL 16倍频输出
    我们在这里,因为STM32神舟I号上的晶振是8MHZ的,配置成9倍输出就能达到STM32最大72MHZ工作频率*/



           //RCC->CFGR |= 0x00040000; //本例程希望设置成24MHZ的工作频率,我们在这里尝试一下
           //RCC->CFGR &= 0xFFC3FFFF; //本例程希望设置成16MHZ的工作频率,我们在这里尝试一下
    //RCC->CFGR |= 0x001C0000; //本例程希望设置成72MHZ的工作频率,我们在这里尝试一下
    RCC->CFGR |= 7<<18; //本例程希望设置成72MHZ的工作频率,我们在这里尝试一下
    //7右移动18位,即0111使得PLL获得9倍频输出,外部晶振是8MHZ
    //乘以9就是72MHZ了
    RCC->CFGR |= 1<<16; //PLLSRC设置成1,使得HSE时钟作为PLL输入时钟
    RCC->CR |= 1<<24; //将PLL使能

    while(!(RCC->CR>>25)); //监控寄存器CR的PLLRDY位,等待PLL时钟就绪

    RCC->CFGR |= 1<<1;  //将时钟切换寄存器配置成用PLL输出作为系统时钟

    while(sws != 0x2)         //等待CFGR寄存器的2,3位为10,系统正式切换到了PLL输出作为时钟
    {
        sws = RCC->CFGR>>2;         // 将CFGR寄存器右移2位,将2,3位SWS状态移出来,
        // 详情请见《STM32F10XXX参考手册》54页
        sws &= 0x3;                         //这里的0x3为二进制的11,这个whlie循环设计的一个算法,为了判断sws是不是为10
    }
    /***************   程序总共2部分之第1部分 时钟频率的配置  结束} *********************************/


    /***************   程序总共2部分之第2部分 点灯的配置 {开始 *********************************/
    /* 使能APB2总线的时钟,对GPIO的端口B时钟使能 */
    //RCC->APB2ENR |= RCC_APB2Periph_GPIOB;
            /* 使能APB2总线的时钟,对GPIO的端口A时钟使能 */
    RCC->APB2ENR |= RCC_APB2Periph_GPIOA;

    /*-- GPIO Mode Configuration速度,输入或输出 -----------------------*/
    /*-- GPIO CRL Configuration 设置IO端口低8位的模式(输入还是输出)---*/
    /*-- GPIO CRH Configuration 设置IO端口高8位的模式(输入还是输出)---*/
    //GPIOB->CRH  &=  0xFFFFFFF0;
    //GPIOB->CRH  |=  0x00000003;
        /*-- GPIO CRL Configuration
        设置IO端口低8位的模式(输入还是输出)---*/
    /*-- GPIO CRH Configuration 设置IO端口高8位的模式(输入还是输出)---*/
    GPIOA->CRH  &=  0xFFFFFFF0;
    GPIOA->CRH  |=  0x00000003;                                                        


    while (1)
    {
        //GPIOB->BRR = GPIO_Pin_8;
                GPIOA->BRR = GPIO_Pin_8;
        //Delay(0xFFFFFF);
                Delay(0xfFFFF);
        //GPIOB->BSRR = GPIO_Pin_8;
                GPIOA->BSRR = GPIO_Pin_8;
        //Delay(0xFFFFFF);
                Delay(0xfFFFF);
    }
    /***************   程序总共2部分之第2部分 点灯的配置  结束} *********************************/
}
[/mw_shl_code]
程序在设置下面的语句后,led就是不会闪烁,但是其他倍频都是可以的,不知为何,请教下论坛。
RCC->CFGR |= 7<<18; //本例程希望设置成9倍频,72MHZ的工作频率,我们在这里尝试一下

最佳答案

查看完整内容[请看2#楼]

已经知道了,哈哈
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

17

主题

170

帖子

0

精华

高级会员

Rank: 4

积分
562
金钱
562
注册时间
2018-7-8
在线时间
118 小时
 楼主| 发表于 2018-9-16 00:59:29 | 显示全部楼层
回复

使用道具 举报

17

主题

170

帖子

0

精华

高级会员

Rank: 4

积分
562
金钱
562
注册时间
2018-7-8
在线时间
118 小时
 楼主| 发表于 2018-9-16 08:15:39 | 显示全部楼层
有人可以解答一下吗???
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2018-9-17 02:40:50 | 显示全部楼层
你下载我们RCT6的跑马灯,都可以跑才对的。
回复

使用道具 举报

31

主题

1955

帖子

3

精华

论坛元老

Rank: 8Rank: 8

积分
4522
金钱
4522
注册时间
2018-5-11
在线时间
947 小时
发表于 2018-9-18 21:12:15 | 显示全部楼层
wdliming 发表于 2018-9-18 20:41
已经知道了,哈哈

自我娱乐吗?
我的开源链接 https://github.com/ShuifaHe/STM32.git  请关注,点赞支持哦。
回复

使用道具 举报

17

主题

170

帖子

0

精华

高级会员

Rank: 4

积分
562
金钱
562
注册时间
2018-7-8
在线时间
118 小时
 楼主| 发表于 2018-9-24 10:53:22 | 显示全部楼层

见笑了,。。。。。。
回复

使用道具 举报

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

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-6-20 01:39

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表