OpenEdv-开源电子网

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

红外线遥控试验为确保可靠性地址和命令2次传输怎么改成一次传输的

[复制链接]

10

主题

48

帖子

0

精华

初级会员

Rank: 2

积分
107
金钱
107
注册时间
2016-1-22
在线时间
19 小时
发表于 2016-5-13 21:42:42 | 显示全部楼层 |阅读模式
1金钱
我现在需要红外线接收地址和命令一次传输,怎么样修改还请大神们给出你们的经验和宝贵的意见。
QQ图片20160513213106.png

最佳答案

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

无法修改。这是协议规定的,除非你自己重新做协议,发送和接收都按你自己的协议来设计
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165377
金钱
165377
注册时间
2010-12-1
在线时间
2111 小时
发表于 2016-5-13 21:42:43 | 显示全部楼层
无法修改。这是协议规定的,除非你自己重新做协议,发送和接收都按你自己的协议来设计
回复

使用道具 举报

8

主题

51

帖子

0

精华

初级会员

Rank: 2

积分
134
金钱
134
注册时间
2016-3-11
在线时间
47 小时
发表于 2016-5-14 08:18:19 来自手机 | 显示全部楼层
我也遇到这个问题,按一下会取两次键值
回复

使用道具 举报

10

主题

48

帖子

0

精华

初级会员

Rank: 2

积分
107
金钱
107
注册时间
2016-1-22
在线时间
19 小时
 楼主| 发表于 2016-5-14 14:49:53 | 显示全部楼层
031441229 发表于 2016-5-14 08:18
我也遇到这个问题,按一下会取两次键值

知道怎么修改改成每次接收一次键值吗
回复

使用道具 举报

8

主题

51

帖子

0

精华

初级会员

Rank: 2

积分
134
金钱
134
注册时间
2016-3-11
在线时间
47 小时
发表于 2016-5-14 15:50:19 | 显示全部楼层
我解决了这个问题,修改代码如下:
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=t1;//键值正确         
                }   
                if((sta==0)||((RmtSta&0X80)==0))//按键数据错误/遥控已经没有按下了
                {
                         RmtSta&=~(1<<6);//清除接收到有效按键标识
                        RmtCnt=0;                //清除按键次数计数器
                }
        }
if(RmtCnt==1)       
    return sta;
else
        return 0;
}
快夸本宝宝
回复

使用道具 举报

10

主题

48

帖子

0

精华

初级会员

Rank: 2

积分
107
金钱
107
注册时间
2016-1-22
在线时间
19 小时
 楼主| 发表于 2016-5-31 20:02:19 | 显示全部楼层
031441229 发表于 2016-5-14 15:50
我解决了这个问题,修改代码如下:
u8 Remote_Scan(void)
{        

我来试试哈
回复

使用道具 举报

10

主题

48

帖子

0

精华

初级会员

Rank: 2

积分
107
金钱
107
注册时间
2016-1-22
在线时间
19 小时
 楼主| 发表于 2016-5-31 20:09:54 | 显示全部楼层
031441229 发表于 2016-5-14 15:50
我解决了这个问题,修改代码如下:
u8 Remote_Scan(void)
{        

这样改只是在按键的键值偶尔Rmtcnt==1的时候可以通讯,在Rmtcnt不等于1的时候就无法通讯这样的结果是通讯很差,光这样改不行啊,原子哥说改协议,协议怎么改?
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-2-27 11:15

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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