• 已解决 73482 个问题
  • 已帮助 5993 位优秀工程师

最近在排查项目中的错误,delay函数的问题

沃尔夫斯堡的羊 2018-01-11 浏览量:1215

最近在排查项目中的问题,delay函数,自己在STM32F4的板子上写了一个while循环测试打印输出printf函数,如下

int main(){

    usart_init();

    while(1){

        printf(".........");

       //delay_ms(10);

     }

}

编译运行了在没加delay_ms函数之前,可以运行循环输出,可加了delay_ms延时函数之后,怎么就运行一次输出一行,就感觉卡了,delay函数用的是配套例程下的原代码。。。是不是什么地方配置遗漏了?

0 0 收起

我来回答

上传资料:
选择文件 文件大小不超过15M(格式支持:doc、ppt、xls、pdf、zip、rar、txt)
最佳答案
  • 看你的写法,没有问题的,如果调用的是库函数的话那问题应该也没出在delay本身,由于你使用的是库函数,检查下这个函数的实现方式,应该需要init才行,比如它可能是用某个定时器实现的,而你的定时器没有设置,或者定时器设置了,定时器的时钟不合适,导致延时变长,希望你调试顺利,by the way写代码有时靠运气,实在不行拿出例程里的延时demo对比下
    • 发布于 2018-01-11
    • 举报
    • 评论 1
    • 0
    • 0
电子老工程师 回复了 :https://www.digikey.sg/product-detail/en/lantiq/PEF2256EV2-2-G/2156-PEF2256EV2-2-G-ND/12604023 回复

其他答案 数量:12
  • 你最好提供一些delay_ms函数的定义,如果是库函数就算了,如果是例程中的,你最好提供出来看看
    • 发布于2018-01-11
    • 举报
    • 评论 1
    • 0
    • 0
电子老工程师 回复了  :没有替代,引脚功能都不一样 回复

  • 定时器是不是没打开,或者被其他部分占用了
    • 发布于2018-01-11
    • 举报
    • 评论 1
    • 0
    • 0
电子老工程师 回复了  :https://www.mouser.com/catalog/additional/TDK_reach_rohs_declaration.pdf 回复

  • delay函数的配置没有初始化吧
    • 发布于2018-01-11
    • 举报
    • 评论 1
    • 0
    • 0
电子老工程师 回复了  :型号正确, FTB60S010A 回复

  • 可以贴上delay函数的内容么?

    如果delay函数用定时器或者stick-stock时钟,是需要初始化时钟部分的,不然会有错误。

    • 发布于2018-01-11
    • 举报
    • 评论 1
    • 0
    • 0
电子老工程师 回复了  :RT8097AHGE 厂牌:Richtek USA Inc. 回复

  • 看下delay_ms的源代码,比较容易判断。
    如果时通过定期器或者滴答,那就需要初始化相关的设置,如果只是简单的for循环,应该和主频有关,改主频或者修改for循环次数,就可以看到变化。
    • 发布于2018-01-11
    • 举报
    • 评论 1
    • 0
    • 0
电子老工程师 回复了  :规格书见附件 回复

  • delay_ms函数是使用滴答定时器来做的吗?如果是的 话,得初始化SysTick。
    • 发布于2018-01-11
    • 举报
    • 评论 1
    • 0
    • 0
电子老工程师 回复了  :参数全都不一样,SN74AVCH4T245:参数值比SN74AVC4T245参数值大,规格书第5页 回复

  • 最好把Delay函数的详细代码发上来看下,是不是里面的代码导致卡死。

    • 发布于2018-01-11
    • 举报
    • 评论 1
    • 0
    • 0
电子老工程师 回复了  :该物料是可充电电池,电池放置一段时间后则进入休眠状态,此时容量低于正常值,若电池充过电之后测量的电压值是0.2v的话是不正常的。 回复

  • 吧delay函数的代码发上来。程序应该是卡在了delay里面了。
    • 发布于2018-01-11
    • 举报
    • 评论 1
    • 0
    • 0
电子老工程师 回复了  :molex材质成分,只能通过代理商向原厂申请。 回复

  • 看样子程序是死在了delay_ms那里了,你可以调试一下,进入到delay_ms里边看看具体停在了哪里,然后再解决问题
    • 发布于2018-01-11
    • 举报
    • 评论 1
    • 0
    • 0
电子老工程师 回复了  :给出正确型号。 回复

  • 看看这个函数是定时器设置的,还是循环设置的。

    把这个函数的源码贴出来看看。

    • 发布于2018-01-11
    • 举报
    • 评论 1
    • 0
    • 0
电子老工程师 回复了  :盖子原厂没有推荐配套型号。 OESL-50-3-5 厂牌:Kilo International 这个是我找的型号。跟客户确认 回复

  • 一般是延时函数没有初始化,或者是只有声明没有函数实体,都会死在这
    • 发布于2018-01-12
    • 举报
    • 评论 1
    • 0
    • 0
电子老工程师 回复了  :规格书原厂没有提供,https://sealandpptc.diytrade.com/sdp/2108970/4/pd-6930934/11958287-0/ptc_resettable_fuse.html 回复

电子老工程师 回复了  :BY269TR 详细说明 二极管雪崩 1600V 800mA 通孔 SOD-57 回复

相关问题

问题达人换一批

最近在排查项目中的错误,delay函数的问题