概述
提示:此文章配合淘宝商家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沟通上位机与单片机总结所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复