天天看點

用stm32F407實作紅外信号的發射與接收

首先講講紅外發射,紅外發射其實就是模拟遙控器。要實作紅外發射,必須對信号進行調制。NEC編碼規則載波頻率38K,由引導碼、位址碼、位址反碼、資料、資料反碼組成。560us的低電平加上560us的高電平表示邏輯0,560us的低電平加上1680us的高電平表示邏輯1,發送時低位在前高位在後。

想要了解調制的過程先得了解接收端的邏輯:紅外接收頭是有38K載波就輸出低,沒有載波就輸出0;

逆推比如引導碼,就是接收頭收到了9ms的38K載波,4.5ms的空;

那不就是發送端發送了9ms的38K載波,4.5ms沒發嗎?

是以你想利用STM32實作遙控器效果的紅外發送,就是一個開關定時器PWM的過程。

接收端的話也可以用STM32做,利用定時器輸入捕獲中斷,測量脈寬的長度;

想測量低電平長度,就先檢測下降沿,捕獲到後,調整成檢測上升沿,開始計時;再次捕獲到後,看計數到多少了,就可以擷取脈沖的長度!

隻要與發送端發的資料比對上,就表示收發成功。

繼續閱讀