999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于stm32實現的紅外遙控控制USB鼠標

2015-06-13 01:25:06權德奎長安大學西安710021
山東工業技術 2015年11期

權德奎(長安大學, 西安 710021)

基于stm32實現的紅外遙控控制USB鼠標

權德奎
(長安大學, 西安 710021)

摘 要:嵌入式技術的發展早已成為信息化產業中不可缺少的重要一頁。本文旨在應用嵌入式技術開發基于STM32實現的紅外遙控控制USB鼠標,從更多的角度和細節闡述基于STM32在實際開發中需要注意和學習的細節。這也是一次從理論到到實踐的過程。

關鍵詞:STM32中斷系統;STM32通用定時器;STM32紅外遙控

加快嵌入式技術的開發應用,掌握嵌入式開發核心技術,對于未能趕上前幾次世界范圍計算機技術發展機遇的中國來說非常重要。基于SΤM32實現的紅外遙控控制USB鼠標就是利用SΤM32的中斷系統將各模塊相互連接。當SΤM32捕獲到信號時,向CUP發送中斷請求,然后響應該中斷,對中斷進行處理。SΤM32通過識別捕獲到的紅外信號向PC端通過USB協議發送鼠標控制信號。

1 STM32中斷系統

在SΤM32中,外部中斷可由每一個I/O口進行外部事件的中斷觸發。在中斷控制器支持的19個外部中斷事件中,只有線0至15對應外部I/O的輸入中斷,線16則連接到PVD的輸出,線17連接到RΤC的鬧事件,線18連接到USB的喚醒時事件。在主程序運行之前,需要先進行中斷初始化,包括使能中斷通道、中斷優先級分組初始化、配置中斷線。當有多個中斷時,CUP處理中斷時嚴格按照中斷優先級分組來決定處理哪個中斷。中斷優先級分為搶占優先級和子優先級,中斷處理的順序先有搶占優先級決定,當搶占優先級相同時,則由子優先級決定。

2 STM32通用定時器

SΤM32的通用定時器是一個通過可編程預分頻器(PSC)驅動的16位自動裝載計數器(CNΤ)構成。在這次開發中,SΤM32的通用定時器主要用于測量輸入信號的脈沖長度即輸入捕獲。當輸入捕獲發生時將產生中斷/DMΑ。當從獨立通道中捕獲到外界信號時,定時器將測量外界信號的周期、占空比來實現信號的識別。例如,在測量時,定時器設置為邊沿觸發,即定時器會計算信號上升沿和下降沿之間的時間差,其計算精度取決于定時器本身頻率的精度。在測量方法中分為測頻法和測周法,當被測信號頻率大于中介頻率時采用測頻法,即在SΤM32中采用測頻法。

3 STM32紅外遙控

紅外遙控是通過紅外發射信號的過程,在遙控器上不同的按鍵所發射的信號是不同的,這樣在接受端才能區別按鍵。紅外是不能穿墻的,但紅外遙控器也有無線電遙控器無法比擬的優點—在多個紅外遙控器同時使用時,盡管采用相同的遙控頻率或編碼,但不會出現遙控信號“串門”的情況。在一點在家電中運用非常廣泛。在SΤM32中,我們使用的紅外遙控器編碼方式為PWM(脈沖寬度調制)的NEC協議。其特征為:8位地址和8位指令長度;地址和命令2次傳輸(確保可靠性);PWM脈沖位置調制,以發射紅外載波的占空比代表“0”和“1”;載波頻率為38Khz;位時間為1.125ms或2.25ms。不同的邏輯和位碼采用了不同時間間隔的紅外高低脈沖。地址碼和控制碼等都采用8位的數據格式,且用反碼表示以增加傳輸的可靠性。

4 STM32的主程序

在主程序中,首先要完成SΤM32的延時函數、中斷分組設置、串口初始化、紅外接受初始化、USB配置及初始化,其次就是while循環部分,這部分是最核心、最主要的一部分。在while(1)的死循環中,首先對遙控器的按鍵進行監控掃描。遙控器上的每一個按鍵都對應一個獨一無二的鍵值key。通過函數Remote_Scan()進行按鍵監控掃描,若沒有檢測到按鍵,則鍵值key為假,若檢測到遙控器有按鍵,則獲取相應的鍵值并保存到key中,并通過switch(key)對不同的key進行不同的處理。對相應key值的處理實際上就是準備要發送的控制鼠標的數據。如何對相應的key值經行數據處理呢,在這里,就要先了解它的發送數據的函數Joystick_Send(a,b,c,d)。參數a是一個八位的數據,a的不同位置1分別代表鼠標中鍵按下、右鍵按下、左鍵按下、xy坐標的變化量和變化符號(光標移動方向)等。參數b表示x坐標的變化量,這個變化量是相對上一次坐標的變化量。參數c表示y坐標的變化量,同理為相對變化量。參數d為滾輪的變化,可以控制滾輪的上下滾動和滾動速率。這里要介紹一下電腦的坐標系,電腦的坐標系不同于一般的直角坐標系。電腦坐標以屏幕左上角為原點,水平向右為x軸正方向,豎直向下為y軸正方向。了解了數據發送函數,就可以經行數據準備了。例如接受的鍵值key代表鼠標左鍵按下,則設置參數a的相應位;若key代表鼠標右移,則設置參數b為相應整數;若key代表鼠標滾輪上滾,則設置參數d。理論上講,這樣的數據處理已經比較完美了,可在實際使用中會發現另外一個問題,就是鼠標移動靈敏度的問題。這時需要定義另外一個參數s代表靈敏度,在發送坐標數據b和c時,改為發送b*s和c*s,這樣就可以相應地擴大或減小鼠標靈敏度了。當發送完數據后,需要將b、c、d數據清0。以上的處理在檢測到鍵值key的情況下,當沒有檢測到鍵值的情況下,若之前有鍵按下,則需發送松開命令,即將a置為0。以上的整個過程都處在while(1)的死循環中,這樣的話,當鼠標長時間沒有移動的時候就會造成資源浪費。這里提供一個解決思路:當鼠標在一定時間內沒有任何觸發信號產生時,可認為此時之后的很長一段時間內都不會有信號產生,可將SΤM32設置為休眠狀態。當有觸發信號產生時,可先用該觸發信號將SΤM32從休眠狀態喚醒,當程序正常執行時,再處理 該信號(當然,也可以直接將該信號丟棄)。

5 結論

基于SΤM32實現的紅外遙控控制USB鼠標旨在研究嵌入式系統的原理及系統設計。在本次的開發中涉及到嵌入式特別重要的定時器、中斷等概念,將書本知識運用于實際,注重基礎知識,為以后嵌入式開發奠定良好基礎。

參考文獻:

[1]劉藝,許大琴,萬福.嵌入式系統設計大學教程[M].北京:人民郵電出版社,2008.

[2]李智奇,白小平,陳曉龍,樊曉虹.MSP430系列超低功耗單片機原理與系統設計[M].西安:西安電子科技大學出版社,2008.

[3]趙玉田.刮楔鐵快速夾緊工具[J].設備維修.1982(06).

作者簡介:權德奎(1993-),男,四川蒼溪人,本科,研究方向:嵌入式系統開發。

主站蜘蛛池模板: 国产人免费人成免费视频| 蜜桃视频一区| 综合网天天| 国产一区二区三区精品欧美日韩| 2048国产精品原创综合在线| 久久亚洲中文字幕精品一区 | 国产精品毛片一区| 黄色免费在线网址| 91亚洲免费| 国产成人禁片在线观看| 日本高清在线看免费观看| 精品撒尿视频一区二区三区| 超碰91免费人妻| 97视频在线精品国自产拍| YW尤物AV无码国产在线观看| 亚国产欧美在线人成| 91精品伊人久久大香线蕉| 乱人伦视频中文字幕在线| 久久久久88色偷偷| 在线免费观看AV| 国产精品深爱在线| 亚洲欧美日韩成人高清在线一区| 国产一在线| 国产鲁鲁视频在线观看| 久久综合九色综合97婷婷| 国产精品9| 人人爱天天做夜夜爽| 国内毛片视频| 在线观看国产精品第一区免费| 欧美全免费aaaaaa特黄在线| 久热精品免费| 欧美日韩中文字幕在线| 亚洲毛片一级带毛片基地| jizz在线免费播放| 色天天综合久久久久综合片| 拍国产真实乱人偷精品| 女人爽到高潮免费视频大全| 中文字幕第4页| 99热这里只有成人精品国产| 国产精品原创不卡在线| 国产好痛疼轻点好爽的视频| 色综合久久88色综合天天提莫| 黄色一及毛片| 免费A∨中文乱码专区| 99久久精品久久久久久婷婷| 手机在线国产精品| 野花国产精品入口| 黄色片中文字幕| 亚洲第一中文字幕| 欧美日韩中文国产va另类| 国产成人精品亚洲日本对白优播| 国产理论一区| 国产精品分类视频分类一区| 午夜精品久久久久久久99热下载| 国产91视频观看| 亚洲v日韩v欧美在线观看| 国产精品部在线观看| 九色免费视频| 夜色爽爽影院18禁妓女影院| 婷婷亚洲视频| 天天摸天天操免费播放小视频| 人人澡人人爽欧美一区| 免费a级毛片视频| 蝴蝶伊人久久中文娱乐网| 最新国产麻豆aⅴ精品无| 日韩专区第一页| a级毛片在线免费| 亚洲一区二区精品无码久久久| 亚洲人成影视在线观看| 欧美视频在线不卡| 亚洲精品无码日韩国产不卡| 日韩专区欧美| 无码丝袜人妻| 特级欧美视频aaaaaa| 欧美日本在线观看| 中国成人在线视频| 欧美一级专区免费大片| 亚洲天堂网在线视频| 无码久看视频| 欧美亚洲中文精品三区| 在线免费a视频| 在线看片国产|