STM32平衡小車】APP調(diào)試協(xié)議及代碼分析

      網(wǎng)友投稿 702 2022-05-28

      文章目錄

      一、首頁界面

      二、波形界面

      三、調(diào)試界面

      四、聊天界面

      五、代碼

      printf("{A%d:%d:%d:%d}$",a,b,c,d);

      a、b、c、d分別為需要顯示的狀態(tài):

      a對應(yīng)左邊的碼盤,b對應(yīng)右邊的碼盤,通過百分比表示,可以用于速度等狀態(tài)的顯示,范圍是0—100(%)

      c主要是用于顯示電量,范圍也是0—100(%)

      d是角度值,范圍是-180°—180°。

      APP控件名稱與發(fā)送指令對應(yīng)對應(yīng)關(guān)系

      printf("{B%d:%d:%d:%d:%d}$",a,b,c,d,e);

      5個波形通道!

      a、b、c、d、e 為需要顯示的波形,發(fā)送的參數(shù)必須為整型變量,如果需要顯示浮點數(shù),放大一定的倍數(shù)之后再打印出來。

      需要注意的是,每個通道發(fā)送的數(shù)據(jù)不可超過 5 個,但是可以少于 5 個。

      printf("{B%d:%d:%d:%d:%d:%d:%d:%d:%d}$",a,b,c,d,e,f,g,h,i);

      調(diào)試界面可以進(jìn)行 9 個通道【0-8】的參數(shù)調(diào)節(jié),點擊每個通道的文字,可以編輯該通道的名稱、調(diào)節(jié)范圍、數(shù)值等。點擊右上方的菜單按鈕,可以彈出設(shè)置界面。

      【實時發(fā)送參數(shù)】,使能后在推動滑塊到某一位置松開手便發(fā)送相應(yīng)的參數(shù)。

      【發(fā)送所有參數(shù)】,上述【實時發(fā)送參數(shù)】如果不使能,則需要點擊下方的,一起發(fā)送 9 個通道的數(shù)據(jù)。(注意:程序暫時沒有處理這個發(fā)送所有參數(shù))

      【掉電保存參數(shù)】,主要是把調(diào)節(jié)好的參數(shù),寫入下位機的 Flash 或者 EEPROM 等,實現(xiàn)掉電保存。

      【獲取設(shè)備參數(shù)】,可以接收下位機的參數(shù)并更新到當(dāng)前的調(diào)節(jié)界面。接收該指令之后,下位機需要把參數(shù)打印出來。

      APP控件名稱與發(fā)送指令對應(yīng)對應(yīng)關(guān)系

      下位機(單片機)發(fā)送消息到APP,格式參考:printf("{#hello world}$");

      APP發(fā)送消息到下位機(單片機)可直接發(fā)送。

      /************************************************************************** 函數(shù)功能:串口3接收中斷 入口參數(shù):無 返回 值:無 **************************************************************************/ void USART3_IRQHandler(void) { if(USART3->SR&(1<<5))//接收到數(shù)據(jù) { static u8 Flag_PID,i,j,Receive[50]; static float Data; Usart3_Receive=USART3->DR; APP_RX=Usart3_Receive; if(Usart3_Receive>=0x41&&Usart3_Receive<=0x48)//0x41-'A'...0x48-'H' Flag_Direction=Usart3_Receive-0x40; else if(Usart3_Receive<10) Flag_Direction=Usart3_Receive; else if(Usart3_Receive==0x5A)//0x5A-'Z' Flag_Direction=0; //以下是與APP調(diào)試界面通訊 if(Usart3_Receive==0x7B) Flag_PID=1; //APP參數(shù)指令起始位 - 0x7B對應(yīng)的ASCII是'{' if(Usart3_Receive==0x7D) Flag_PID=2; //APP參數(shù)指令停止位 - 0x7D對應(yīng)的ASCII是'}' if(Flag_PID==1) //采集數(shù)據(jù) 將APP參數(shù)指令保存到Receive數(shù)組中,包括`{`但不包括'}' { Receive[i]=Usart3_Receive; i++; } if(Flag_PID==2) //分析數(shù)據(jù) { if (Receive[3]==0x50) PID_Send=1; //0x7D對應(yīng)的ASCII是'P' else if(Receive[3]==0x57) Flash_Send=1; //0x57對應(yīng)的ASCII是'W' else if(Receive[1]!=0x23) //0x23對應(yīng)的ASCII是'#' 對應(yīng)APP拖動滑塊然后松手發(fā)送參數(shù)到下位機(單片機)的操作 { for(j=i;j>=4;j--)//假如發(fā)送指令為{0:120},該for循環(huán)的作用是取出120 { Data+=(Receive[j-1]-48)*pow(10,i-j);//注意此處的49對應(yīng)0x30 } switch(Receive[1])//對應(yīng)的通道 { case 0x30: Bluetooth_Velocity=Data;break; case 0x31: Velocity_KP=Data;break; case 0x32: Velocity_KI=Data;break; case 0x33: break; case 0x34: break; case 0x35: break; case 0x36: break; case 0x37: break; //預(yù)留 case 0x38: break; //預(yù)留 } } Flag_PID=0;//相關(guān)標(biāo)志位清零 i=0; j=0; Data=0; memset(Receive, 0, sizeof(u8)*50);//數(shù)組清零 } } }

      1

      2

      3

      4

      5

      6

      7

      8

      9

      10

      11

      12

      13

      14

      15

      16

      17

      18

      19

      20

      21

      22

      23

      24

      25

      26

      27

      28

      29

      30

      31

      32

      33

      34

      35

      36

      37

      38

      39

      40

      41

      42

      43

      44

      45

      46

      47

      48

      49

      50

      51

      52

      53

      54

      55

      56

      57

      58

      59

      【STM32平衡小車】APP調(diào)試協(xié)議及代碼分析

      60

      61

      62

      官方說明文檔

      資料獲取 - 提取碼:y81g

      ASCII碼表

      TCP/IP 移動APP

      版權(quán)聲明:本文內(nèi)容由網(wǎng)絡(luò)用戶投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔(dān)相應(yīng)法律責(zé)任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實的內(nèi)容,請聯(lián)系我們jiasou666@gmail.com 處理,核實后本網(wǎng)站將在24小時內(nèi)刪除侵權(quán)內(nèi)容。

      上一篇:【云監(jiān)控-技術(shù)分享】云監(jiān)控使用場景
      下一篇:一次關(guān)于kafka數(shù)據(jù)丟失場景的激烈討論...
      相關(guān)文章
      亚洲国产成人久久综合一| 亚洲国产成人久久精品99 | 亚洲国产成人爱av在线播放| 亚洲人成无码网站在线观看| 久久综合久久综合亚洲| 亚洲一级毛片免费观看| 亚洲理论片在线中文字幕| 亚洲精品高清国产麻豆专区| 亚洲高清视频免费| 亚洲成人在线免费观看| 亚洲一区二区三区免费视频| 亚洲国产精品综合久久20| 亚洲狠狠成人综合网| 亚洲日韩亚洲另类激情文学| 亚洲区日韩精品中文字幕| 亚洲av日韩精品久久久久久a| 亚洲Av无码国产一区二区| 国产亚洲精品国产福利在线观看 | 精品久久久久亚洲| 男人的天堂亚洲一区二区三区| 亚洲欧美中文日韩视频| 亚洲精品宾馆在线精品酒店| 亚洲啪啪AV无码片| 国产亚洲一区二区三区在线观看| 亚洲av成人无码久久精品| 亚洲日本在线看片| 亚洲日本香蕉视频观看视频| 亚洲成a人片在线不卡| 亚洲色大18成人网站WWW在线播放| 亚洲 欧洲 日韩 综合在线| 亚洲国产成人精品无码区二本 | 亚洲伦另类中文字幕| 亚洲第一网站免费视频| 亚洲一卡二卡三卡| 亚洲偷自拍另类图片二区| 亚洲AV香蕉一区区二区三区| 亚洲欧洲国产成人综合在线观看| 亚洲精品无码成人片久久| 亚洲视频.com| 国产成人精品日本亚洲18图| 亚洲av最新在线观看网址|