OpenEdv-开源电子网

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

LED跑马灯实验,延时不准确

[复制链接]

6

主题

17

帖子

0

精华

初级会员

Rank: 2

积分
50
金钱
50
注册时间
2015-1-5
在线时间
16 小时
发表于 2015-10-27 20:52:30 | 显示全部楼层 |阅读模式
5金钱
小白,求助!!!在学习跑马灯实验的时候,就是刚开始入门学习点灯,让小灯闪烁,主要是要是不准(意思是我用的是原子的延时函数,软件上用的是500ms可是在硬件上就变得有2、3s左右)!刚开始学习的是直接用库函数调用,演示比较正常,但是我按照手册上的直接操作寄存器的时候就出现这样的问题,演示误差很大,就这接点一个灯,让他闪烁本来我以为是我配置错了,但是我把原子的源代码放过来以后也是出现这样的问题(延时不精确),用库函数是可以的!大家给分析一下,代码如下:
LED.C   :void LED_Init(void)
{
    RCC->AHB1ENR |= ( 1<< 5);
    
    GPIOF->MODER &= ~(3 << 18);
    GPIOF->MODER |= (1 << 18);
    
    GPIOF->OTYPER &= ~(1 <<9);
    GPIOF->OTYPER |= (0 << 9);
    
    GPIOF->OSPEEDR &= ~(3 << 18);
    GPIOF->OSPEEDR |= (1 << 18);
    
    GPIOF->UPDR &= ~(3 << 18);
    GPIOF->UPDR |= (1 << 18);
    
    GPIOF->ODR |= (1 << 9);
}

main :
int main(void)
{
    delay_init(168);
    LED_Init();
    while(1)
    {
        GPIOF->ODR &= ~(1 << 9);
        delay_ms(500);
        GPIOF->ODR |= (1 << 9);
        delay_ms(500);
    }
}

最佳答案

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

时钟没有设置造成的!
无法可挡
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

6

主题

17

帖子

0

精华

初级会员

Rank: 2

积分
50
金钱
50
注册时间
2015-1-5
在线时间
16 小时
 楼主| 发表于 2015-10-27 20:52:31 | 显示全部楼层
时钟没有设置造成的!
无法可挡
回复

使用道具 举报

27

主题

77

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
368
金钱
368
注册时间
2015-1-29
在线时间
95 小时
发表于 2015-11-3 14:39:20 | 显示全部楼层
我也正在做这个例程,我的情况是在硬件仿真运行的时候delay_ms(500)要延时6秒,而下载到开发板运行就正常了。请问是为什么呢?仿真器是AK100PRO,环境IAR,开发板就原子哥的STM32F407
回复

使用道具 举报

6

主题

17

帖子

0

精华

初级会员

Rank: 2

积分
50
金钱
50
注册时间
2015-1-5
在线时间
16 小时
 楼主| 发表于 2015-11-4 13:22:12 | 显示全部楼层
回复【3楼】ZHANGXUEJIE:
---------------------------------
你好,我用的不是IAR,用的是MDK,我的仿真器是Jlink,这个不好说,亲,不好意思啊!!!

1 - LED.zip

41.54 KB, 下载次数: 84

无法可挡
回复

使用道具 举报

9

主题

55

帖子

0

精华

初级会员

Rank: 2

积分
115
金钱
115
注册时间
2015-9-27
在线时间
23 小时
发表于 2015-11-5 20:41:59 | 显示全部楼层
视频的讲解里面没有说时钟的事,也没有写这个函数,你看其他的历程,里边都有
生死看淡,低头猛干
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-2-25 15:41

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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