文章目录

  • 1.所用的资源
  • 2.Zigbee模块简介
  • 3. STM32板上用到的资源
  • 4.代码部分

1.所用的资源

1.两个Zigbee透传模块
2.两块32板(我手上的是VET6和RCT6的两块板子),其它的板子也可以,不过注意一下启动文件对应
3.颗粒物传感器

2.Zigbee模块简介

DL-22无线串口模块

1.工作模式分为点对点和广播模式
点对点模式,要设置一个发送端,一个接收端,根据它说明书进行设置就好,还需要设置相同的信道,信道就是与传输数据的通道,不同的信道不会相互干扰
2.广播模式,所有的Zigbee模块都在同一个信道,任何一个模块发出的数据都可以被其它模块接收
我这里采用的是点对点模式,根据说明书已设置好发送与接收

3. STM32板上用到的资源

1.发送端32板:用到三个USART串口,串口1用于检验单独节点传感器数据是否采集成功,与串口助手通信,在确保传感器数据采集ok的情况下也可以不用,串口2用于与采集传感器数据,串口3用来连接Zigbee模块。
2.接收端32板:用到两个USART串口,串口1用于与串口助手通信,串口2用于连接Zigbee模块。
3.我这里串口对应的板子引脚
串口1:PA9 PA10
串口2: PA2 PA3
串口3: PB10 PB11

4.代码部分

1.在之前记录的串口通信博客的基础上。
2.Zigbee模块其实就是透传作用,发送端通过串口2采集颗粒物传感器数据到单片机内,通过串口3传给Zigbee模块,两个Zigebee模块通信,接收端Zigbee模块通过串口2将接收的数据传到板内,再通过串口1与串口助手进行通信。所以关键的地方就在发送端的串口2接收传感器数据完成后,把数据通过串口3发送到Zigbee模块,所以需要在串口二的中断函数里面加入串口3发送数据的命令。

3.发送端串口2中断

//功能:串口2中断服务程序,接收到数据会进入这个函数
//参数:无
//返回:无u8 USART_RX_BUF[10];//定义接收数组,看传感器返回的有多少字节数据u8 USART_RX_STA=0;//数组标志位,如第0位、第一位static char  start=0;  //开始接收数据标志位void USART2_IRQHandler(void)
{u8 Res=0;//定义一个数来接收每次读取的数据if(USART_GetITStatus(USART2, USART_IT_RXNE) != RESET)  //接收中断,每一个字节都会中断一次{Res =USART_ReceiveData(USART2);  //读取接收到的字节数据//接收数据时不要随便加入占用时间的命令,如串口打印,会影响下面数据字节的接收if(Res == 0xFF) //如果接收的第一位数据是0XFF(这个是查看传感器的手册得知的,这里相当于进行校验){start=1;   //开始接收数据标志位,一旦第一个接收正确,就就继续向下接收}if(start== 1){USART_RX_BUF[USART_RX_STA] = Res ; //把接收到的数据存到数组里面       USART_RX_STA++;//数组标志位加1if(USART_RX_STA >= 10 && (USART_RX_BUF[1]==0X01))//这里还校验了接收的第二个数据{printf("PM2.5:%d\n",USART_RX_BUF[3]);//通过                         串口1打印接收数组里的数据 USART_SendData(USART3,USART_RX_BUF[3]); //将数据通过串口3发出                              uart3_send_buff(USART_RX_BUF,10);USART_RX_STA=0;//重新开始接收   USART_RX_BUF[0] = 0;start=0;}} }}       

4.接收端的代码就和之前串口采集传感器数据主动上传的差不多了,只是把采集传感器的数据换成了采集Zigbee获得的数据。
下面是发送端和接收端的完整代码:
百度网盘接:https://pan.baidu.com/s/1pVGY3GZsY5feTuPM7yQuqw
提取码: CCCC

STM32+Zigbee模块实现串口通信获取传感器数据相关推荐

  1. 无线龙物联网STM32+ZigBee实验箱智能家居多种传感器开发平台

    无线龙物联网STM32+ZigBee实验箱智能家居多种传感器开发平台 无线龙STM32-ZigBee实验箱是专门为高校市场打造的一款新型的教学科研平台,用到的STM32嵌入式开发板取代了CC2530的 ...

  2. 基于串口助手的STM32与计算机进行串口通信

    基于串口助手的STM32与计算机进行串口通信 序 言 一. 串口通信概述 二.项目说明 三.实战过程 1)实现stm32向上位机发送字符 2)实现stm32发和收 3)Keil中针对stm32系统进行 ...

  3. STM32常用协议之串口通信详解

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言 一.相关理论概念 1.1 通信基本概念 1.1.1 串行/并行 1.1.2 单工/半双工/全双工 1.1.3 同步/异 ...

  4. STM32平台的USART串口通信

    本文目的是编写stm32串口通信程序,实现stm32上电自动循环发送hello LYJ!!!,并可通过上位机控制stm32串口发送与否.通过亲自做一下USART串口通信实验,学习如何使用stm32平台 ...

  5. Matlab 与stm32单片机之间的串口通信

    Matlab 与stm32单片机之间的串口通信 在我们用stm32做信号处理时,我时常需要用到Matlab对我们采集的数据进行分析,拟合.按照传统的方法,我们一般都会先将数据通过串口助手打印出来,再导 ...

  6. 传感器连接mysql_获取传感器数据并传入数据库-HTTP/POST/ASP.NET

    获取传感器数据并传入数据库-HTTP/POST/ASP.NET 很久前,做过传感器数据采集相关的小项目,需求是通过单片机IO收集传感器数据,然后通过网络模块(GSM/WI-FI)作为客户端,将数据(J ...

  7. 树莓派:获取传感器数据

    树莓派:获取传感器数据 前言 物联网开发中分享一下在树莓派实验中遇到的问题和心得 正文 实验基于树莓派3B开发板,通过USB转串口连接倾斜度传感器. 首先连接好设备,将树莓派插上网线或配置wifi,使 ...

  8. C#解决串口通信中接收数据时延迟处理与缓存处理的方法

    转载连接: http://blog.csdn.net/yaoliang11/article/details/6885768 C#解决串口通信中接收数据时延迟处理与缓存处理的方法 时间:2011-1-2 ...

  9. android 获取加速度传感器值,Android开发获取传感器数据的方法示例【加速度传感器,磁场传感器,光线传感器,方向传感器】...

    本文实例讲述了Android开发获取传感器数据的方法.分享给大家供大家参考,具体如下: package mobile.android.sensor; import java.util.List; im ...

  10. android开发中磁场传感器,Android开发获取传感器数据的方法示例【加速度传感器,磁场传感器,光线传感器,方向传感器】...

    本文实例讲述了Android开发获取传感器数据的方法.分享给大家供大家参考,具体如下: package mobile.android.sensor; import java.util.List; im ...

最新文章

  1. R语言ggplot2可视化数据点注释、标签显示不全、发生边界截断问题解决实战
  2. Faster-RCNN训练自己数据集遇到的问题集锦
  3. ALI的Tensorflow炼成与GAN科普
  4. 【数学题】男女的比例
  5. 智能提示和那些值得崇拜的人
  6. 组态王 6.55 启停plc_永宏PLC在远程控制系统中的应用
  7. 前端学习(1652):前端系列实战课程之bom
  8. js用函数实现输出100以内与7有关的数_走近(javascript, 函数式)
  9. 【java】Java -jar 运行的程序如何 本地代码远程调试服务器程序
  10. A加载B,B发生的变化
  11. A股开盘:深证区块链50指数涨0.16%,顺利办跌停
  12. 模具师傅告诉我塑胶模具是由这10大系统构成,不会的赶紧学习
  13. 三角形的几何公式大全_2020高中数学必备公式大全
  14. gdal调用capi处理乱码问题(c#)
  15. Html div 打印自动分页,网页打印自动分页
  16. 作为Senior Recruiter想跟大家聊聊求职,希望对大家有所帮助~
  17. BroadcastReceiver使用之一(常驻BroadcastReceiver接收短信)
  18. 机器学习——成绩预测
  19. Htmlayout早期的一个摸索作品
  20. 经济危机对生活搜索有负面影响?

热门文章

  1. vant 带关闭按钮div_[已解决]vant-ui源码vant-button的几个疑问
  2. 服务器系统在虚拟机安装win7系统安装教程,vmware虚拟机如何安装win7系统_vmware虚拟机安装win7纯净版图文教程...
  3. ps盖印图层在哪里_PS盖印图层快捷键
  4. 在线支付接口详解、支付接口对接
  5. html match函数,match函数的使用方法 match函数怎么使用
  6. Memory stream is not expandable
  7. Java实现微信公众号授权登录
  8. 朋友圈虚拟点赞+评论在线生成[可选头像+赞数+时间+随机电量信号]
  9. 网赚项目:揭秘闲鱼项目,信息差赚钱新手也能日入200+
  10. 微信服务器小程序后台,微信小程序调用后台service教程详解