OpenEdv-开源电子网

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

战舰时钟配置问题

[复制链接]

20

主题

232

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
335
金钱
335
注册时间
2013-6-1
在线时间
0 小时
发表于 2014-3-31 16:44:47 | 显示全部楼层 |阅读模式

void Stm32_Clock_HSE_72M_Init()
{
 (*((unsigned long  *)(0x40021000)))|=0x00010000;         //HSE ON
 while(!*((unsigned long  *)(0x40021000))&((unsigned long)1<<17));          //等待HSE就绪
 (*((unsigned long  *)(0x40021000+0x04)))|=0x001d0080;       //PLLXTPRE=0,PLLSRC=1,PLLMUL=0111,HPRE=1000
 (*((unsigned long  *)(0x40021000)))|=0x01000000;      //使能PLL
 while(!*((unsigned long  *)(0x40021000))>>25);         //等待PLL锁定
 (*((unsigned long  *)(0x40021000+0x04)))|=0x00000002;     //PLL作为系统时钟,SW=10
}



void delay()
{
 unsigned long i=1000000;
 while(i--);
}


int main(void)

    Stm32_Clock_HSE_72M_Init();

 *((unsigned long  *)(0x40021000+0x18))=1<<3;  //APB2 GPIOB使能

 *((unsigned long  *)(0x40010c00))=0x00100000;    //PB5   LED 0
 
                                  
 while(1)
 {
  *((unsigned long  *)(0x40010c00+0x0c))=0x0000;    //PB5   0
  delay();

  *((unsigned long  *)(0x40010c00+0x0c))=0x0020;     //PB5   1
  delay();
 }
}

这是我通过操作寄存器来配置外部8m时钟经过PLL倍频后作为系统时钟,同学通过修改分频倍频系数发现,超过4X13(HSE二分频后13倍频)以后程序就跑飞了,有没有人可以解答一下?
我看了战舰带的库函数程序里面,好像对FLASH进行了操作,是不是因为初始化时钟的时候闪存没有跟上导致程序跑飞了?

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

20

主题

232

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
335
金钱
335
注册时间
2013-6-1
在线时间
0 小时
 楼主| 发表于 2014-3-31 16:46:10 | 显示全部楼层
对内部时钟进行配置也一样,频率高了程序就跑飞
回复 支持 反对

使用道具 举报

20

主题

232

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
335
金钱
335
注册时间
2013-6-1
在线时间
0 小时
 楼主| 发表于 2014-3-31 16:49:57 | 显示全部楼层
主程序里面是对DS0进行操作,控制灯的亮灭
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165475
金钱
165475
注册时间
2010-12-1
在线时间
2115 小时
发表于 2014-3-31 19:00:24 | 显示全部楼层
楼主这代码,真心看着难受啊。。。
我虽然玩寄存器,但是看着你这个,表示有压力啊。。。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

20

主题

232

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
335
金钱
335
注册时间
2013-6-1
在线时间
0 小时
 楼主| 发表于 2014-4-1 10:53:06 | 显示全部楼层
回复【4楼】正点原子:
---------------------------------
刚学…那怎么写啊…我只加了个芯片的启动代码…
原子哥,我按照步骤配置下来没落下啊。难道是flash的问题?
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165475
金钱
165475
注册时间
2010-12-1
在线时间
2115 小时
发表于 2014-4-1 22:06:44 | 显示全部楼层
回复【5楼】Scy:
---------------------------------
我的初始化之前,有个复位和配置中断向量表的操作,你加上去试试吧。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

20

主题

232

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
335
金钱
335
注册时间
2013-6-1
在线时间
0 小时
 楼主| 发表于 2014-4-4 10:54:48 | 显示全部楼层
回复【6楼】正点原子:
---------------------------------
找到问题了,flash跟不上,24-32M的flash要延时1个周期,48M以上要延时2个
回复 支持 反对

使用道具 举报

9

主题

126

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
226
金钱
226
注册时间
2014-4-3
在线时间
18 小时
发表于 2014-4-4 11:37:20 | 显示全部楼层
楼主牛B,你不担心这程序的维护问题吗?
回复 支持 反对

使用道具 举报

20

主题

232

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
335
金钱
335
注册时间
2013-6-1
在线时间
0 小时
 楼主| 发表于 2014-4-4 16:34:18 | 显示全部楼层
回复【8楼】dixdsqaid:
---------------------------------
我只是在学怎么用寄存器配置时钟额,新建的工程只能这样写了。。。勿喷
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-5-12 19:28

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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