stm32f407 SYSTICK延时函数的问题

2019-07-21 05:19发布

如题,STM32F407使用原子大哥的SYSTICK延时函数: 参数和环境:
                 8M外接晶振,
                 倍频到SYSCLK=168M,HCLK=168M,
                 systick时钟采用HCLK的8分频
                 KEIL MDK下使用JTAG V8硬件仿真 
出现问题:
               1. delayus函数延时时间在理论的20倍左右
               2. delayms函数延时时间在理论的17倍左右 
  不知道上述问题是仿真与实际差别的正常结果,还是什么问题,我已经通过库函数RCC_GetClocksFreq()确定SYSCLK,HCLK配置正确
 本人新手,恳请大家指教!!!谢谢 
 


友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
15条回答
正点原子
1楼-- · 2019-07-21 10:24
407还没整过哦
今年年底打算学学吧,呵呵,要不落伍了。。。
supergao
2楼-- · 2019-07-21 15:11
回复【2楼】正点原子:
---------------------------------
原子哥谦虚了,这个延时函数应该可以直接移植到407上吧?可是不知道为什么和理论值差这么多,可能是那块的问题啊,难道只能用示波器测了?
正点原子
3楼-- · 2019-07-21 20:05
 精彩回答 2  元偷偷看……
supergao
4楼-- · 2019-07-22 01:55
今天刚刚发现,keil uv4 4.23下,为何无法软件仿真STM32F4。。。总是跳出access violation的错误。之前一直硬件仿真。。。这个又是什么原因?软件设置的问题?纠结啊。。。。
bzhou830
5楼-- · 2019-07-22 07:27

我直接使用寄存器按照原子大哥的流程写的,也是出现了问题。
一直卡死在红 {MOD}的那一行。
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;
        }   
}

bzhou830
6楼-- · 2019-07-22 12:20
把原子大哥的延时直接移植使用,没有问题,我的是时钟上的问题,PLL不能锁定,于是也就是外部晶振了。LZ,可否讲讲你怎么配置寄存器实现的PLL锁相环作为时钟源的,可否程序共享一下??

一周热门 更多>