基于安卓平臺的分布式防拆報警控制系統(tǒng)_第1頁
基于安卓平臺的分布式防拆報警控制系統(tǒng)_第2頁
基于安卓平臺的分布式防拆報警控制系統(tǒng)_第3頁
基于安卓平臺的分布式防拆報警控制系統(tǒng)_第4頁
基于安卓平臺的分布式防拆報警控制系統(tǒng)_第5頁
已閱讀5頁,還剩16頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、基于安卓平臺的分布式防拆報警控制系統(tǒng)目錄摘 要3第1章 緒論51.1研究背景和意義51.2安卓應(yīng)用的發(fā)展及前景6第2章 硬件介紹72.1 ARM-STM3272.2 A88第3章 系統(tǒng)需求與總體設(shè)計93.1 市場需求93.2 系統(tǒng)整體設(shè)計9第4章 系統(tǒng)實(shí)現(xiàn)104.1 硬件實(shí)現(xiàn)104.1.1信號模擬104.1.2 RS485通信原理 RS485接口 通信方式 串口連接124.2軟件實(shí)現(xiàn)134.2.1信號檢測134.2.2信號接收144.2.3 信號傳遞15參考文獻(xiàn)19摘 要隨著城市的建筑當(dāng)中所使用的監(jiān)控設(shè)備逐漸的增加,很多的人開始關(guān)注監(jiān)控設(shè)備

2、的使用。人們在社會中對自身安全度和生活舒適度的認(rèn)知提高了,財產(chǎn)安全等等都需要得到更大范圍的保護(hù),因此各種安全防范系統(tǒng)就應(yīng)運(yùn)而生了,其中防拆報警系統(tǒng)是具有代表性的安全防范設(shè)施之一。 本系統(tǒng)是使用ARM Cortex-M3處理器內(nèi)核的32位微控制器STM32,通過RS485總線技術(shù)實(shí)現(xiàn)單片機(jī)和A8之間的通信,單片機(jī)上的按鍵模擬現(xiàn)實(shí)生活中的拆開信號,按鍵按下去表示有拆開信號, 然后利用RS485總線技術(shù)將信號傳給A8, A8上的serial port app接受信號報警并報警,組成一個簡易的防拆控制報警系統(tǒng)。 系統(tǒng)的開發(fā)主要由三個模塊組成,一個是在keil環(huán)境下實(shí)現(xiàn)按鍵檢測,作為前端報警控制器檢測報

3、警信息,另一個是在Android平臺下實(shí)現(xiàn)對報警信號的接收,作為后臺對報警信號進(jìn)行處理。第三個也就是最重要的部分是通過RS485總線技術(shù)實(shí)現(xiàn)報警信號的傳遞。 本系統(tǒng)的開發(fā),RS485通信是重點(diǎn),主要是向大家介紹如何通過RS485總線技術(shù)實(shí)現(xiàn)單片機(jī)與A8的通信。關(guān)鍵詞: RS485,ARM Cortex-M3,Android平臺 AbstractWith the construction of the city of the monitoring equipment used by gradually increased, many people begin to pay close atten

4、tion to the use of monitoring equipment. People in society is to improve the safety and comfort of life cognition, property safety and so on all need to get a wider range of protection, so the various security system is born, including tamper alarm system is one of the typical safety facilities.This

5、 system is to use the 32-bit microcontrollers STM32 which is ARM Cortex-M3 processor core, through the RS485 bus technology to realize the communication between the microcontroller and A8, the buttons on the single chip microcomputer analog signal in real life apart, press button show opened signal,

6、 then use RS485 bus technology to transmit signals to the A8, the serial port app on A8 receive alarm signal and alarm, which forms a simple tamper alarm control system.System development is mainly composed of three modules, one is in the keil environment for detecting buttons, as a front-end detect

7、ion alarm controller alarm information, the other is in the Android platform to realize the alarm signal interpretation, as a background to deal with alarm. The most important part is to realize the alarm signal transfer through the RS485 bus technology.The development of this system, the RS485 comm

8、unication is the key, mainly introduce how to implement microcontroller and A8 communications through the RS485 bus technology. Keywords: RS485,ARM Cortex-M3,Android platform 第1章 緒論1.1研究背景和意義在我們的生活中,門禁已經(jīng)成為我們安防生活中愈發(fā)不可或缺的安全保障了。如果說這個樓門沒有裝門禁,恐怕在住戶看來就像自己家沒有裝防盜門般的憂心。從曾經(jīng)的奢侈設(shè)備,到如今遍布各地的基礎(chǔ)防護(hù)設(shè)施,門禁系統(tǒng)角色的這種轉(zhuǎn)變,既說明

9、了門禁在我們心中地位的提升,同時也意味著隨著門禁技術(shù)的發(fā)展,這項(xiàng)技術(shù)已經(jīng)能夠滿足我們?nèi)粘I钪懈嗟陌踩枨?。出入口門禁系統(tǒng)顧名思義就是對出入口通道進(jìn)行管制的系統(tǒng),它是在傳統(tǒng)的門鎖基礎(chǔ)上發(fā)展而來的。傳統(tǒng)的機(jī)械門鎖僅僅是單純的機(jī)械裝置,無論結(jié)構(gòu)設(shè)計多么合理,材料多么堅(jiān)固,人們總能用通過各種手段把它打開。在出入人很多的通道(象辦公室,酒店客房)鑰匙的管理很麻煩,鑰匙丟失或人員更換都要把鎖和鑰匙一起更換。為了解決這些問題,就出現(xiàn)了電子磁卡鎖,電子密碼鎖,這兩種鎖的出現(xiàn)從一定程度上提高了人們對出入口通道的管理程度,使通道管理進(jìn)入了電子時代,但隨著這兩種電子鎖的不斷應(yīng)用,它們本身的缺陷就逐漸暴露,磁卡鎖

10、的問題是信息容易復(fù)制,卡片與讀卡機(jī)具之間磨損大,故障率高,安全系數(shù)低。密碼鎖的問題是密碼容易泄露,又無從查起,安全系數(shù)很低。同時這個時期的產(chǎn)品由于大多采用讀卡部分(密碼輸入)與控制部分合在一起安裝在門外,很容易被人在室外打開鎖。這個時期的門禁系統(tǒng)還停留在早期不成熟階段,因此當(dāng)時的門禁系統(tǒng)通常被人稱為電子鎖,應(yīng)用也不廣泛。最近幾年隨著感應(yīng)卡技術(shù),生物識別技術(shù)的發(fā)展,門禁系統(tǒng)得到了飛躍式的發(fā)展,進(jìn)入了成熟期,出現(xiàn)了感應(yīng)卡式門禁系統(tǒng),指紋門禁系統(tǒng),虹膜門禁系統(tǒng),面部識別門禁系統(tǒng),亂序鍵盤門禁系統(tǒng)等各種技術(shù)的系統(tǒng),它們在安全性,方便性,易管理性等方面都各有特長,門禁系統(tǒng)的應(yīng)用領(lǐng)域也越來越廣。歸根到底,

11、門禁系統(tǒng)的應(yīng)用還是出于用戶對自己人身、財產(chǎn)安全等方面的需求,既然有需求,那么門禁系統(tǒng)的防拆報警控制功能也就應(yīng)運(yùn)而生了。1.2安卓應(yīng)用的發(fā)展及前景安卓智慧型手機(jī)由谷歌在2007年底推出,并與本年底組成開放手持設(shè)備聯(lián)盟以建立行動裝置上的業(yè)界開放標(biāo)準(zhǔn)。在2008年第一臺安卓實(shí)體機(jī)上市,越來越多移動設(shè)備加入安卓市場,市場占有率不斷攀升,目前更是達(dá)到了前所未有的高度。基于安卓平臺的開發(fā)也是越來越火熱,很多應(yīng)用程序的出現(xiàn)也大大提高了手機(jī)的利用效率,很多的事情不必去找專業(yè)的工具去解決,手機(jī)可以上網(wǎng)可以游戲可以娛樂,可以照相等等。目前也加入很多功能,比如紅外感應(yīng)遙控就可以遠(yuǎn)距離控制一些家電的啟動關(guān)閉,聯(lián)網(wǎng)的功

12、能更是可以讓我們只需一部安卓手機(jī)即可遠(yuǎn)程遙控很多東西,大大地提升了便利性。安卓移動應(yīng)用市場呈現(xiàn)出更加多元化發(fā)展的景象。近兩年,安卓操作系統(tǒng)的全球市場份額一直穩(wěn)居第一位,App開發(fā)者的大多數(shù)新的應(yīng)用項(xiàng)目都建立在Android平臺上。分析機(jī)構(gòu)StrategyAnalytics的報告顯示,截止到2014年第二季度,安卓操作系統(tǒng)的全球市場份額已達(dá)84.6%,達(dá)到歷史最高紀(jì)錄,在此前一直不占優(yōu)勢的平板市場,安卓也實(shí)現(xiàn)了反超,以65.8%的份額占據(jù)了平板市場的大部分。Android設(shè)備在全球范圍內(nèi)的出貨量為2.496億部。在中國市場上,安卓平臺的日均活躍用戶已經(jīng)突破2.7億,幾乎是全球Android日均活

13、躍用戶的30%。目前國內(nèi)多家互聯(lián)網(wǎng)企業(yè)與終端廠商的跨界合作消息紛紛推出,足以表明包括硬件廠商、運(yùn)營商、互聯(lián)網(wǎng)巨頭等為開發(fā)者搭建的移動應(yīng)用推廣平臺紛紛問世,重點(diǎn)的行業(yè)化應(yīng)用也更加突出并逐漸走向成熟。特別是基于安卓平臺的可穿戴設(shè)備、智能云電視、智能汽車、智能家居等智能終端的躍世新生加速了家庭信息化網(wǎng)絡(luò)的升級,移動互聯(lián)網(wǎng)的智能化發(fā)展方興未艾。 第2章 硬件介紹2.1 ARM-STM32STM32系列是基于專為要求高性能、低成本、低功耗的嵌入式應(yīng)用專門設(shè)計的ARM Cortex-M3內(nèi)核。ARM Cortex-M3 處理器是行業(yè)領(lǐng)先的32位處理器,顯著地簡化了編程和調(diào)試的復(fù)雜度,處理能力也更加強(qiáng)大。除

14、此之外,還突破性地引入了很多新的技術(shù),專門滿足單片機(jī)應(yīng)用程序的需求(不可屏蔽中斷、嵌套向量中斷系統(tǒng)、位操作、可選的內(nèi)存保護(hù)單元),適用于具有較高確定性的實(shí)時應(yīng)用。它經(jīng)過專門開發(fā),可使合作伙伴針對廣泛的設(shè)備(包括微控制器、汽車車身系統(tǒng)、工業(yè)控制系統(tǒng)以及無線網(wǎng)絡(luò)和傳感器)開發(fā)高性能低成本平臺。此處理器具有出色的計算性能以及對事件的優(yōu)異系統(tǒng)響應(yīng)能力,同時可應(yīng)實(shí)際中對低動態(tài)和靜態(tài)功率需求的挑戰(zhàn)。此處理器配置十分靈活,從而支持廣泛的實(shí)現(xiàn)形式。 圖片2.1 STM32103RXT62.2 A8Cortex-A8內(nèi)核基于ARMv7指令架構(gòu),是ARM公司有史以來性能最強(qiáng)勁的一款處理器,適用于復(fù)雜操作系統(tǒng)及用戶

15、應(yīng)用,運(yùn)行速度可以達(dá)600MHz至1GHz,功耗在300mW以下,而性能卻高達(dá)2000MIPS。Cortex-A8處理器具有復(fù)雜的流水線架構(gòu),是基于雙對稱的、順序發(fā)射的13級流水線,帶有先進(jìn)的動態(tài)分支預(yù)測,可實(shí)現(xiàn)2.0 DMIPS/MHz,10級NEON媒體流水線,專用的L2緩存,帶有可編程的等待狀態(tài),支持多項(xiàng)與L3存儲器之間的未完成事務(wù),以充分利用CPU。采用核心板外加底板的模式,提供了7寸TFT 24位液晶觸摸屏,接口資源豐富,擴(kuò)展了通用的存儲器、通訊接口。在很小的體積下構(gòu)成了高性能、低功耗的嵌入式最小系統(tǒng),用來滿足需要高性能、高功效、經(jīng)常集成 Web 連接的市場需求。 圖片2.2 

16、60;CORTEX A8開發(fā)底板 第3章 系統(tǒng)需求與總體設(shè)計3.1 市場需求生活的改善使得人們對于自身安全和財產(chǎn)安全有了更高的要求,各種高科技的發(fā)展不僅為提高了我們的生活水平,也為不法分子提供各種便利,所以安全防護(hù)成為我們生活中愈發(fā)不可或缺的安全保障,防拆控制報警系統(tǒng)也是其中一部分。隨著信息技術(shù)和互聯(lián)網(wǎng)的飛速發(fā)展,以及計算機(jī)、通訊、數(shù)碼產(chǎn)品等領(lǐng)域的高速增長,數(shù)字化時代已經(jīng)來臨。嵌入式設(shè)備是數(shù)字化時代的主流產(chǎn)品,嵌入式軟件是數(shù)字化產(chǎn)品的核心,作為嵌入式軟件的基礎(chǔ)和關(guān)鍵,嵌入式操作系統(tǒng)在產(chǎn)業(yè)發(fā)展過程中扮演著越來越重要的角色,應(yīng)用遍及工業(yè)自動化、網(wǎng)絡(luò)通信、航空航天、醫(yī)療儀器等領(lǐng)域。此次防拆報警控制系

17、統(tǒng)應(yīng)用的單片機(jī)是典型的嵌入式微控制器(Microcontroller Unit),這也是本系統(tǒng)的一大特點(diǎn),符合時代的發(fā)展。3.2 系統(tǒng)整體設(shè)計 單片機(jī)上的按鍵模擬現(xiàn)實(shí)生活中的拆開信號,按鍵按下去表示有拆開信號, 然后利用RS485總線技術(shù)將信號傳給A8, A8上的serial port app接受信號報警并報警,組成一個簡易的防拆控制報警系統(tǒng)。其整體圖如下:單片機(jī) A8報警 圖3.1 防拆報警系統(tǒng)整體圖第4章 系統(tǒng)實(shí)現(xiàn) 系統(tǒng)的開發(fā)主要由三個模塊組成,一個是在Keil環(huán)境下實(shí)現(xiàn)按鍵檢測,作為前端報警控制器檢測報警信息,另一個是在Android平臺下實(shí)現(xiàn)對報警信號的接受,作為后臺對報警信號進(jìn)行處理

18、。第三個也就是最重要的部分是通過RS485總線技術(shù)實(shí)現(xiàn)在單片機(jī)和A8之間報警信號的傳遞。4.1 硬件實(shí)現(xiàn)4.1.1信號模擬要實(shí)現(xiàn)防拆控制報警,在硬件方面如何模擬現(xiàn)實(shí)生活的拆開信號是首要問題。因?yàn)楸鞠到y(tǒng)的主要關(guān)注點(diǎn)在于RS485通信,手邊上的資源有限,所以最終選擇單片機(jī)開發(fā)板上的獨(dú)立按鍵模擬現(xiàn)實(shí)生活中的拆開信號,按鍵按下去表示有拆開信號,是一個簡易的檢測報警信息的前端報警控制器。4.1.2 RS485通信原理RS485總線接口是一種常用的串口,具有網(wǎng)絡(luò)連接方便、抗干擾性能好、傳輸距離遠(yuǎn)等優(yōu)點(diǎn)。RS485收發(fā)器采用平衡發(fā)送和差分接收,因此具有抑制共模干擾的能力,加上收發(fā)器具有高的靈敏度,能檢測到低

19、達(dá)200mv的電壓,理論上可靠通信的傳輸距離可達(dá)數(shù)千米。使用RS485總線組網(wǎng),只需一對雙絞線就可實(shí)現(xiàn)多系統(tǒng)聯(lián)網(wǎng)構(gòu)成分布式系統(tǒng)、設(shè)備簡單、價格低廉、通信距離長。 RS485接口RS485是RS422A的變型:RS422A用于全雙工,而RS485則用于半雙工。RS485是一種多發(fā)送器標(biāo)準(zhǔn),在通信線路上最多可以使用32 對差分驅(qū)動器/接收器。如果在一個網(wǎng)絡(luò)中連接的設(shè)備超過32個,還可以使用中繼器。 RS485的信號傳輸采用兩線間的電壓來表示邏輯1和邏輯0。 圖 RS485接口 通信方式單片機(jī)的串行通信使用的是異步串行通信,所謂異步就是指發(fā)送端和接收端使用的

20、不是同一個時鐘,通信雙方使用各自的時鐘控制數(shù)據(jù)的發(fā)送和接收。為使雙方的收發(fā)協(xié)調(diào),要求發(fā)送和接收設(shè)備的時鐘盡可能一致。異步串行通信通常以字符(或者字節(jié))為單位組成字符幀傳送。字符與字符之間的間隙(時間間隔)是任意的,但每個字符中的各位是以固定的時間傳送的,即字符之間不一定有“位間隔”的整數(shù)倍的關(guān)系,但同一字符內(nèi)的各位之間的距離均為“位間隔”的整數(shù)倍。(1)字符幀的幀格式 字符幀由四部分組成,分別是起始位、數(shù)據(jù)位、奇偶校驗(yàn)位、停止位。1) 起始位:位于字符幀的開頭,只占一位,始終位邏輯低電平,表示發(fā)送端開始發(fā)送一幀數(shù)據(jù)。2) 數(shù)據(jù)位:緊跟起始位后,可取5、6、7、8位,低位在前

21、,高位在后。 3)奇偶校驗(yàn)位:占一位,用于對字符傳送作正確性檢查。奇偶校驗(yàn)位是可選擇的,共有三種可能,即奇偶校驗(yàn)、偶校驗(yàn)和無校驗(yàn),由用戶根據(jù)需要選定。4)停止位:末尾,為邏輯“1”高電平,可取1、1.5、2位,表示一幀字符傳送完畢。(2)數(shù)據(jù)傳送速率 串行通信的速率用波特率來表示,所謂波特率就是指一秒鐘傳送數(shù)據(jù)位的個數(shù)。每秒鐘傳送一個數(shù)據(jù)位就是1波特。即:1波特1bps(位/秒) 。在串行通信中,數(shù)據(jù)位的發(fā)送和接收分別由發(fā)送時鐘脈沖和接收時鐘脈沖進(jìn)行定時控制。時鐘頻率高,則波特率高,通信速度就快;反之,時鐘頻率低,波特率就低,通信速度就慢。 串口連接本系統(tǒng)使用的USART是一個全

22、雙工通用同步/異步串行收發(fā)模塊,該接口是一個高度靈活的串行通信設(shè)備。當(dāng)使用UASRT的時,如果你只用RX和TX兩個引腳時,你只需對PA9和PA10進(jìn)行相應(yīng)的初始化。單片機(jī)的PB口(十六位數(shù)據(jù)格式,JP10和JP11)的低八位(JP11)與獨(dú)立按鍵相連,作為數(shù)據(jù)的輸入口,PA口(十六位數(shù)據(jù)格式,JP9和JP8)的PA9(p3.1)與TXD相連、PA10(p3.0)與RXD相連,作為與A8進(jìn)行數(shù)據(jù)通信的接口。 串口的兩根數(shù)據(jù)線TXD是用來發(fā)送數(shù)據(jù),RXD是用來接收數(shù)據(jù)的。在此系統(tǒng)中,單片機(jī)作為輸出,DIR置高電平,所以DIR接上一個5V的高電平,就可以實(shí)現(xiàn)單片機(jī)與A8的通信。 圖 硬

23、件實(shí)物連接圖4.2軟件實(shí)現(xiàn) 軟件實(shí)現(xiàn)包括三個方面,一個是在Keil環(huán)境下實(shí)現(xiàn)按鍵檢測,另一個是在Android平臺下實(shí)現(xiàn)對報警信號的接收,第三個是兩者之間的信號傳遞。 開始判斷按鍵是否按下發(fā)送數(shù)據(jù)接收數(shù)據(jù)報警并結(jié)束 是 圖4.2 系統(tǒng)流程圖 4.2.1信號檢測 void kb_Init(void) RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB,ENABLE); /使能GPIOB時鐘,激活 GPIO_InitStructure.GPIO_Pin=GPIO_Pin_0;/指定0腳 GPIO_InitStructure.GPIO_Mode=GPIO_Mode

24、_IPU; /上拉輸入 GPIO_Init(GPIOB,&GPIO_InitStructure); /配置GPIOB 4.2.2信號接收private class ReadThread extends Thread public void run() super.run();while(!isInterrupted() int size;try byte buffer = new byte64; if (mInputStream = null) return;size = mInputStream.read(buffer);if (size > 0) onDataReceived

25、(buffer, size); catch (IOException e) e.printStackTrace();return;private void DisplayError(int resourceId) AlertDialog.Builder b = new AlertDialog.Builder(this);b.setTitle("Error");b.setMessage(resourceId);b.setPositiveButton("OK", new OnClickListener() public void onClick(Dialog

26、Interface dialog, int which) SerialPortActivity.this.finish(););b.show();protected void onCreate(Bundle savedInstanceState) super.onCreate(savedInstanceState);mApplication = (Application) getApplication();try mSerialPort = mApplication.getSerialPort();mOutputStream = mSerialPort.getOutputStream();mI

27、nputStream = mSerialPort.getInputStream();/* Create a receiving thread */mReadThread = new ReadThread();mReadThread.start(); catch (SecurityException e) DisplayError(R.string.error_security); catch (IOException e) DisplayError(R.string.error_unknown); catch (InvalidParameterException e) DisplayError

28、(R.string.error_configuration);protected abstract void onDataReceived(final byte buffer, final int size);protected void onDestroy() if (mReadThread != null)mReadTerrupt();mApplication.closeSerialPort();mSerialPort = null;super.onDestroy();4.2.3 信號傳遞  發(fā)送方:初始化串口參數(shù)設(shè)置,初始化串口中斷,初始化NVIC,以及發(fā)送數(shù)

29、據(jù)。USART_InitTypeDef USART_InitStructure; void USART_Configuration(void) RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1, ENABLE);USART_InitStructure.USART_BaudRate = 9600;USART_InitStructure.USART_WordLength = USART_WordLength_8b;USART_InitStructure.USART_StopBits = USART_StopBits_1;USART_InitStructure

30、.USART_Parity = USART_Parity_No;USART_InitStructure.USART_HardwareFlowControl = USART_HardwareFlowControl_None;USART_InitStructure.USART_Mode = USART_Mode_Rx|USART_Mode_Tx;USART_Init(USART1,&USART_InitStructure); USART_Cmd(USART1, ENABLE);USART_ITConfig(USART1,USART_IT_RXNE,ENABLE); USART_ITConf

31、ig(USART1,USART_IT_TXE ,ENABLE); void EXIT_Configuration(void) EXTI_InitTypeDef EXTI_InitStructure;GPIO_EXTILineConfig(GPIO_PortSourceGPIOB, GPIO_PinSource0); EXTI_ClearITPendingBit(EXTI_Line0); / EXTI_ClearFlag/*/ EXTI_InitStructure.EXTI_Mode = EXTI_Mode_Interrupt; EXTI_InitStructure.EXTI_Trigger =

32、 EXTI_Trigger_Falling;EXTI_InitStructure.EXTI_Line = EXTI_Line0; EXTI_InitStructure.EXTI_LineCmd = ENABLE; EXTI_Init(&EXTI_InitStructure);void NVIC_Configuration(void) NVIC_InitTypeDef NVIC_InitStructure;NVIC_PriorityGroupConfig(NVIC_PriorityGroup_1); NVIC_InitStructure.NVIC_IRQChannel = EXTI0_I

33、RQn; NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0; NVIC_InitStructure.NVIC_IRQChannelSubPriority = 2; NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE; NVIC_Init(&NVIC_InitStructure); NVIC_PriorityGroupConfig(NVIC_PriorityGroup_0); NVIC_InitStructure.NVIC_IRQChannel = USART1_IRQn; NVIC

34、_InitStructure.NVIC_IRQChannelSubPriority = 2; NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE; NVIC_Init(&NVIC_InitStructure);void USARTnvicSend(u8 senddata) USART_SendData(USART1,senddata); void EXTI0_IRQHandler(void) if(EXTI_GetITStatus(EXTI_Line0)!= RESET) EXTI_ClearITPendingBit(EXTI_Line0);

35、USARTnvicSend(0x41); EXTI_ClearITPendingBit(EXTI_Line0); void USART1_IRQHandler(void) if(USART_GetITStatus(USART1,USART_IT_RXNE)!= RESET) GPIO_ResetBits(GPIOB,GPIO_Pin_8); 接收方:打開和關(guān)閉串口,以及配置串口參數(shù),包括的參數(shù)有path(需要打開的串口設(shè)備文件路徑),baudrate(波特率),flags(打開串口的參數(shù),如O_NONBLOCK之類的,可以隨不同情況設(shè)置) 其串口數(shù)據(jù)的讀取是用FileDescript

36、or來實(shí)現(xiàn)的 。public class SerialPort private static final String TAG = "SerialPort"private FileDescriptor mFd;private FileInputStream mFileInputStream;private FileOutputStream mFileOutputStream;public SerialPort(File device, int baudrate) throws SecurityException, IOException /* Check acce

37、ss permission */if (!device.canRead() | !device.canWrite() try /* Missing read/write permission, trying to chmod the file */Process su;su = Runtime.getRuntime().exec("/system/bin/su");String cmd = "chmod 666 " + device.getAbsolutePath() + "n"+ "exitn"su.getOut

38、putStream().write(cmd.getBytes();if (su.waitFor() != 0) | !device.canRead()| !device.canWrite() throw new SecurityException(); catch (Exception e) e.printStackTrace();throw new SecurityException();mFd = open(device.getAbsolutePath(), baudrate);if (mFd = null) Log.e(TAG, "native open returns null");throw new IOExc

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論