STM32高階 紅外遙控器的應用詳細步驟

2021-10-23 17:07:25 字數 2149 閱讀 6938

紅外遙控是一種無線、非接觸摸制技術,具有抗干擾能力強,資訊傳輸可靠,功耗低,成本低,易實現等顯著優點,被諸多電子裝置特別是家用電器廣泛採用,並越來越多的應用到計算機系統中。

同類產品的紅外線遙控器,可以有相同的遙控頻率或編碼,而不會出現遙控訊號「串門」的情況。

紅外遙控的編碼目前廣泛使用的是:nec protocol 的pwm(脈衝寬度調製)和philips

rc-5 protocol 的ppm(脈衝位置調製)。

nec協議的特徵:

1、8位位址和8位指令長度;

2、位址和命令兩次傳輸;(確保可靠性)

3、pwm脈衝寬度調製,以發射紅外載波的占空比代表「0」和「1」;

4、載波頻率為38khz

5、位時間為1.125ms和2.25ms

nec碼位的定義:

乙個脈衝對應560us的連續載波,乙個邏輯1傳輸需要2.25ms(560us脈衝+1680us低電平),乙個邏輯0的傳輸需要1.125ms(560us脈衝+560us低電平)。而遙控接收頭在收到脈衝時為低電平,在沒有收到脈衝時為高電平,因此,我們在接收頭端收到的訊號為:邏輯1應該是560us低+1680us高,邏輯0應該是560us低+560us高。如下圖:

nec遙控器指令格式:

nec遙控指令的資料格式為:同步碼頭、位址碼、位址反碼、控制碼、控制反碼。同步碼由乙個9ms的低電平和乙個4.5ms的高電平組成,位址碼、位址反碼、控制碼、控制反碼均是8位資料格式。按照低位在前,高位在後的順序傳送。採用反碼是為了增加傳輸的可靠性(可用於校驗)。

其位址碼為0,控制碼為21(從左往右讀數)。可以看到在100ms之後,我們還收到了幾個脈衝,這是nec碼規定的連發碼(由9ms低電平+2.5m高電平+0.56ms低電平+97.94ms高電平組成),如果在一幀資料傳送完畢之後,按鍵仍然沒有放開,則發射重複碼,即連發碼,可以通過統計連發碼的次數來標記按鍵按下的長短/次數。

根據自己晶元型別查詢相應的引腳介面

由圖可知:

應該初始化gpio口pa8,輸入模式,中斷線設定為8,nvic通道為exti9_5_irqn

關鍵**

void

infrared_init

(void

)u32 ir_pluse_high_time

(void

)return t;

}//返回1資料幀正常,0資料幀異常

intpending

(u32 ir_data)

//位址碼(31~24) 位址反碼(16~23) 控制碼(8~15) 控制反碼(0~7)

void

exti9_5_irqhandler

(void

)//若高電平持續時間為400~1000us內則為資料位為0: 560us在400~1000us

else

if(t>

20&& t<50)

else

if(t>

60&& t<90)

//若高電平持續時間為1200~1800us內則為資料位為1: 1680us在1200~1800us

if(ir_valed)

break;}

}}}}

//清除中斷標誌位

exti_clearitpendingbit

(exti_line8)

;}

STM32 紅外遙控器

紅外 原理 遙控器作為發射器,發射38khz的載波,接收器在接收到載波時為低電平 按照nec protocol的pwm,該協議的特點 1 8位位址和8位指令長度 2 位址和命令分兩次傳送,並有傳送位址和命令反碼,便於校驗,確保傳輸的準確 3 pwm脈衝位置調製,以發射紅外載波的占空比來表示 0 和 ...

STM32 NEC紅外遙控器解碼

現有的紅外遙控包括兩種方式 pwm 脈衝寬度調製 和ppm 脈衝位置調製 兩種形式編碼的代表分別為nec 和philips 的rc 5 rc 6 以及將來的rc 7。nec 格式的特徵 1 使用38 khz 載波頻率 2 引導碼間隔是9 ms 4.5 ms 3 使用16 位客戶 4 使用8 位資料 ...

STM32紅外遙控NEC協議

正點原子紅外遙控實驗 nec協議發出的一幀資料報括 同步 引導 碼,位址碼,位址反碼,控制碼,控制反碼,連發 重複 碼 其中位址碼,位址反碼,控制碼,控制反碼的邏輯 1 和邏輯 0 表示如下 邏輯 1 2.25ms 560us脈衝 1680us低電平 邏輯 0 1.125ms 560us脈衝 560...