实验板子:
1. zigbee底板3块(1终端、1路由、1协调器,均基于CC2530)
2. stm32核心板(采集温度)
说明:下面的程序都是在TI官方例程SampleApp工程下面进行的更改。Z-stack 2007
一、Zigbee终端程序 和 STM32通信(SPI)
其实,这里用串口通信就可以了。奈何STM32的串口被占用了,只能用SPI通信。
第一步: STM32中配置相应的SPI参数。这里省略了。
STM32是SPI Master, 每隔50ms给Zigbee终端发一次数据。

第二步:Zigbee终端配置相应的参数。 下面,我把一些关键的代码贴出来。
Z-stack2007中,没有hal_spi.c和hal_spi.h的文件。推荐使用DMA。
这里,我自己写了2个文件,由于代码量少,采用了中断处理。
1. 初始化函数


。。。。
}
2. 数据处理函数


3.数据发送函数(周期发送1s一次)

下面,将hal_spi.c和hal_spi.h的源码粘贴出来
/**************************************/
/**************************************/
#include "hal_types.h"
#include "OSAL.h"
#include "OnBoard.h"
#include "hal_assert.h"
#include "hal_spi.h"
#include "SampleApp.h"
#define uint unsigned int
#define uint8_t unsigned char
#define uint16_t unsigned short int
//定义片选引脚SSN
#define SSN1 P1_4
#define LOW 0
#define HIGH 1
#define LEN 12 //扩大到接收2组数据(避免出现错位现象)
#define TRUE 1
#defi

该博客介绍了如何使用Zigbee(基于CC2530)与STM32通过SPI进行通信,实现温度采集和组网。在STM32作为SPI主设备的情况下,每50ms向Zigbee终端发送一次数据。Zigbee终端配置了中断处理的SPI通信,并提供了初始化和数据处理函数。路由器则需要禁用SPI中断以保证转发功能。协调器通过串口与上位机通信,接收并处理来自路由或终端的数据。
最低0.47元/天 解锁文章
318

被折叠的 条评论
为什么被折叠?



