楼主:你能证明打不断吗?(楼主9楼问题)。 进入汇编级调试: 在中断处设断点,改单步运行,执行到中断返回RETI后,看是不是回到你的程序中去了。 |
中断高的,只是进去了你这程序体现不出来,程序没写好。 |
hkoos 发表于 2017-8-21 10:22 这样写当然不会跳出循环了,串口中断是执行了,但是程序一直还在run函数的while(1)里面。。。没有执行到case语句那里。两种方法,把串口处理那部分语句写进run函数while里面;或者,你把所有的转动程序写在一个函数里面,设置同一个变量,不要有循环,然后把这个函数放主函数while里面运行,串口命令去改变这个变量就好了。 |
oo0o_11 发表于 2017-8-20 15:49 void run(){//前进 while(1){ P1=0x7b; if(rw==0){ break; } } } case '0': rw=0;break;//停止 case '1': rw=1;run();break;//前进 我改成这样还是不行啊 只要一执行ruin 其他的任何操作都执行不了了 |
中断高 |
yzwzfyz 发表于 2017-8-21 01:12 可是打断不了啊 |
如果WHILE不在一个更高级或等级的中断服务程序中,必被串口中断打断。 |
oo0o_11 发表于 2017-8-20 15:49 可是怎么在外部中断这个while啊 |
常沉 发表于 2017-8-20 13:00 可是while一循环 串口中断里就没法接受蓝牙数据了是咋回事啊 |
yzwzfyz 发表于 2017-8-20 12:17 不是语句 是串口中断 串口中断好像不能中断while循环 |