标题: 无线433Mhz的模块用单片机如何软件解码?有波形图 [打印本页]

作者: wklhwkl    时间: 2018-5-24 17:41
标题: 无线433Mhz的模块用单片机如何软件解码?有波形图
     SYN480R无线接收芯片,模块是433MHZ的。

这是波形图,12ms引导码(低电平),"0":0.4ms+1.2ms,"1":1.2ms+0.4ms,两字节地址码,一字节按键码,最后是0.5ms结束码。


我想用单片机解码,不用解码芯片。

大佬们,这要怎么解码? 有程序最好,伪代码也行。

作者: 优雅的刺猬    时间: 2018-5-24 21:21
用一个端口检测,把开始和结束码是什么规律设定好,检测到开始码之后就每隔一定时间就检测端口,并记录电平高低,433MHZ周期的倒数,记录到结束码结束,压栈。
作者: 51hei糖糖    时间: 2018-5-25 06:36
优雅的刺猬 发表于 2018-5-24 21:21
用一个端口检测,把开始和结束码是什么规律设定好,检测到开始码之后就每隔一定时间就检测端口,并记录电平 ...

是的,说的很对。而且c语言代码本站也有,搜索栏输入315这个数字即可找到。
作者: wklhwkl    时间: 2018-5-25 16:13
优雅的刺猬 发表于 2018-5-24 21:21
用一个端口检测,把开始和结束码是什么规律设定好,检测到开始码之后就每隔一定时间就检测端口,并记录电平 ...

现在的问题是,单片机无法检测到无线模块 高低电平的变化。
作者: henanda    时间: 2018-5-25 19:29
                        if(RX_BUF[0]==CMD[0]&&RX_BUF[1]==CMD[1]&&RX_BUF[2]==CMD[2]&&RX_BUF[3]==CMD[3])
                        {
                                //打开接收成功指示
                                //无线答应信号温度       
                                tmpchange();
                                T_=tmp();
                                TX_BUF[0]=0xAA;
                                //T温度
                                TX_BUF[1]=T_&0x00ff;
                                //RH湿度
                                TX_BUF[2]=(T_>>8)&0x00ff;
                                TX_BUF[3]=0xdd;
                                delay_ms(100);
                                RXLED_Y=1;                        //关闭接受射指示灯
                                TXLED_R=0;                        //打开发射指示灯
                                TX_Mode(TX_BUF);        // 把nRF24L01设置为发送模式并发送数据
                                Check_ACK(1);        // 等待发送完毕,清除TX FIFO
                                delay_ms(100);       
                                //发送成功指示
                                TXLED_R=1;                        //关闭发射指示灯
                                RX_Mode();                           // 设置为接收模式               
                        }




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1