欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

標題: 為什么我按鍵停止不了單片機程序的發送字節呢? [打印本頁]

作者: 溜溜小白    時間: 2023-8-16 13:56
標題: 為什么我按鍵停止不了單片機程序的發送字節呢?
我想做一個按鍵控制開始和停止發送字節的程序,開始是可以開始發送,但是就時停止不了,邏輯指令不是while只要為假就跳出循環了么?為什么while(0)之后程序還是一直在發送字節啊

捕獲.JPG (32.09 KB, 下載次數: 37)

捕獲.JPG

11.JPG (31.6 KB, 下載次數: 38)

11.JPG

作者: 十二橡樹    時間: 2023-8-16 14:11
是這樣的,你這個是輪詢執行,當你按下開始后,P就等于了1那么你的while(p)就會鎖住,一直在執行這個循環里面的東西,不會再重頭開始掃描了,也就是即使你按下了停止,單片機也不會去執行,單片機被鎖在了while(p)中,如果想達到你的那個效果把while(p)改成if(p)就可以了
作者: lkc8210    時間: 2023-8-16 14:30
76行的while改為if
作者: 溜溜小白    時間: 2023-8-16 14:33
十二橡樹 發表于 2023-8-16 14:11
是這樣的,你這個是輪詢執行,當你按下開始后,P就等于了1那么你的while(p)就會鎖住,一直在執行這個循環 ...

但是這個大主體的while不也是循環么?就時main主函數里不是有一個while(1),他不會循環檢測的么?這塊的順序是什么樣的啊,嵌套指令后哪個為先哪個為后啊,求賜教啊
作者: 溜溜小白    時間: 2023-8-16 14:36
十二橡樹 發表于 2023-8-16 14:11
是這樣的,你這個是輪詢執行,當你按下開始后,P就等于了1那么你的while(p)就會鎖住,一直在執行這個循環 ...

我改成if(p)和if(p==1)都試了還是無法停止啊
作者: 溜溜小白    時間: 2023-8-16 14:40
lkc8210 發表于 2023-8-16 14:30
76行的while改為if

我改成了if(p)和if(p==1)都試了一下,都是可以開始但是無法停止
作者: 十二橡樹    時間: 2023-8-16 14:47
溜溜小白 發表于 2023-8-16 14:33
但是這個大主體的while不也是循環么?就時main主函數里不是有一個while(1),他不會循環檢測的么?這塊 ...

輪詢就是代碼那個在前就先執行那個循環,首先先進行你的初始化即uart(),然后進入你的主循環,以后單片機就在這個主循環中跑了,然后執行你下面的程序,當你按鍵什么都沒按下的時候,這個程序就一直在在主循環中從頭到尾的掃描,當你按下開始以后,你的內部循環while(p)就激活了,同理單片機就會在while(p)這個循環中從頭到尾的執行你的程序。如果你想使用whil(p)實現這個功能的話,你也可以把按鍵檢測作為中斷,在中斷中改變p的狀態
作者: 十二橡樹    時間: 2023-8-16 14:50
溜溜小白 發表于 2023-8-16 14:40
我改成了if(p)和if(p==1)都試了一下,都是可以開始但是無法停止

你的P定義是什么 能截一下整個代碼嗎 是有符號的還是無符號
作者: 溜溜小白    時間: 2023-8-16 14:56
十二橡樹 發表于 2023-8-16 14:50
你的P定義是什么 能截一下整個代碼嗎 是有符號的還是無符號

unsiged char p 無符號的
作者: 十二橡樹    時間: 2023-8-16 15:07
你確定你的按鍵沒問題是嗎 這樣你試試用P3.4做開始按鍵 p3.5做停止 然后你看下能不能開始 如果不能開始就是P3.4 硬件有問題
作者: lkc8210    時間: 2023-8-16 15:13
溜溜小白 發表于 2023-8-16 14:40
我改成了if(p)和if(p==1)都試了一下,都是可以開始但是無法停止

71行改為p=0;
作者: yzwzfyz    時間: 2023-8-16 17:22
分開寫:
1、先寫一個發送函數send_ss,運行它就發送。
2、再寫一個停止發送函數stop_ss,運行它就停止發送。
做到這兩點后:
3、再依據鍵狀態,決定運行哪個函數。
這不是很清楚嗎?而且分開調試又方便。
作者: zhuls    時間: 2023-8-16 17:31
邏輯問題,你這個while(p)就是一個坑,要么進不去,要么出不來。
作者: zhuls    時間: 2023-8-16 17:37

在while(P)中插入P3_4處理代碼。試一下?





歡迎光臨 (http://www.raoushi.com/bbs/) Powered by Discuz! X3.1