|
近來(lái)寫了幾個(gè)紅外遙解碼,概括一下,關(guān)鍵在于脈寬測(cè)定。
下邊這個(gè)程序在STM32F103C8上運(yùn)行。
定時(shí)器中斷計(jì)數(shù),接收頭外部中斷 ,判斷脈寬計(jì)數(shù),實(shí)現(xiàn)解碼。pa0-pa7顯示鍵碼
關(guān)鍵點(diǎn)是:
定時(shí)器中斷計(jì)數(shù)器+1,每秒10000次(100us),
則起始碼為計(jì)數(shù)=0X5A次左右,1碼為計(jì)數(shù)0X16=左右,0碼為計(jì)數(shù)=0x0C左右。
這個(gè)左右一般在上下1個(gè)數(shù),程序中放寬到上下4個(gè)數(shù)。
if(Tim>=0x40 && Tim<0x70)
{Ok=1;//收到起始信號(hào)
Num=0;
sdata0=Tim; //試驗(yàn)=5a-5b
}
else if(Tim>=0x12 && Tim<0x1B)
{
hw_jsm>>=1;
hw_jsm |= 0x80000000;//收到數(shù)據(jù) 1
// beep=!beep;
Num++;
sdata1=Tim; //試驗(yàn)=16-17
}
else if(Tim>=0x07 && Tim<0x10)
{
hw_jsm>>=1;
hw_jsm |=0;//收到數(shù)據(jù) 0
// beep=!beep;
Num++;
sdata2=Tim; //試驗(yàn)=0b-0c
}
if(Num==32)
{
hw_jsbz=1;
Num=0;
DataD=hw_jsm;//結(jié)果出來(lái)了
Ok=0;
}
PB15中斷TIM定時(shí)器紅外解碼.7z
(602.18 KB, 下載次數(shù): 60)
2020-5-18 05:53 上傳
點(diǎn)擊文件名下載附件
|
評(píng)分
-
查看全部評(píng)分
|