日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

单片机开发无线控制系列-单片机端代码实现

發(fā)布時(shí)間:2024/1/8 编程问答 64 豆豆
生活随笔 收集整理的這篇文章主要介紹了 单片机开发无线控制系列-单片机端代码实现 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

?

借助藍(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)始寫單片機(jī)程序了。由于我已經(jīng)編寫好了可以自由配置的單片機(jī)端的程序,所以你可以很方便地實(shí)現(xiàn)收發(fā)功能。代碼在這

1.數(shù)據(jù)結(jié)構(gòu)設(shè)置

下面是我編寫好的名為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è)置的五種類型變量的數(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è)置的五種類型變量的數(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ù)類型。比如rxpack.bools[0]可以訪問(wèn)bool類型的第一個(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ù)類型。比如txpack.bools[0]可以訪問(wèn)bool類型的第一個(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)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。