聚豐項(xiàng)目 > 基于AB32的uart控?zé)?/p>
基于AB32開(kāi)發(fā)板開(kāi)發(fā)一個(gè)控制燈光的設(shè)備,即藍(lán)牙控制燈光。然而實(shí)際上,AB32上面藍(lán)牙模塊,很難實(shí)現(xiàn),目前還沒(méi)有成熟,只能退而其次,串口通信,既是UART串口。我制作兩個(gè)設(shè)備,一個(gè)是主設(shè)備,另一個(gè)從設(shè)備。主設(shè)備(AB32開(kāi)發(fā)板)上開(kāi)啟uart串口,PA3和PA4引腳,連接到從設(shè)備。從設(shè)備可以是arduino開(kāi)發(fā)板,也可以是STM32開(kāi)發(fā)板,也可以是esp8266,等等,其中只要有uart串口功能。從主設(shè)備發(fā)送"uart 1"到從設(shè)備,當(dāng)從設(shè)備檢測(cè)到“uart 1”,則打開(kāi)LED;發(fā)送“uart 0”,則關(guān)燈。 設(shè)計(jì)作品思路如下圖:
rx_ted
分享rx_ted
團(tuán)隊(duì)成員
rx_ted 學(xué)生
整體架構(gòu):
內(nèi)核部分:使用了線程、信號(hào)量、互斥量、定時(shí)器
硬件部分:AB32開(kāi)發(fā)板、arduino wemos R1開(kāi)發(fā)板、若干LED和電線
軟件包:
blueturm(藍(lán)牙模塊)等
設(shè)備驅(qū)動(dòng):
GPIO/BLE/UART/I2C 等
軟件中間使用了部分信號(hào)量和互斥量保證線程同步。跟uart_sample這個(gè)例子原理差不多。
首先查找系統(tǒng)中的串口設(shè)備,等找到串口設(shè)備,例如“uart1”,找到了就打開(kāi)串口設(shè)備,將輸入命令復(fù)制到臨時(shí)變量字符串。
接著初始化信號(hào)量,一旦接收到輸入字符串,則發(fā)送這命令。
然后創(chuàng)建線程,繼續(xù)等待輸入。
根據(jù)這樣的原理而獲得流程:搜索串口設(shè)備->打開(kāi)串口設(shè)備->接收回調(diào)->信號(hào)中斷->發(fā)送命令->開(kāi)燈關(guān)燈。