zzz111xxx 发表于 2015-1-24 22:55:27

延时过短

dingfs 发表于 2015-1-24 23:25:36

建议用定时器设置延时

feel-376797 发表于 2015-1-25 07:55:44

使用示波器调试有时是明智的.

holts1 发表于 2015-1-25 08:39:18

中断时间设的不合适

AndyYau-268557 发表于 2015-1-25 10:19:09

谢谢各位帮助。

dsjsjf 发表于 2015-1-25 10:43:02

延时太短

QianFan 发表于 2015-1-25 11:23:16

使用的是什么编译器?这个死循环会不会被优化掉?
你的主频是多少?
如果是gcc之类的编译器,i的变量定义要加上volatile。
如果是48M的话,可以这样:
for(volatile int i=0;i<480000;i++);

AndyYau-268557 发表于 2015-1-25 11:57:08

1.变量放在前面了,造成i自减后不能执行,2,延时太小,肉眼看不见。谢谢各位。都是基础概念没掌握牢靠

harvardx 发表于 2015-1-25 15:29:40

好好看看历程吧!

wu1169668869 发表于 2015-1-25 15:48:11

fjjjnk1234 发表于 2015-1-24 18:35
i是全局变量,GPIO_SetBits(GPIOA, GPIO_Pin_5);下一句while(i--);已经把i减到0了,之后i延时就不起作用了 ...

减到0后变成最大值,还是有延时效果的,只是时间太短:)
页: 1 [2]
查看完整版本: 一个很奇怪的问题:LED只能亮或只能灭,不能闪烁