Zigbee 无线串口通信模块( DL-22 )
文章目录
- 一、DL-22简介
- 二、模块配置
- 三、串口通信(透明传输)
一、DL-22简介
DL-22无线串口模块为串口转2.4G无线模块,可以通过无线将两个或者多个串口连接起来。串口发入模块的数据会被模块使用无线发出,收到无线数据的模块会将这个数据使用串口发出,在两个设备上使用模块就像将这两个设备用串口连接起来一样。
1. 主要特点
- 点对点传输带有确认,数据丢失率为0.00%。
- 支持串口不间断发送。
- 支持串口双向同时收发。
- 最高可达3300字节每秒的传输速率。
- 适应2.8V~3.5V。
- 使用单个按键进行设置,可以修改模块的信道、波特率。
- 按键可配置为多对多模式。
2. 模块实图
3. 模式说明
- DL-22模块可以配置为点对点模式和广播模式使用。
- 点对点模式分为A端和B端,A端串口收到的数据会被B端串口发出,反之亦然。此模式下同一频道只准许两个节点互相通信,通信可保证数据丢失率为0.00%。
- 广播模式下,一个节点的串口收到的数据会从所有距离可及,且频道相同的节点收到,并从串口发出。
- 在对模块进行配置时,可以将同一个信道的两个模块配置为点对点A端和点对点B端,以获得О数据丢失的功能;或者将多个模块全部配置为广播模式,以获得多对多通信的功能。除此之外的通信模式都是不可用的。
4. 产品参数
5. 原理图
二、模块配置
DL-22模块配置分5个步骤︰
- 进入设置模式
- 设置波特率
- 设置频道
- 设置主/从机
- 确认设置
第一步-进入设置模式
在模块断电的情况下按下按键不松手,然后给模块供电,模块的四个LED会不断循环闪烁,此时释放按键,LED循环闪烁会停止,即进入设置模式。
第二步-设置波特率
完成第一步后,模块会使用LED指示当前的波特率,短按按键可以切换波特率。点亮的LED和波特率的对应关系如下表:
第三步–设置频道
在设置波特率完成后,长按按键直到LED循环闪烁,释放按键后可进入频道设置阶段。
在此阶段,点亮的LED会快速闪烁,代表选中一个频道。短按按键可以切换到下一个频道。本模块提供16个频道,分别对应四个LED的16种状态(包括全部LED熄灭)。如果您只有两个模块,可以先将第-个模块的频道设置为任意状态,然后记下闪烁LED的位置,在设置第二个模块时将LED设置成和上一个相同即可。只要频道相同,波特率不同的两个模块也可以互相通信。
第四步–设置模式
在设置频道完成后,长按按键直到LED循环闪烁,可进入模式设置阶段。
在此阶段,点亮的LED会缓慢的闪烁。短按按键,LED会在三种模式之间切换。
第五步–确认设置
在模式设置完成后,长按按键直到LED循环闪烁,释放按键后所有LED常亮2秒钟,之后会进入正常工作模式,刚刚配置的内容即可保存并生效。如果不希望刚刚的设置生效,则可给模块断电。在确认设置前的任何阶段给模块断电,设置的信息都不会被保存。
三、串口通信(透明传输)
1. 串口初始化
void uart_init2(u32 bound)
{//GPIO端口设置GPIO_InitTypeDef GPIO_InitStructure;USART_InitTypeDef USART_InitStructure;NVIC_InitTypeDef NVIC_InitStructure;RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE); //使能USART2,GPIOA时钟RCC_APB1PeriphClockCmd(RCC_APB1Periph_USART2, ENABLE); //使能USART2,GPIOA时钟//USART2_TX GPIOA.2GPIO_InitStructure.GPIO_Pin = GPIO_Pin_2; //PA.2GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP; //复用推挽输出GPIO_Init(GPIOA, &GPIO_InitStructure);//初始化GPIOA.2//USART2_RX GPIOA.3初始化GPIO_InitStructure.GPIO_Pin = GPIO_Pin_3;//PA10GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;//浮空输入GPIO_Init(GPIOA, &GPIO_InitStructure);//初始化GPIOA.3 //USART2 NVIC 配置NVIC_InitStructure.NVIC_IRQChannel = USART2_IRQn;NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority=3 ;//抢占优先级3NVIC_InitStructure.NVIC_IRQChannelSubPriority = 3; //子优先级3NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE; //IRQ通道使能NVIC_Init(&NVIC_InitStructure); //根据指定的参数初始化VIC寄存器//USART 初始化设置USART_InitStructure.USART_BaudRate = bound;//串口波特率USART_InitStructure.USART_WordLength = USART_WordLength_8b;//字长为8位数据格式USART_InitStructure.USART_StopBits = USART_StopBits_1;//一个停止位USART_InitStructure.USART_Parity = USART_Parity_No;//无奇偶校验位USART_InitStructure.USART_HardwareFlowControl = USART_HardwareFlowControl_None;//无硬件数据流控制USART_InitStructure.USART_Mode = USART_Mode_Rx | USART_Mode_Tx; //收发模式USART_Init(USART2, &USART_InitStructure); //初始化串口1USART_ITConfig(USART2, USART_IT_RXNE, ENABLE);//开启串口接受中断USART_Cmd(USART2, ENABLE); //使能串口1 }
2. 接受中断
将接收到的数据存入缓冲区
void USART2_IRQHandler(void) //串口1中断服务程序
{u8 Res;if(USART_GetITStatus(USART2, USART_IT_RXNE) != RESET) //接收中断(接收到的数据必须是0x0d 0x0a结尾){Res =USART_ReceiveData(USART2); //读取接收到的数据if((USART2_RX_STA&0x8000)==0)//接收未完成{if(USART2_RX_STA&0x4000)//接收到了0x0d{if(Res!=0x0a)USART2_RX_STA=0;//接收错误,重新开始else USART2_RX_STA|=0x8000; //接收完成了 }else //还没收到0X0D{ if(Res==0x0d)USART2_RX_STA|=0x4000;else{USART2_RX_BUF[USART2_RX_STA&0X3FFF]=Res ;USART2_RX_STA++;if(USART2_RX_STA>(USART2_REC_LEN-1))USART2_RX_STA=0;//接收数据错误,重新开始接收 } }} } }
3. 逻辑判断
如果接收到指定数据,led闪烁
if(USART2_RX_STA&0x8000){ if(USART2_RX_BUF[0]=='1'){for(j=0;j<=10;j++){LED1=~LED1;delay_ms(100);}} else if(USART2_RX_BUF[0]=='2'){for(j=0;j<=10;j++){LED0=~LED0;delay_ms(100);}} memset(USART2_RX_BUF,0,sizeof(USART2_RX_BUF)); USART2_RX_STA=0;}
Zigbee 无线串口通信模块( DL-22 )相关推荐
- 树莓派与2.4G Zigbee无线串口收发模块的那些事儿
文章目录 一.简介 二.硬件准备 1.元器件清单 2.接线说明 三.软件准备 一.简介 为了实现无线收发的功能,最近新入了一款傻瓜式无线收发模块-深联智达的DL-20 2.4G zigbee无线串 ...
- arduino封装了一个无线串口模块LC12S的操作库
前一段时间接触到一个比较好用的2.4G无线串口通信模块LC12S, 在淘宝上仅四五块钱,收发一体,比较好用. 我照着技术文档封装了这个设置操作的库 demo代码: #include <Ardui ...
- RBee ZigBee无线透明传输通信模块 兼容arduino平台 类似XBee
深圳市信驰达STR-RBee系列ZigBee无线透明传输模块,基于德州仪器先进的低功耗无线连接芯片进行设计,体积小,功耗低.RBee模块内部运行ZigBee 07/Pro协议栈,并继承该协议的优点,拥 ...
- 【lora无线数传通信模块】亿佰特E22串口模块用于物联网地震预警传感通信方案
物联网地震预警项目介绍: 地震,俗称地动.它像平常的刮风下雨一样,是一种常见的自然现象,是地壳运动的一种表现,即地球内部缓慢积累的能量突然释放而引起的地球表层的振动.据统计,5级以上地震就能够造成破坏 ...
- ZigBee无线温度传感网络设计
0 引言 随着信息化时代的到来,ZigBee无线模块广泛应用在军事.智能家居.医疗监护环境监测和远程工业控制领域.事实证明,无论是工厂.办公楼还是家居都需要无线传感网络的支持.为了满足社会对无线传感器 ...
- ZigBee无线抄表系统集中器设计
0 引言 随着城市居民住宅建设日益发展,独立电能表数量迅速增多,抄表计量也日趋复杂.近年来用电形势越来越紧张,分时电价已势在必行.由于长距离室内外的布线存在着短路.断线隐患,错综复杂的线路使系统调试和 ...
- zigbee无线传感网实训---zigbee显示温湿度以及连接LCD开发板显示温湿度(The Eighth day)
承接第七天:zigbee无线传感网实训---实现LCD开发板播放音乐并切换歌曲(The Seventh day) 一.实验准备器材如图: 二:步骤 ============= ...
- 【毕业设计】60-基于ZigBee无线智能消防\烟雾报警逃生系统设计(原理图工程、源代码、低重复率参考文档、实物图)
[毕业设计]60-基于ZigBee无线智能消防\烟雾报警逃生系统设计(原理图工程.源代码.低重复率参考文档.实物图) 文章目录 [毕业设计]60-基于ZigBee无线智能消防\烟雾报警逃生系统设计(原 ...
- zigbee无线传感网实训---linux命令的简单了解(one day)
嵌入式软件介绍: 1.VMware 虚拟机 安装虚拟机将芯片虚拟化一块出来运行linux系统 2.Ubuntu18.04 ...
最新文章
- 输出1/n(是循环小数的,只输出第一个循环节)
- java 并发编程实例_Java并发编程案例解读
- javase学习第10天(形式参数和返回值类型、包、内部类、匿名内部类)
- 了解这些后设计输入框原来这么简单
- 下列哪个适合做链栈_外贸企业如何做Google推广?自然排名和付费广告哪个更适合你?...
- WiFi曝出安全漏洞几近“裸奔”:运营商能借机收割一波红利吗?
- python openpyxl创建excel文件-python之openpyxl生成excel文件
- 分布式红锁的leaseTime的设计原理
- [转载] JAVA中分为基本数据类型及引用数据类型
- 电子元件-555时基芯片
- 【ubuntu20】虚拟机下ubuntu联网
- c语言编程植物信息查询系统,C:\WINDOWS\Desktop\导航库\植物\xzjs\hzc.htm
- MySQL-SQL注入,导入,导出
- Spring MVC框架在进行表单提交,自动封装成对象提交,在以对象的形式入参
- ps批量修改名片文字_怎么修改图片上的文字 修改图片文字比如名片图片上面的地址需要修改下...
- 【渝粤题库】国家开放大学2021春2099民事诉讼法学题目
- 4K高清壁纸应用Pap.er Mac中文版
- R语言如何绘制变异系数曲线(24)
- python爬取图片(正则、bs4、Xpath三种方法)
- 民俗解读:初八“放生”
热门文章
- 在微信小程序中识别html标签的方法(wxParse)
- 松下FP XH六轴标准程序,程序控制六个伺服,轴的点动控制
- [深入理解Android卷一全文-第七章]深入理解Audio系统
- MongoDB 默认端口
- java实现一个基于文本界面的项目——客户信息管理系统
- 扫描文件至服务器,扫描仪扫描至云服务器
- 互联网电商大数据环境 ——大数飓数据分析实践培训精华笔记(五)——数据仓库维度建模实例
- [翻译]在 Jelly Bean 中使用应用加密
- 基于单片机的简易电子琴设计(电路+程序)
- 钱诚1.16黄金原油趋势分析,周一开盘操作策略实时解析