久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费
標(biāo)題:
一個433 315 RF的STM32解碼程序
[打印本頁]
作者:
boboxuexi
時間:
2020-10-23 13:04
標(biāo)題:
一個433 315 RF的STM32解碼程序
RF 協(xié)議 同步信號 300us高電平 10MS 低電平,數(shù)據(jù) “0” 300us 高電平 1ms 低電平。
數(shù)據(jù) “1” 1ms 高電平 300us低電平。
只需要配置一個中斷,將這個函數(shù)放在中斷里調(diào)用,
void ir_interrupt_drives(void)//中斷50us中調(diào)用
在main 中 while(1)里面 調(diào)用 IR_Process(); 即可實現(xiàn)RF的解碼。
單片機源程序如下:
// Copyright (c) all rights reserved
//********************版權(quán)和版本的聲明**********************
//************************項目信息**************************
//項目名稱:
//客戶名稱:
//************************文件信息**************************
//文件名稱: hal_ir.c
//文件頭文件: hal_ir.h
//作 者:zenghb
//起止時間:2020年3月26日11:58:41
//文件版本:V2.0
//校 驗 和:
//************************硬件信息**************************
//目標(biāo)器件:ob39s003
//源 時 鐘:
//PCBA型號:
//************************平臺信息**************************
//開發(fā)環(huán)境:keil
//燒錄環(huán)境:
//配置內(nèi)容:
//************************功能信息**************************
//程序功能:
//函數(shù)列表:
//************************修改記錄**************************
// <author> <time> <version> <desc>
//1.zenghb 2020-03-26 V2.0
//2.
//**********************************************************
#include "hal_ir.h"
#define INTERRUPT_INT4 2
//-------------------------1-------------------------------------------------------------------
IR_Typedef IR1;
#define IR1_DECODE_VALUE 0x87
#define IR2_DECODE_VALUE 0x87
#define IR3_DECODE_VALUE 0x87
#define IR4_DECODE_VALUE 0x87
#define IR5_DECODE_VALUE 0x87
#define IR6_DECODE_VALUE 0x87
//unsigned int ProcessTime;
void ir_agreement_check(void)
{
static unsigned char i; //接收紅外信號處理
IR1.IrTimeOutCnt = 20;
IR1.Falg.bits.IrEndFlag = 0; //只要有下降沿,結(jié)束是不存在結(jié)束。
if(IR1.Falg.bits.StartFlag)
{
if( IR1.IrTime < 220 && IR1.IrTime >= 180)//引導(dǎo)碼 TC9012的頭碼,10.0ms
{
i=0;
}
if(!IR1.Falg.bits.IR_OK)
{
if(i>1)
{
if(IR1.IrTime < 4 || IR1.IrTime > 23)
{
IR1.Falg.bits.StartFlag = 0;
}
}
IR1.IrData[i++] = (unsigned char)IR1.IrTime;//存儲每個電平的持續(xù)時間,用于以后判斷是0還是1
IR1.IrTime = 0;
}
if(i >= 24)
{
IR1.Falg.bits.IR_OK=1;
i=0;
}
}
else
{
IR1.IrTime = 0;
IR1.Falg.bits.StartFlag = 1;
}
}
void ir_decode(void)//紅外碼值處理函數(shù)
{
unsigned char i,j, k,value;
k=1;
for(i=0;i<3;i++)
{
for(j=1;j<=8;j++) //處理1個字節(jié)8位
{
value<<=1;
if( IR1.IrData[k] > 17 && IR1.IrData[k] < 23)//大于某值為1,這個和晶振有絕對關(guān)系,這里使用12M計算,此值可以有一定誤差
{
value|=0x01;
}
k++;
}
IR1.IrCode[i] = value;
}
value=0;
}
void IR_Process(void)
{
if(IR1.Falg.bits.IR_OK) //如果接收好了進(jìn)行紅外處理
{
ir_decode1();
if(IR1.ProcessTime>0)
{
IR1.IrCode[0]=0;
IR1.IrCode[1]=0;
IR1.IrCode[2]=0;
}
IR1.Falg.bits.IR_OK=0;
if(IR1.IrCode[0]==0xaa && IR1.IrCode[1]==0xaa)
{
IR1.ProcessTime = 10000;
}
}
}
void ir_interrupt_drives(void)//中斷100us中調(diào)用
{
static unsigned char CheckCnt,IRStatus=0;
if(IR1.ProcessTime>0)
{
IR1.ProcessTime--;
}
if(PIN_IR1)
{
if(++CheckCnt > 2)//在中斷中調(diào)用 值為2即可,快速掃描,適當(dāng)加長可提高防抖效果。
{
CheckCnt = 2;
if(IRStatus==0)
{
ir_agreement_check1();//下降沿
}
IRStatus =1;
}
}
else
{
IR1.IrTime++;
if(CheckCnt)
{
CheckCnt--;
}
else
{
if(IRStatus)
{
IRStatus = 0;
}
}
}
}
復(fù)制代碼
作者:
aaa112
時間:
2021-8-1 15:08
不用中斷方式行嗎?
歡迎光臨 (http://m.zg4o1577.cn/bbs/)
Powered by Discuz! X3.1
主站蜘蛛池模板:
久热国产精品
|
日韩黄色大片
|
日本视频在线免费观看
|
一本色道久久综合亚洲精品小说
|
亚洲精品911
|
黄色小视频在线
|
亚洲精品日韩精品
|
久久手机视频
|
国产做爰免费观看视频
|
日韩精品在线一区二区
|
国产中文在线观看
|
亚洲国产黄色
|
又色又爽又黄gif动态图
|
日韩二三区
|
欧美二区三区
|
日本免费视频
|
四虎免费视频
|
国产乱淫av
|
成人福利视频
|
欧美日韩视频
|
白白色免费视频
|
麻豆成人91精品二区三区
|
中国农村毛片免费播放
|
日韩成人小视频
|
日韩久久久久久久
|
精品福利在线观看
|
久久婷婷网
|
91免费福利视频
|
美日韩在线视频
|
国产精品久久久久久久免费看
|
在线看片你懂的
|
天天射日日干
|
www.日韩
|
亚洲福利网
|
日本色网址
|
色综合天天综合网天天狠天天
|
91五月天
|
日本三极片
|
国产蜜臀av
|
天天干天天操天天干
|
国产精品偷乱一区二区三区
|