平台: STM32F103C8T6

芯片F115 发送:

数据的发射主要以,低电平的时间来判断,

下降沿发送数据,以低电平的时间来区别数据0和1。

程序中:

发送bbit位1  :   高电平保持 500us  跳变到低电平 保持 450us

发送bbit位0  :   高电平保持 500us  跳变到低电平 保持 1000us

发送的为一个 32位数据, 数据内容为  CUPID加密运行后的值。

void RF_SendData(u32 Key)
{uint8_t i,j;   uint32_t MSB_Temp = 0x00800000;uint32_t Send_data = 0;//Send_data2 = 0;static  uint32_t  Lock_Code;Lock_Code=(CpuID[0]>>1)+(CpuID[1]>>2)+(CpuID[2]>>3);
//    Send_data = (CpuID[0] << 4)|Key;for(i = 0; i < 3; i ++)  //循环发送3次高频数据{LED_ON();for(j = 0; j < 12; j ++){RFOUT_One();Delay_US(500);RFOUT_Zeor();Delay_US(500);}RFOUT_One();               //发送数据头Delay_US(500);RFOUT_Zeor();LED_OFF();      for(j = 0; j < 10; j ++)  Delay_US(500);   // 5mS//               Send_data = CpuID[0];Send_data = Lock_Code;
//              Send_data= 0x12345678;MSB_Temp = 0x80000000;for(j = 0; j < 32; j ++)      //发送32bit数据{if((Send_data & MSB_Temp) != 0)     //数据1{RFOUT_One();   Delay_US(500); RFOUT_Zeor();Delay_US(450); }else                              //数据0{RFOUT_One(); Delay_US(500); RFOUT_Zeor();Delay_US(1000);                   }MSB_Temp = MSB_Temp >> 1;                        }RFOUT_One();   Delay_US(1100); RFOUT_Zeor();Delay_MS(18);}
}

SYN480R 接收

1,中断接收 bit位,   每100us去检测 SYN480接收脚的状态,及保持电平时间。

检测低电平时间在 300us~700us 间时,判定为接收到数据 bit 1

检测低电平时间在 700us~1300us 间时,判定为接收到数据 bit0

//定时中断 100us
void TIM4_IRQHandler (void)
{if(TIM_GetITStatus( TIM4, TIM_IT_Update) != RESET ) { TIM_ClearITPendingBit(TIM4 , TIM_FLAG_Update); if(RFFull)  return;      //接收完数据没有处理if(!RFin)  {LL_w ++; RFBit = 0;}  //433接收脚IN, PB1=0 记录低电平长度else  // PB1=1       //433接收脚IN, PB1=1{if(!RFBit)   //RFBit在上句if置0成立 433M接收脚IN发生跳变 PB1=1{if(First_flag == 0)         //没有同步过初值为0{if((LL_w > 40)&&(LL_w < 60))  // 4000us < LL_w < 6000us {First_flag = 1;BitCount = 0;                                      }                                          }else    //  ÉÏFirst_flag = 1;{if((LL_w > 3)&&(LL_w <= 7))      // PB1=0 低电平长度    //300us   700us                                      {Buff_B[BitCount/8] = Buff_B[BitCount/8] << 1;      //433M 数据Buff_B[BitCount/8] = Buff_B[BitCount/8] | 0x01;  BitCount ++;
//                      if(BitCount==24) if(BitCount==32)                                 {BitCount = 0;First_flag = 0;RFFull = 1;}                                          }   else if((LL_w > 7)&&(LL_w < 13))  {Buff_B[BitCount/8] = Buff_B[BitCount/8] << 1;    BitCount ++;
//                      if(BitCount==24)                                              if(BitCount==32)                                                                         {BitCount = 0;First_flag = 0;                             RFFull = 1; }                                       }else           //错误{First_flag = 0;BitCount = 0;RFFull = 0;                                         }                                           }LL_w  = 0;}   RFBit = 1;     //记录IO状态}               }
}

2,接收到的433MHz数据处理

uint32_t RF_Remote(void)  //433M数据处理
{uint16_t i;uint16_t crc;uint8_t RF_UartSend[10];uint8_t Buffer[5];uint32_t  Lock_Code;for(i = 0; i < 4; i ++)    //将接收缓存区的数据复制过来Buffer[i] = Buff_B[i];RFFull = 0; //清楚接收完成标志
}

资源工程:https://download.csdn.net/download/jiangchao3392/11166623

433MHz通信 发F115 收SYN480R相关推荐

  1. K210学习笔记(三) K210与STM32进行串口通信,K210发STM收

    文章目录 前言 一.以/r/n为结尾 二.K210端代码 三.STM32端 3.1 main函数 四.测试结果 4.1当收到1时 4.2当收到2时 4.3 测试视频 总结 前言 前面我们讲了STM32 ...

  2. C#做的串口通信助手可发可收简单(免费开源)

    C#做的串口通信助手可发可收简单(免费开源) 最近在做物联网相关的项目,要用到串口,所以今天做一个C#的串口上位机,供大家参考,程序如果有不对希望大家指正,谢谢! 首先看一下效果 现在开始制作我们的串 ...

  3. 【JAVA】TCP通信——发弹幕案例

    Java实现TCP通信--发弹幕案例 TCP通信可以实现双方相互接收发送消息,初学TCP通信,从简入难,先实现一方可以接收多方消息(一方作为服务端,多方作为客户端),即类似于观看视频的用户发送多条弹幕 ...

  4. 快递员依据管理中心发来收件信息

    快递员手持终端主要有以下几个功能: 通过物联宇手持终端机与管理中心将收件单和派发单及时发送到快递员的手持终端,能够快速跟进. 快递员依据管理中心发来收件信息,到客户处收取快件,并在现场将扫描采集到的运 ...

  5. 毫米波雷达 3发4收 阵列信号回波模拟(基于信号的延时来建模)以及DOA和MVDR方法测角 (二)

    雷达阵列回波模拟和DOA.MVDR仿真 下列matlab程序主要是仿真了3发4收等效为1发12收的连续扫频波制式下的阵列回波,并在阵列的基础上做DOA和MVDR角度分辨率实验. 这于上一篇<毫米 ...

  6. 安防雷达STS1-13,3发32收的相控阵雷达

    简介 STS1-13是一款高性价比的安防雷达产品,通过发射24GHz的电磁波,检测物体反射回来的带有多普勒效应的回波完成目标的探测和定位.该产品应用于检测视野内的运动目标(例如人.车.船),汇报他们的 ...

  7. 两发两收信道估计方法

    本文用于记录2发2收系统的信道估计方法,采用最基础的LS估计算法,主要是记录多发多收系统该如何处理多信道的估计汇总. 如图所示,是一个2发2收系统的基本模型 从频率域分析:其中发射端Tx1T_{x1} ...

  8. 四发四收迫零matlab,波束成型问题请教

    波束成型问题请教 01-08 各位大神真心求教,我是把OFDM上面的波束成型(一种是SVD分解后,仅取最大奇异值对应的特征信道进行发送)转移到单载波上面来,主要就是SVD分解,为什么我的BER性能不随 ...

  9. 树莓派_C++(Cmake)_GPIO_bcm2835_SPI通信自发自收

    文章介绍一种使用bcm2835实现SPI通信的方案 操作环境:树莓派4B.bcm2835-1.71 实现功能:完成SPI通信的自发自收功能 主要代码:SPI通信部分 #include <iost ...

最新文章

  1. java 字符串常用函数_Java学习(5)——字符串常用函数
  2. vs mysql搭建_VS+mysql+EF搭建
  3. 链表list(链式存储结构实现)_数据结构知否知否系列之 — 线性表的顺序与链式存储篇(8000 多字长文)...
  4. Flex命令行学习总结
  5. 批量将图片保存到模拟器
  6. oracle 学习之:建视图时报ora-01031
  7. python爬虫 点击下一页_python爬虫实现获取下一页代码
  8. JavaScript学习笔记 1
  9. matlab红色爱心,心形图的matlab实现
  10. OUTLOOK新邮件到达提醒设置以及outlook最小化到托盘设置
  11. 深入浅出Symfony2 - 结合MongoDB开发LBS应用
  12. 抛开当下的迷惘,IT技术人的发展之路该怎么走?
  13. Servlet JSP - 转发与重定向的区别
  14. Ubuntu下查看cuda版本的两种方法
  15. 轨道交通计算机联锁系统应用,计算机联锁系统论文(2)
  16. DNS协议:网络世界的地址簿
  17. Windows7 SP1旗舰版精简版最终版本
  18. STM32——理解时钟系统
  19. threejs基于vue加载模型,让模型开启自动旋转 模型位置改变
  20. Laravel SQL查询中first, pluck与lists方法的使用

热门文章

  1. 金融财务英译汉常用词怎样翻译
  2. [ Linux ] 可重入函数,volatile 关键字,SIGCHLD信号
  3. 酒店管理系统(源码+数据库)
  4. CAD多段线无法合并的问题
  5. msm8953-配置I2C 速率
  6. python怎么读取excel数据-python怎么从excel中读取数据?
  7. Nothing Phone官宣,手机厂新秀靠啥出圈?
  8. 【Numba】加速计算
  9. 2020.10.24--AI--波纹便签、字体设计、徽章制作
  10. 报错笔记-[error] 1615#0: *14 open() “/usr/local/nginx/html/course/zk.jpg“ failed (2: No such file or dir