近來寫了幾個紅外遙解碼,概括一下,關鍵在于脈寬測定。
下邊這個程序在STM32F103C8上運行。
定時器中斷計數,接收頭外部中斷 ,判斷脈寬計數,實現解碼。pa0-pa7顯示鍵碼
關鍵點是:
定時器中斷計數器+1,每秒10000次(100us),
則起始碼為計數=0X5A次左右,1碼為計數0X16=左右,0碼為計數=0x0C左右。
這個左右一般在上下1個數,程序中放寬到上下4個數。
- if(Tim>=0x40 && Tim<0x70)
- {Ok=1;//收到起始信號
- Num=0;
- sdata0=Tim; //試驗=5a-5b
- }
-
- else if(Tim>=0x12 && Tim<0x1B)
- {
- hw_jsm>>=1;
- hw_jsm |= 0x80000000;//收到數據 1
- // beep=!beep;
- Num++;
- sdata1=Tim; //試驗=16-17
- }
-
- else if(Tim>=0x07 && Tim<0x10)
- {
- hw_jsm>>=1;
- hw_jsm |=0;//收到數據 0
- // beep=!beep;
- Num++;
- sdata2=Tim; //試驗=0b-0c
- }
-
- if(Num==32)
- {
- hw_jsbz=1;
- Num=0;
- DataD=hw_jsm;//結果出來了
- Ok=0;
- }
復制代碼 完整源碼
PB15中斷TIM定時器紅外解碼.zip
(373.31 KB, 售價: 1 E幣)
2020-5-18 18:08 上傳
點擊文件名下載附件
售價: 1 E幣 [記錄]
[ 購買]
【必讀】版權免責聲明
1、本主題所有言論和內容純屬會員個人意見,與本論壇立場無關。2、本站對所發內容真實性、客觀性、可用性不做任何保證也不負任何責任,網友之間僅出于學習目的進行交流。3、對提供的數字內容不擁有任何權利,其版權歸原著者擁有。請勿將該數字內容進行商業交易、轉載等行為,該內容只為學習所提供,使用后發生的一切問題與本站無關。 4、本網站不保證本站提供的下載資源的準確性、安全性和完整性;同時本網站也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的損失或傷害。 5、本網站所有軟件和資料均為網友推薦收集整理而來,僅供學習用途使用,請務必下載后兩小時內刪除,禁止商用。6、如有侵犯你版權的,請及時聯系我們(電子郵箱1370723259@qq.com)指出,本站將立即改正。
|