我是靠谱客的博主 风趣大神,最近开发中收集的这篇文章主要介绍zigbee快速上手一、前期准备二、修改zigbee配置三、使用zigbee沟通上位机与单片机总结,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

提示:此文章配合淘宝商家DNLN模块例程使用更佳

文章目录

  • 一、前期准备
  • 二、修改zigbee配置
  • 三、使用zigbee沟通上位机与单片机
    • 1.发送信息给上位机
      • 1.1 main函数
      • 1.2 单片机和上位机通信
    • 2.上位机控制单片机
  • 总结


提示:以下是本篇文章正文内容,下面案例可供参考

一、前期准备

首先拿到两个zigbee(以下叫做 DNLN模块)

要找一个usb转ttl的串口1,与zigbee连线,(3.3 连 Vcc,gnd连gnd,Rxd连tx,txd连rx),串口1直接连接电脑,安装驱动

对于单片机,要将 B10连接RX ,B11连接Tx(zigbee模块修改后才连上)

二、修改zigbee配置

打开UartAssist(串口助手),用命令改写以下信息(地址,信通,网络id和波特率,波特率一般不用改,我们使用115200可以配套商家的例程使用)

这些信息怎么改呢,要把信通和网络改为相同,这样zigbe模块可以通讯

地址可以用来区分不同的zigbee模块,给他们编号。(以下例子,连接电脑的zigbee叫做11 ,连接单片机的叫做12 )

修改方式
在这里插入图片描述

当修改完zigbee之后,就可以打开商家的例程,但是这个这个例程太不给力,直接运行不不了的

最好自己重新创建一个文件,然后把库拖进去,为了方便,可以使用我重新创建的工程

三、使用zigbee沟通上位机与单片机

1.发送信息给上位机

1.1 main函数

main中有哪些函数 ,还有他们的功能

void recievePkg(sPkg*pkg);(抓到一个包后的处理)
void loopReceive(void);(不断抓包)
void loopAll(void);(单片机一个周期中胡执行的动作)
void initAll(void);(指代初始化所有的负载)

1.2 单片机和上位机通信

在最开始 , 单片机的zigbee模块(后称为模块 1)会创建一个新的数据包(储存着要给电脑发送的数据)

newPkg(1) THPkg = {5,0x90,0x32,0x11,0x00,0x32};

这是一个结构体,意思是,单片机端口90 向电脑11号zigbee模块32号端口发送数据
0032。端口号,模块地址以及数据都可以修改

newPkg定义满足 zigbee 包的格式

#define newPkg(num)	
struct 						
{							
	u8 length;			 包长度
	u8 src_port;			源端口号
	u8 dis_port;			目的端口号
	u8 remote_addrH;目的地址
	u8 remote_addrL;
	u8 data[num];		
}

然后我们使用loopall完成一次对电脑的信息发送


THPkg.dis_port = 0xa0; (向电脑端口a0发送数据,原来是32)
THPkg.data[0]=30;(数据是 30 )
sendPkg((sPkg*)(&THPkg));(发送数据命令)

如果电脑有接入zigbee模块,此时串口助手 UartAssist 会收到 FE a0 90 12 00 30 FF

此时就完成了一次单片机发送数据到电脑

2.上位机控制单片机

如果我们要让电脑控制单片机

找到 recievePkg(sPkg* pkg)函数中的switch部分(如下)

意思是,如果单片机的 b0 端口收到消息,将灯关闭,其中控制可以任意更改

case 0xb0:
			if(pkg->data[0] == 0x01)//若端口b0收到消息
			{
				
				close();//把灯关闭,可以修改
				
			}

总结

提示:这里对文章进行总结:
此处只是简单介绍如何使用zigbee并且看到现象
至于原理,我还搞明白

最后

以上就是风趣大神为你收集整理的zigbee快速上手一、前期准备二、修改zigbee配置三、使用zigbee沟通上位机与单片机总结的全部内容,希望文章能够帮你解决zigbee快速上手一、前期准备二、修改zigbee配置三、使用zigbee沟通上位机与单片机总结所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(47)

评论列表共有 0 条评论

立即
投稿
返回
顶部