OpenEdv-开源电子网

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

stm32f407 SYSTICK延时函数的问题

[复制链接]

12

主题

37

帖子

0

精华

初级会员

Rank: 2

积分
83
金钱
83
注册时间
2012-9-11
在线时间
30 小时
发表于 2012-11-13 15:42:04 | 显示全部楼层 |阅读模式
如题,STM32F407使用原子大哥的SYSTICK延时函数:
参数和环境:
                 8M外接晶振,
                 倍频到SYSCLK=168M,HCLK=168M,
                 systick时钟采用HCLK的8分频
                 KEIL MDK下使用JTAG V8硬件仿真 
出现问题:
               1. delayus函数延时时间在理论的20倍左右
               2. delayms函数延时时间在理论的17倍左右 
  不知道上述问题是仿真与实际差别的正常结果,还是什么问题,我已经通过库函数RCC_GetClocksFreq()确定SYSCLK,HCLK配置正确
 本人新手,恳请大家指教!!!谢谢 
 


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

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165309
金钱
165309
注册时间
2010-12-1
在线时间
2108 小时
发表于 2012-11-13 16:44:00 | 显示全部楼层
407还没整过哦
今年年底打算学学吧,呵呵,要不落伍了。。。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

12

主题

37

帖子

0

精华

初级会员

Rank: 2

积分
83
金钱
83
注册时间
2012-9-11
在线时间
30 小时
 楼主| 发表于 2012-11-13 16:56:57 | 显示全部楼层
回复【2楼】正点原子:
---------------------------------
原子哥谦虚了,这个延时函数应该可以直接移植到407上吧?可是不知道为什么和理论值差这么多,可能是那块的问题啊,难道只能用示波器测了?
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165309
金钱
165309
注册时间
2010-12-1
在线时间
2108 小时
发表于 2012-11-13 17:11:09 | 显示全部楼层
回复【3楼】supergao:
---------------------------------
先看晶振配置是不是这样的,407的没研究过,你可以软件仿真看的吧?
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

12

主题

37

帖子

0

精华

初级会员

Rank: 2

积分
83
金钱
83
注册时间
2012-9-11
在线时间
30 小时
 楼主| 发表于 2012-11-14 16:16:34 | 显示全部楼层
今天刚刚发现,keil uv4 4.23下,为何无法软件仿真STM32F4。。。总是跳出access violation的错误。之前一直硬件仿真。。。这个又是什么原因?软件设置的问题?纠结啊。。。。
回复 支持 反对

使用道具 举报

3

主题

18

帖子

0

精华

初级会员

Rank: 2

积分
56
金钱
56
注册时间
2012-10-8
在线时间
1 小时
发表于 2012-11-14 16:37:58 | 显示全部楼层

我直接使用寄存器按照原子大哥的流程写的,也是出现了问题。
一直卡死在红色的那一行。
void Clock_Init(u8 PLL)
{
        unsigned char temp=0;  
        MYRCC_DeInit();                                                  //复位并配置向量表
        RCC->CR |= 0x00010000;                          //外部高速时钟使能HSEON
        while(!(RCC->CR>>17));                                //等待外部时钟就绪
       
        //RCC->CFGR=0X00000400; //APB1=DIV2;APB2=DIV1;AHB=DIV1;
        RCC->LLCFGR |= (PLL<<6);                   //设置PLL值 2~16
       
        RCC->LLCFGR |= (1<<22);                          //PLLSRC ON
        FLASH->ACR   |= 0x00000002;                                  //FLASH 2个延时周期

        RCC->CR|=0x01000000;                                  //PLLON
        while(!(RCC->CR>>25));                                //等待PLL锁定       
               RCC->CFGR|=0x00000002;                                //PLL作为系统时钟        
        while(temp!=0x02)                                     //等待PLL作为系统时钟设置成功
        {  
                temp=RCC->CFGR>>2;
                temp&=0x03;
        }   
}

回复 支持 反对

使用道具 举报

3

主题

18

帖子

0

精华

初级会员

Rank: 2

积分
56
金钱
56
注册时间
2012-10-8
在线时间
1 小时
发表于 2012-11-14 23:40:02 | 显示全部楼层
把原子大哥的延时直接移植使用,没有问题,我的是时钟上的问题,PLL不能锁定,于是也就是外部晶振了。LZ,可否讲讲你怎么配置寄存器实现的PLL锁相环作为时钟源的,可否程序共享一下??
回复 支持 反对

使用道具 举报

12

主题

37

帖子

0

精华

初级会员

Rank: 2

积分
83
金钱
83
注册时间
2012-9-11
在线时间
30 小时
 楼主| 发表于 2012-11-15 14:14:58 | 显示全部楼层
回复【7楼】bzhou830:
---------------------------------
我不是配置寄存器做的,直接用的库函数。。。。不知道你是不是可以参考一下库函数里配置时钟的代码
回复 支持 反对

使用道具 举报

3

主题

18

帖子

0

精华

初级会员

Rank: 2

积分
56
金钱
56
注册时间
2012-10-8
在线时间
1 小时
发表于 2012-11-17 10:48:53 | 显示全部楼层
回复【楼主位】supergao:
---------------------------------
用库函数配置没有问题,只是把库函数里面的那个外部晶振值的宏定义更改了一下。延时函数用原子大哥的延时函数更改了一下,可以正常使用。
回复 支持 反对

使用道具 举报

1

主题

5

帖子

0

精华

新手上路

积分
41
金钱
41
注册时间
2013-3-12
在线时间
1 小时
发表于 2013-3-12 16:19:34 | 显示全部楼层
回复【楼主位】supergao:
---------------------------------
楼主的问题解决没有?我的延时函数也是这样
回复 支持 反对

使用道具 举报

4

主题

34

帖子

0

精华

初级会员

Rank: 2

积分
81
金钱
81
注册时间
2012-10-11
在线时间
4 小时
发表于 2013-3-12 16:23:35 | 显示全部楼层
试试我的这个工程,直接运行在之前用STM32F417 改装的战舰板上的。

http://www.openedv.com/posts/list/9130.htm



ALIENTEKF4.rar

11.08 MB, 下载次数: 4396

回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165309
金钱
165309
注册时间
2010-12-1
在线时间
2108 小时
发表于 2013-3-12 20:02:29 | 显示全部楼层
回复【11楼】li3p:
---------------------------------
顶,你这个把不要的内容删了,会小很多。11M啊...
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

1

主题

5

帖子

0

精华

新手上路

积分
41
金钱
41
注册时间
2013-3-12
在线时间
1 小时
发表于 2013-3-13 10:15:33 | 显示全部楼层
还是不行,貌似是keil软件的问题
回复 支持 反对

使用道具 举报

4

主题

34

帖子

0

精华

初级会员

Rank: 2

积分
81
金钱
81
注册时间
2012-10-11
在线时间
4 小时
发表于 2013-3-13 14:04:20 | 显示全部楼层
回复【12楼】正点原子:

回复【11楼】li3p:
---------------------------------
顶,你这个把不要的内容删了,会小很多。11M啊...

---------------------------------
呵呵,你的服务器是按空间算钱的啊?
回复 支持 反对

使用道具 举报

4

主题

34

帖子

0

精华

初级会员

Rank: 2

积分
81
金钱
81
注册时间
2012-10-11
在线时间
4 小时
发表于 2013-3-13 14:04:58 | 显示全部楼层
回复【13楼】wocgjjc:

还是不行,貌似是keil软件的问题

---------------------------------

硬件问题吧?HSE没起振,自动用了HSI了?
回复 支持 反对

使用道具 举报

0

主题

5

帖子

0

精华

新手上路

积分
25
金钱
25
注册时间
2013-3-12
在线时间
0 小时
发表于 2013-4-19 15:38:06 | 显示全部楼层
回复【5楼】supergao:
---------------------------------
M4的现在还不能仿真。
女孩,握紧你的右手!——毕淑敏
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2024-11-22 16:20

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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