MDK5对stm32编程为啥延时函数一直没执行?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MDK5对stm32编程为啥延时函数一直没执行?相关的知识,希望对你有一定的参考价值。

#include "sys.h"
是一个很简单的led灯闪烁的测试程序。。。。
#include "delay.h"
#include "led.h"
int main()

Stm32_Clock_Init(9);// ÉèÖÃϵͳʱÖÓ72M
led_init();
while(1)

led1=1;
led2=1;
delay_ms(500);
led1=0;
led2=0;
delay_ms(500);


led灯一直是亮的,没闪烁,就是延时函数没执行

把箭头中的方框内设置成相应的值即可。

参考技术A dalay——init初始化没执行 参考技术B 初始化的时候,LED是高还是低需要看一下 参考技术C 时间太短没看出来闪烁? 贴一下你的delay_ms函数 参考技术D 这个MDK没什么关系吧
子函数什么的都贴出来看看呗

stm32在MDK环境下重新建工程,文件夹以及相应文件夹的文件都相同,但是不知道为啥编译完成后代码长度变长

stm32重建工程代码长度变长

可能是新建工程的时候MDK把默认的优化率给改变了。
可以按以下操作修改编译器的优化率:
project->options for target->C/C++,那里有个optimization,level 0优化率最低,编译后代码最大,level 4优化率最大,代码最小,一般咱们选defualt默认即可。

ps:不过楼主要先确保您的MDK已经破解了,不然optimization这个选项是不可选的。
参考技术A 如果变动的不是特别多的话应该是没有问题的 编译器在编译的时候会对代码进行优化操作 可能编译的顺序不一样了 所以优化的方式也不一样了 导致代码长度有所变化本回答被提问者采纳

以上是关于MDK5对stm32编程为啥延时函数一直没执行?的主要内容,如果未能解决你的问题,请参考以下文章

最近刚入门stm32 我按原子教你玩stm32 用keil mdk5 直接用它给的文件创建工程,一直出错

stm32窗口看门狗中断服务函数为啥不能用延时函数

STM32 USART接收中断程序问题

在stm32中利用systick来延时,这阻塞了CPU吗? 执行到延时程序的时候,CPU就一直停在那里等待时间到达么?

通过map文件了解堆栈分配(STM32MDK5)--避免堆栈溢出

stm32中Delay()函数延时的时间是怎么计算的?