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后变成最大值,还是有延时效果的,只是时间太短:)