单片机开发无线控制系列-单片机端代码实现
?
借助藍(lán)牙調(diào)試器我們可以很輕易地通過(guò)各種控件操作變量,現(xiàn)在要考慮的是如何讓單片機(jī)獲知這些變量?
首先確定單片機(jī)和藍(lán)牙串口模塊的連接方式:
需要注意的是藍(lán)牙串口模塊與單片機(jī)之間的連接,其TX、RX與單片機(jī)TX、RX是交叉的。如果你使用STM32單片機(jī)的USART1的話,則 藍(lán)牙的TX 連接 單片機(jī)的PA10口, 藍(lán)牙的RX連接單片機(jī)的PA9口。
連接方式
連接好藍(lán)牙串口模塊后,就開(kāi)始寫(xiě)單片機(jī)程序了。由于我已經(jīng)編寫(xiě)好了可以自由配置的單片機(jī)端的程序,所以你可以很方便地實(shí)現(xiàn)收發(fā)功能。代碼在這。
1.數(shù)據(jù)結(jié)構(gòu)設(shè)置
下面是我編寫(xiě)好的名為valuepack的代碼,其是在STM32F103單片機(jī)運(yùn)行的,你也可以針對(duì)不同的平臺(tái)進(jìn)行修改,在使用此功能前,你首先需要在valuepack.h中配置通信結(jié)構(gòu)。
在valuepack.h中配置參數(shù)
1.1接收緩沖區(qū)尺寸
緩沖區(qū)用來(lái)暫存從手機(jī)接收到的數(shù)據(jù)包,每次執(zhí)行readValuePack時(shí)將這些暫存的數(shù)據(jù)包解析。緩沖區(qū)的尺寸默認(rèn)為1024。
1.2發(fā)送數(shù)據(jù)包結(jié)構(gòu)?
這里定義發(fā)送到手機(jī)的數(shù)據(jù)包的結(jié)構(gòu),即狀態(tài)回傳。在這里你可以像在藍(lán)牙調(diào)試器上一樣設(shè)置數(shù)據(jù)包中五種變量的數(shù)目。需要確保在此設(shè)置的五種類(lèi)型變量的數(shù)目與手機(jī)的“接收數(shù)據(jù)包結(jié)構(gòu)”的設(shè)置相同。否則手機(jī)端將無(wú)法解析該數(shù)據(jù)包。
1.3接收數(shù)據(jù)包結(jié)構(gòu)?
這里定義從手機(jī)接收的數(shù)據(jù)包的結(jié)構(gòu),需要確保在此設(shè)置的五種類(lèi)型變量的數(shù)目與手機(jī)的“發(fā)送數(shù)據(jù)包結(jié)構(gòu)”的設(shè)置相同。
接下來(lái)就可以通過(guò)調(diào)用其函數(shù)實(shí)現(xiàn)數(shù)據(jù)收發(fā)了。
2.串口配置
?
?
3.接收數(shù)據(jù)包
3.1接收數(shù)據(jù)包結(jié)構(gòu)體
創(chuàng)建接收數(shù)據(jù)包
首先創(chuàng)建一個(gè)接收數(shù)據(jù)包,該數(shù)據(jù)包中包含了五個(gè)數(shù)組,對(duì)應(yīng)不同的數(shù)據(jù)類(lèi)型。比如rxpack.bools[0]可以訪問(wèn)bool類(lèi)型的第一個(gè)變量。
3.2讀包
在手機(jī)不斷發(fā)送數(shù)據(jù)到單片機(jī)時(shí),單片機(jī)需要定時(shí)執(zhí)行readValuePack。讀包的頻率最好高于手機(jī)發(fā)送數(shù)據(jù)包的頻率。
4.發(fā)送數(shù)據(jù)包
4.1發(fā)送數(shù)據(jù)包結(jié)構(gòu)體
創(chuàng)建一個(gè)發(fā)送數(shù)據(jù)包,該數(shù)據(jù)包中包含了五個(gè)數(shù)組,對(duì)應(yīng)不同的數(shù)據(jù)類(lèi)型。比如txpack.bools[0]可以訪問(wèn)bool類(lèi)型的第一個(gè)變量。
4.2發(fā)包
單片機(jī)定時(shí)執(zhí)行sendValuePack函數(shù),并傳入要發(fā)送的數(shù)據(jù)包。sendValuePack函數(shù)執(zhí)行頻率不可過(guò)高,太高容易導(dǎo)致堵塞。
至此已經(jīng)整個(gè)單片機(jī)端的數(shù)據(jù)收發(fā)就完成了。函數(shù)總共就三個(gè) init、read和send,使用起來(lái)非常簡(jiǎn)單。
單片機(jī)端的源代碼
總結(jié)
以上是生活随笔為你收集整理的单片机开发无线控制系列-单片机端代码实现的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: html中tr中加判断换行符,深入解析H
- 下一篇: 服务器摆放需要预留U位么_办公沙发摆放有