找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1245|回复: 16
收起左侧

KEIL单片机程序里我故意加个死循环测试,为什么不能编译过去?

  [复制链接]
ID:709761 发表于 2022-5-17 09:37 | 显示全部楼层 |阅读模式
如题
回复

使用道具 举报

ID:514254 发表于 2022-5-17 09:56 | 显示全部楼层
main里面不就是一个while(1)死循环,常规操作啊
回复

使用道具 举报

ID:123289 发表于 2022-5-17 10:37 | 显示全部楼层
编译平台的任务是:将你的文本文件,翻译成CPU所能认识的二进制代码。它从不关心你程序是否循环!
回复

使用道具 举报

ID:276663 发表于 2022-5-17 10:56 | 显示全部楼层
你这个问题加上“如题”
就跟我回复
“正常”
意义一样
回复

使用道具 举报

ID:883242 发表于 2022-5-17 11:00 | 显示全部楼层
那么为什么我能编译过去呢?
回复

使用道具 举报

ID:161164 发表于 2022-5-17 11:10 来自手机 | 显示全部楼层
本帖最后由 lkc8210 于 2022-5-17 11:55 编辑
IdeaMing 发表于 2022-5-17 10:56
你这个问题加上“如题”
就跟我回复
“正常”

这楼主不停地问问题
但还是不懂得正确的发问方式
回复

使用道具 举报

ID:965189 发表于 2022-5-17 11:11 | 显示全部楼层
我之前在希望程序停止的地方加都可以通过编译。
回复

使用道具 举报

ID:155507 发表于 2022-5-17 12:09 | 显示全部楼层
没有代码,就像大妈们坐在村口聊天一样,你说你的,我说我的

问问题要提供背景资料  用啥单片机? 代码怎么写?
回复

使用道具 举报

ID:1006852 发表于 2022-5-17 13:57 | 显示全部楼层
加对了吗?
回复

使用道具 举报

ID:824490 发表于 2022-5-17 15:15 | 显示全部楼层
无条件的死,最低都会报警的。正儿八经的死才不管你的。
回复

使用道具 举报

ID:824490 发表于 2022-5-17 15:30 | 显示全部楼层
void main()
{
u8  i,j,k;


LCD_init();
BEEP_init();
Key_init();

while(1);  //<==无条件地死,此处会报警。
while(Key0==0); //<==有条件地死,此处被忽略

while(1)//<==正常死,程序标配。
  {
   Beep_ms(50,1000);
   LCD_display(xxx,xxxxx,xxx,);
   LED_on();
  }
}
回复

使用道具 举报

ID:684084 发表于 2022-5-17 18:40 | 显示全部楼层
报警跟不能通过编译是两回事,报警可能表示不合理而已
回复

使用道具 举报

ID:964308 发表于 2022-5-17 23:53 | 显示全部楼层
死循环程序标配,最多给个警告,你找找是不是有其他地方写错了
回复

使用道具 举报

ID:964308 发表于 2022-5-17 23:53 | 显示全部楼层
死循环程序标配,最多给个警告,你找找是不是有什么地方写错了
回复

使用道具 举报

ID:879348 发表于 2022-5-18 08:34 | 显示全部楼层
报警不等于编译不通过
回复

使用道具 举报

ID:353115 发表于 2022-5-18 13:02 | 显示全部楼层
我也发现过这个问题。大概是代码写的太多了,编译复杂度太高,遇到一个while,后面的大量代码中一些代码本来已经编译了,结果遇到while不知道该怎么办了。嗯,推测是这样。不过你要是用if(EA==1)来做循环,它还是编译过去的
回复

使用道具 举报

ID:1027552 发表于 2022-5-18 13:12 | 显示全部楼层
可能是while循环错误导致
回复

使用道具 举报

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

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

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