找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索

串口中断和while循环哪个优先级高一点

查看数: 7833 | 评论数: 13 | 收藏 1
关灯 | 提示:支持键盘翻页<-左 右->
    组图打开中,请稍候......
发布时间: 2017-8-20 10:31

正文摘要:

为啥一有while循环  串口中断就接不到数据了 只要前进  就停止不了了   只要一前进 任何操作都执行不了了 求大神帮助 完整程序代码: #include<reg5 ...

回复

ID:123289 发表于 2017-8-21 22:59
楼主:你能证明打不断吗?(楼主9楼问题)。

进入汇编级调试:
在中断处设断点,改单步运行,执行到中断返回RETI后,看是不是回到你的程序中去了。
ID:228699 发表于 2017-8-21 21:26
中断高的,只是进去了你这程序体现不出来,程序没写好。
ID:228347 发表于 2017-8-21 11:13
hkoos 发表于 2017-8-21 10:22
void run(){//前进
        while(1){
                P1=0x7b;

这样写当然不会跳出循环了,串口中断是执行了,但是程序一直还在run函数的while(1)里面。。。没有执行到case语句那里。两种方法,把串口处理那部分语句写进run函数while里面;或者,你把所有的转动程序写在一个函数里面,设置同一个变量,不要有循环,然后把这个函数放主函数while里面运行,串口命令去改变这个变量就好了。
ID:228342 发表于 2017-8-21 10:22
oo0o_11 发表于 2017-8-20 15:49
问题出在你这个run函数里面,里面的while循环跳不出来,不能那么写。
void run(uint r){//前进
        w ...

void run(){//前进
        while(1){
                P1=0x7b;
                if(rw==0){
                        break;
                }         
        }       
}



case '0':  rw=0;break;//停止
case '1':  rw=1;run();break;//前进

我改成这样还是不行啊  只要一执行ruin 其他的任何操作都执行不了了
ID:227393 发表于 2017-8-21 10:09
中断高
ID:228342 发表于 2017-8-21 10:04
yzwzfyz 发表于 2017-8-21 01:12
如果WHILE不在一个更高级或等级的中断服务程序中,必被串口中断打断。

可是打断不了啊
ID:123289 发表于 2017-8-21 01:12
如果WHILE不在一个更高级或等级的中断服务程序中,必被串口中断打断。
ID:228342 发表于 2017-8-20 20:54
oo0o_11 发表于 2017-8-20 15:49
问题出在你这个run函数里面,里面的while循环跳不出来,不能那么写。
void run(uint r){//前进
        w ...

可是怎么在外部中断这个while啊
ID:228347 发表于 2017-8-20 15:49
问题出在你这个run函数里面,里面的while循环跳不出来,不能那么写。
void run(uint r){//前进
        while(r){
                P1=0x7b;         
        }        
}
前进过程中来串口中断,需要做其他动作需要在这个while里面讲你的r置0 跳出循环

评分

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

查看全部评分

ID:228342 发表于 2017-8-20 14:42
常沉 发表于 2017-8-20 13:00
一个中断,一个主循环,没有比较价值啊

可是while一循环 串口中断里就没法接受蓝牙数据了是咋回事啊
ID:223770 发表于 2017-8-20 13:00
一个中断,一个主循环,没有比较价值啊

评分

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

查看全部评分

ID:228342 发表于 2017-8-20 12:59
yzwzfyz 发表于 2017-8-20 12:17
语句无优先级之分,看你把哪个写在前面,哪个就先被执行。

不是语句 是串口中断  串口中断好像不能中断while循环
ID:123289 发表于 2017-8-20 12:17
语句无优先级之分,看你把哪个写在前面,哪个就先被执行。

评分

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

查看全部评分

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

Powered by 单片机教程网

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