找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 754|回复: 4
收起左侧

求大神看看这单片机程序哪里出错了,找不出原因

[复制链接]
ID:622606 发表于 2023-4-11 21:44 | 显示全部楼层 |阅读模式
写了一个电机控制程序,需要有急停,当急停按键按下时,电机立刻停止工作。用break结束循环,结果程序判断出错。麻烦大神看看,究竟哪里有问题?
0.png
回复

使用道具 举报

ID:1071489 发表于 2023-4-14 15:28 | 显示全部楼层
break语句通常用在循环语句和开关语句中。
当break用于开关语句switch中时,可使程序跳出switch而执行switch以后的语句;如果没有break语句,则会从满足条件的地方开始执行,直到switch结构结束。
当break语句用于do-while、for、while循环语句中时,可使程序终止循环。
执行循环后面的语句,通常break语句总是与if语句联在一起。即满足条件时便跳出循环。

评分

参与人数 1黑币 +20 收起 理由
admin + 20 回帖助人的奖励!

查看全部评分

回复

使用道具 举报

ID:622606 发表于 2023-4-13 14:43 | 显示全部楼层
根据提示:break需要放在循环内,还有步进电机使用break做急停的范程,我用for语句进行修改,问题已解决,也达到预期,以下是我的修改:
1681368077030.png
回复

使用道具 举报

ID:230500 发表于 2023-4-12 07:47 | 显示全部楼层
brea是关键词,不是你这样用的 , 你还需要阅读以下内容学习一下,
break语句通常用在循环语句和开关语句中。当break用于开关语句switch中时,可使程序跳出switch而执行switch以后的语句;如果没有break语句,则会从满足条件的地方(即与switch(表达式)括号中表达式匹配的case)开始执行,直到switch结构结束。
当break语句用于do-while、for、while循环语句中时,可使程序终止循环。而执行循环后面的语句,通常break语句总是与if语句联在一起。即满足条件时便跳出循环。
例:
main()
{
    int i=0;
    char c;
    while(1) /*设置循环*/
    {
        c='\0'; /*变量赋初值*/
        while(c!=13&&c!=27) /*键盘接收字符直到按回车或Esc键*/
        {
            c=getch();
            printf("%c\n",c);
        }
        if(c==27)
        break; /*判断若按Esc键则退出循环*/
        i++;
        printf("The No. is %d\n",i);
    }
    printf("The end");
}
注意:
1. break语句对if-else的条件语句不起作用。
2. 在多层循环中,一个break语句只向外跳一层。
回复

使用道具 举报

ID:883242 发表于 2023-4-12 00:16 | 显示全部楼层
break不能直接用于if,除非if属于循环内部的一个子句。

更离谱的是你以为写了个break语句电机就能break???
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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