|
在while(P)中插入P3_4处理代码。试一下? |
| 逻辑问题,你这个while(p)就是一个坑,要么进不去,要么出不来。 |
|
分开写: 1、先写一个发送函数send_ss,运行它就发送。 2、再写一个停止发送函数stop_ss,运行它就停止发送。 做到这两点后: 3、再依据键状态,决定运行哪个函数。 这不是很清楚吗?而且分开调试又方便。 |
溜溜小白 发表于 2023-8-16 14:40 71行改为p=0; |
| 你确定你的按键没问题是吗 这样你试试用P3.4做开始按键 p3.5做停止 然后你看下能不能开始 如果不能开始就是P3.4 硬件有问题 |
十二橡树 发表于 2023-8-16 14:50 unsiged char p 无符号的 |
溜溜小白 发表于 2023-8-16 14:40 你的P定义是什么 能截一下整个代码吗 是有符号的还是无符号 |
溜溜小白 发表于 2023-8-16 14:33 轮询就是代码那个在前就先执行那个循环,首先先进行你的初始化即uart(),然后进入你的主循环,以后单片机就在这个主循环中跑了,然后执行你下面的程序,当你按键什么都没按下的时候,这个程序就一直在在主循环中从头到尾的扫描,当你按下开始以后,你的内部循环while(p)就激活了,同理单片机就会在while(p)这个循环中从头到尾的执行你的程序。如果你想使用whil(p)实现这个功能的话,你也可以把按键检测作为中断,在中断中改变p的状态 |
lkc8210 发表于 2023-8-16 14:30 我改成了if(p)和if(p==1)都试了一下,都是可以开始但是无法停止 |
十二橡树 发表于 2023-8-16 14:11 我改成if(p)和if(p==1)都试了还是无法停止啊 |
十二橡树 发表于 2023-8-16 14:11 但是这个大主体的while不也是循环么?就时main主函数里不是有一个while(1),他不会循环检测的么?这块的顺序是什么样的啊,嵌套指令后哪个为先哪个为后啊,求赐教啊 |
| 76行的while改为if |
| 是这样的,你这个是轮询执行,当你按下开始后,P就等于了1那么你的while(p)就会锁住,一直在执行这个循环里面的东西,不会再重头开始扫描了,也就是即使你按下了停止,单片机也不会去执行,单片机被锁在了while(p)中,如果想达到你的那个效果把while(p)改成if(p)就可以了 |