OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 3272|回复: 5

战舰V3红外解码实验,为什么测得码值和实际不一样啊

[复制链接]

2

主题

3

帖子

0

精华

新手上路

积分
36
金钱
36
注册时间
2015-12-21
在线时间
5 小时
发表于 2016-5-11 21:29:28 | 显示全部楼层 |阅读模式
1金钱
战舰V3红外解码实验,测得的码值和实际不一样,理论应该是45,但用历程测得的是A2,一直搞不明白,望高手解答,谢谢

最佳答案

查看完整内容[请看2#楼]

//首位交换 static unsigned char _HtoL_(unsigned char temp) { unsigned char nTemp = temp,i=0; temp =0; for(i=0;i>16)&0xff; //得到地址反码 if((t1==(u8)~t2)&&t1==REMOTE_ID)//检验遥控识别码(ID)及地址 { t1=RmtRec>>8; t2=RmtRec; if (t1 == (u8)~t2) { sta = _HtoL_(t1);//键值正确 } } if((sta==0)||((RmtSta&0X80)==0))//按键数据错误/遥控 ...
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

34

主题

322

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1838
金钱
1838
注册时间
2014-12-4
在线时间
717 小时
发表于 2016-5-11 21:29:29 | 显示全部楼层
//首位交换
static unsigned char _HtoL_(unsigned char temp)
{
        unsigned char nTemp = temp,i=0;
        temp =0;
        for(i=0;i<8;i++)
        {
                if(nTemp &(0x01<<i)) temp |=(0x80>>i);
        }
        return temp;
}
//处理红外键盘
//返回值:
//         0,没有任何按键按下
//其他,按下的按键键值.
u8 Remote_Scan(void)
{        
        u8 sta=0;      
    u8 t1,t2;  
        if(RmtSta&(1<<6))//得到一个按键的所有信息了
        {
            t1=RmtRec>>24;                        //得到地址码
            t2=(RmtRec>>16)&0xff;        //得到地址反码
            if((t1==(u8)~t2)&&t1==REMOTE_ID)//检验遥控识别码(ID)及地址
            {
                t1=RmtRec>>8;
                t2=RmtRec;        
                        if (t1 == (u8)~t2)
                        {
                                sta = _HtoL_(t1);//键值正确
                        }
                }   
                if((sta==0)||((RmtSta&0X80)==0))//按键数据错误/遥控已经没有按下了
                {
                         RmtSta&=~(1<<6);//清除接收到有效按键标识
                        RmtCnt=0;                //清除按键次数计数器
                }
        }  
    return sta;
}
把t1首位调换就对了
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2016-5-11 22:00:56 | 显示全部楼层
啥意思?
回复

使用道具 举报

2

主题

3

帖子

0

精华

新手上路

积分
36
金钱
36
注册时间
2015-12-21
在线时间
5 小时
 楼主| 发表于 2016-5-11 22:26:39 来自手机 | 显示全部楼层
正点原子 发表于 2016-5-11 22:00
啥意思?

就是用例程测得的遥控器某健的码值是A2,但是这款遥控器的资料显示45,完全不一样的
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2016-5-13 21:32:32 | 显示全部楼层
遥控器资料在哪里?
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

34

主题

322

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1838
金钱
1838
注册时间
2014-12-4
在线时间
717 小时
发表于 2016-8-23 20:00:04 | 显示全部楼层
正点原子 发表于 2016-5-13 21:32
遥控器资料在哪里?

键值

键值
这个键值是在网上搜的  我用原来51的代码测试 左上角键值是0x45   但是例程里面测得是162即0xA2。不知道楼主这个问题弄好了吗
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-6-30 23:09

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表