STM32HAL 紅外遙控(NEC)

2021-08-21 22:35:18 字數 1961 閱讀 5734

整理了乙個nec協議的紅外程式,nec協議,物理環境為f103原子戰艦v3,使用stm32cubemx生成初始程式。

定時器配置72分頻,9999裝載值(10ms)

nec協議:

資料格式: 同步碼頭 + 位址碼 +位址反碼 + 按鍵碼 + 按鍵反碼 (

lsb先行)

同步碼頭:9ms低電平 + 4.5ms高電平

連發碼 :   9ms低電平 + 2.5ms高電平

邏輯1:      560us  +  1680us

邏輯0:      560us  +  560us

程式:

標頭檔案:

#ifndef __fun_infrared_h

#define __fun_infrared_h

#include "stm32f1xx_hal.h"

#include "tim.h"

#define rangjudge(val,min,max) (val>min? (val原始檔:

#include "fun_infrared.h"

t4_infrareddev t4infra_s, *t4infra = &t4infra_s;

void t4infrainit(void)

//改變tim4 channel4的捕獲極性

void tim_oc4polarityconfig(tim_typedef* timx, uint16_t tim_ocpolarity)

//捕獲中斷處理函式

void tim4_infraperiodhandle(void)

//捕獲中斷處理函式

void tim4_infracapturehandle(void)

else //下降沿觸發

t4infra->framestart = 1; //開始接收幀

} tim4->cnt = 0; //清除tim4計數值

/**************************** 判斷同步碼以及重複碼 ***************************/

if(rangjudge(t4infra->tritime[0],8500,9500) && \

rangjudge(t4infra->tritime[1],4000,5000) )

else if(rangjudge(t4infra->tritime[0],8500,9500) && \

rangjudge(t4infra->tritime[1],2000,3000) )

/********************************* 接收資料 *********************************/

if( t4infra->tripolarity == 1)

else if(rangjudge(t4infra->tritime[0],450,650) && \

rangjudge(t4infra->tritime[1],1450,1750) )

} }//獲取按鍵值

uint8_t getinfraredkey(void)

//獲取位址

uint8_t getinfraredaddr(void)

主函式:

#include "fun_infrared.h"

int main(void)

}//更新中斷

void hal_tim_periodelapsedcallback(tim_handletypedef *htim)

}//捕獲中斷

void hal_tim_ic_capturecallback(tim_handletypedef *htim)

}

實驗現象:

STM32紅外遙控NEC協議

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

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 位資料 ...

紅外遙控NEC協議

一 nec協議特徵 8位位址和8位命令長度 每次傳輸兩遍位址 使用者碼 和命令 按鍵值 通過脈衝串之間的時間間隔來實現訊號的調製 ppm 38khz載波 每位的週期為1.12ms 低電平 或者2.25ms 高電平 二 nec協議的典型脈衝鏈 上圖所示為nec協議的典型脈衝鏈。協議規定低位首先傳送。首...