OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 5122|回复: 13

F4板子,Main函数是循环执行的吗?

[复制链接]

18

主题

84

帖子

0

精华

初级会员

Rank: 2

积分
181
金钱
181
注册时间
2016-7-4
在线时间
56 小时
发表于 2018-8-11 21:34:32 | 显示全部楼层 |阅读模式
4金钱
本帖最后由 lcclcc 于 2018-8-12 15:37 编辑

我今天写了一个操作LED灯的程序,在main( )里面做了个for循环,希望是for循环结束后停止对LED的操作。但是for循环结束后仍然在操作LED,感觉是 Main()函数在循环执行。请问论坛里的老司机们,这种现象是说明单片机在循环执行main函数吗?如果是,是不是和ST Link的设置有关?
-------------------------------
好像真的是循环的运行了main,我在main里for之后加了一句延时5秒的语句,然后就有5秒是停止操作的了 mian.c的内容是这样的。附件是我的工程的代码



新建位图图像.png

跑马灯__寄存器版本.rar

334.37 KB, 下载次数: 31

最佳答案

查看完整内容[请看2#楼]

int main()主程序里一定要有while(1)循环,你加上while(1)循环就不存在你的问题了。
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

2

主题

686

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
10866
金钱
10866
注册时间
2014-6-12
在线时间
1038 小时
发表于 2018-8-11 21:34:33 | 显示全部楼层
int main()主程序里一定要有while(1)循环,你加上while(1)循环就不存在你的问题了。
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165524
金钱
165524
注册时间
2010-12-1
在线时间
2116 小时
发表于 2018-8-12 01:36:02 | 显示全部楼层
仿真找问题
回复

使用道具 举报

18

主题

84

帖子

0

精华

初级会员

Rank: 2

积分
181
金钱
181
注册时间
2016-7-4
在线时间
56 小时
 楼主| 发表于 2018-8-12 10:37:31 | 显示全部楼层

用St Link逐步执行来验证吗
回复

使用道具 举报

2

主题

686

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
10866
金钱
10866
注册时间
2014-6-12
在线时间
1038 小时
发表于 2018-8-12 10:47:13 | 显示全部楼层
把工程发出来让大家帮你试
回复

使用道具 举报

18

主题

84

帖子

0

精华

初级会员

Rank: 2

积分
181
金钱
181
注册时间
2016-7-4
在线时间
56 小时
 楼主| 发表于 2018-8-12 15:39:03 | 显示全部楼层
xuyaqi 发表于 2018-8-12 10:47
把工程发出来让大家帮你试

我今天加了个5秒的演示在for循环的外面,结果运行的时候就是停顿5秒了,应该是重复运行main了,不知道是不是St link不对
回复

使用道具 举报

18

主题

84

帖子

0

精华

初级会员

Rank: 2

积分
181
金钱
181
注册时间
2016-7-4
在线时间
56 小时
 楼主| 发表于 2018-8-12 23:16:45 | 显示全部楼层
xuyaqi 发表于 2018-8-12 16:24
int main()主程序里一定要有while(1)循环,你加上while(1)循环就不存在你的问题了。

一定要有while(1) ?这是为了什么呢
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165524
金钱
165524
注册时间
2010-12-1
在线时间
2116 小时
发表于 2018-8-13 01:25:44 | 显示全部楼层
lcclcc 发表于 2018-8-12 23:16
一定要有while(1) ?这是为了什么呢

回去问C语言老师。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

10

主题

67

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
283
金钱
283
注册时间
2018-6-30
在线时间
42 小时
发表于 2018-8-13 08:41:01 | 显示全部楼层
本帖最后由 shiyikuangxia 于 2018-8-13 08:43 编辑

51单片机也是这样,如果程序不是死循环或者结尾处没有停止语句,程序会自动变成循环程序,好象是程序计数器从0到最大,然后清0
又回到程序开头了,但有一段没有写程序的存储器空间到底是空操作还是直接被跳过,真有点搞不懂
回复

使用道具 举报

39

主题

535

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1065
金钱
1065
注册时间
2018-3-27
在线时间
378 小时
发表于 2018-8-13 08:50:58 | 显示全部楼层
单片机C语言中while(1)的问题 - CSDN博客
https://blog.csdn.net/bytxl/article/details/50318155
回复

使用道具 举报

10

主题

67

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
283
金钱
283
注册时间
2018-6-30
在线时间
42 小时
发表于 2018-8-13 11:01:10 | 显示全部楼层
qiuzhicheng 发表于 2018-8-13 08:50
单片机C语言中while(1)的问题 - CSDN博客
https://blog.csdn.net/bytxl/article/details/50318155

似乎明白了一点
回复

使用道具 举报

18

主题

84

帖子

0

精华

初级会员

Rank: 2

积分
181
金钱
181
注册时间
2016-7-4
在线时间
56 小时
 楼主| 发表于 2018-8-13 16:53:22 | 显示全部楼层
正点原子 发表于 2018-8-13 01:25
回去问C语言老师。

C语言老师也不一定懂单片机
回复

使用道具 举报

18

主题

84

帖子

0

精华

初级会员

Rank: 2

积分
181
金钱
181
注册时间
2016-7-4
在线时间
56 小时
 楼主| 发表于 2018-8-13 16:54:21 | 显示全部楼层
shiyikuangxia 发表于 2018-8-13 08:41
51单片机也是这样,如果程序不是死循环或者结尾处没有停止语句,程序会自动变成循环程序,好象是程序计数器 ...

哦,原来是这么回事
回复

使用道具 举报

10

主题

67

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
283
金钱
283
注册时间
2018-6-30
在线时间
42 小时
发表于 2018-8-14 08:04:40 | 显示全部楼层
lcclcc 发表于 2018-8-13 16:54
哦,原来是这么回事

我只是说这个现象,原因很可能是10楼所说
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-6-2 20:17

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表