求助跑马灯实验小问题

2019-08-14 16:24发布

刚看完原子哥跑马灯实验的视频我有个疑问。
int main(void)
{
while(1)
{
GPIO_SetBits(GPIOA,GPIO_Pin_3);
delay(500);

GPIO_SetBits(GPIOC,GPIO_Pin_3);
delay(500);
}
}

假设PA.3  和Pc.3连接LED。但是C语言不是顺序执行么?为什么会两个灯一起亮两个灯一起灭??@正点原子

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
14条回答
q247341184
1楼-- · 2019-08-15 14:05
路人甲乙丙丁 发表于 2017-8-10 23:33
你这个程序灯应该一直不亮吧,led灯是电平控制的,你GPIO_SetBits(GPIOA,GPIO_Pin_3)A3会一直是高电平, ...

奥我明白你的意思了,是我少打了一个流程。
不过现在不考虑什么是跑马灯,我就想两个灯一起亮,一起灭。那可你的这个回答我可不可以理解为流程是这样:
1、LED1亮;
2、及短延时(肉眼不可见);
3、LED2亮;
4、肉眼可见延时;
5、LED1灭;
6、肉眼不可见延时;
7、LED2灭;

可以这么理解嘛??
q247341184
2楼-- · 2019-08-15 16:16
魑魅魍魉 发表于 2017-8-10 17:51
你就不可以先把完整程序弄上来吗?要不然你哪些程序有,哪些没有都不知道,怎么讨论

其实我就是想知道,
SET(LED1);
SET(LED2);
delay(500);//延时500ms
RESET(LED1);
RESET(LED2);

在这个流程中,SET(LED1)和SET(LED2)是同步执行还是有个肉眼不可见延时的顺序执行?
haysen
3楼-- · 2019-08-15 19:23
q247341184 发表于 2017-8-11 08:34
其实我就是想知道,
SET(LED1);
SET(LED2);

在线仿真,单步执行
a5820736
4楼-- · 2019-08-15 20:51
不可能真正意义上的同步执行,执行一条命令都要时间,没延时的话肉眼是看不到差别的
守候ocean
5楼-- · 2019-08-15 23:44
 精彩回答 2  元偷偷看……
李鸿泉55555
6楼-- · 2019-08-16 00:40
延时时间太短

一周热门 更多>