關於藍牙安卓APP軟硬件數據收發小結

大家好,本人小白一個,從去年暑假接觸stm32單片機開始,已經過去快一年了。大一時候的不懂事,大二才知道努力,現在,才知道實踐的寶貴。花了快半年,斷斷續續的,帶隊做了一個小項目,軟硬件結合。今天已經能拿出手參加比賽了,心中無比欣慰,所以在此對“技術成長”、“心裏收穫”做總結

好了,直奔主題,都是乾貨,注意記筆記哦。

技術部分:

好奇心1:STM32F103C8T6能做實時時鐘嗎?

好奇心2:OLED能實時顯示單片機傳輸過來的數據嗎?

好奇心3:藍牙實時發送數據,OLED上能顯示嗎?

好奇心4:自己寫的安卓軟件與藍牙模塊配對時應該注意哪些事情?

好奇心5:OLED可以怎麼玩?

好奇心6:正點原子接收數據中斷標誌位的個人簡潔以及改編又該如何下手?

好奇心7:通過按鍵,能實現OLED上顯示內容的動態變換嗎?

大家可以猜一猜。由於這是雜記,就不貼代碼了,如果想要代碼,文章末尾有聯繫方式。

回答1:C8T6完全能夠實現實時時鐘功能,具體細節在正點原子時鐘源講解部分有提到。注意細節,注意細節。不但可以做到秒中斷,還可以實時顯示時間。

回答2:OLED顯示本身就和LCD屏幕顯示操作相類似,不過個人覺得最難纏得地方在於設置顯示數據的起始位置。(還有顯示漢字時,搞清楚正點原子配套軟件的配置,如果配置錯了,那麼就很尷尬了)

回答3:藍牙說白了就是一個靈活的串口,只要單片機上有串口外設,單片機串口接收到數據=藍牙接收到數據。所以,當藍牙發送數據給OLED,就等同於串口給OLED發送數據,完全能夠在OLED 上顯示出來。

回答4:我覺得最重要的就是:先要有框架,想好自己APP的功能框架,而且考慮也實際,不能天馬行空胡來。APP與藍牙連接,首先要實現藍牙傳輸數據的功能,然後再考慮不斷添加其他功能。最重要的是:發送數據的格式應該是什麼?小編的項目就是因爲接收數據格式一改再改,導致浪費了大把的時間才完成。

回答5:正點原子的代碼我就不談了,沒問題。只是注意單片機從藍牙獲取數據時,最後的結束標識符,一個是空格,一個是回車。0X0D=13,0X0A是10,但是對應的專一字符位\n和\r.由於沒有意識到這個錯誤,安卓APP中發送的只是\n,小編以爲空格鍵+ENTER鍵就是換行+回車。結果這個錯誤的常識,讓小編浪費了幾乎1周的時間來尋找問題。(身爲程序員,感覺很丟人,這麼基礎的東西都犯錯)

回答6:我覺得修改正點原子的串口接收中斷標識位,這是幾乎沒有意義的事情。如果你讀懂了回答5,但是也不是不能改,可以改。只是要先弄懂正點原子代碼,然後只改動那幾個數據就可以了。

回答7:完全可以,就利用短暫的延時函數+中斷函數(改變要顯示的內容)---》顯示,按照這個邏輯來,就沒有任何問題。升值你可以再OLED屏幕上實現“流水燈”。

個人總結部分:在開學一個月內,也將平衡車基本做完了,只是實現平衡功能,因爲其他功能熟練掌握了,就沒有必要再重複多次(初學者可以多做一些功能)

歷時幾乎半年的項目,心裏收穫挺多的。

1;高效性:在做東西之前,一定要有一個清晰的思路,沒有按照思路,預定的計劃行事,效率是極低的。

2;學會思考:不能閉門造車,要與更優秀的人討論。遇到問題,不能整個項目代碼去找問題,要通過思考,縮小問題的範圍,在衆多可能導致錯誤的結果中,列出可能性,一個一個去嘗試。

3;定位:最近和一個大佬學東西,感覺大佬的學習效率很高,並不是整天泡在實驗室,學習,本來就是一種思維的鍛鍊,沒有必要逼着自己呆在實驗室裏。但是,大佬對自己的要求非常嚴格,一旦要做一個東西,哪怕颳風下雨,他都是第一個到實驗室最有一個走的。學習,不是騙自己。只有要求自己更嚴格,收穫才能更多。

4;目標:盲目的學習,是沒有意義的。

由於總結太雜亂,就不再貼上代碼了。如果想要相關代碼,請私聊小編,看清楚,是有償的哦。有償。

由於外界因素,本篇這與2019年3月31日完成,5月24日才能發出來,多有耽擱,請見諒。

我曾許下十年,只爲最美的遇見,我是西伯利亞小強,有緣再見。

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章