X
首页
技术
模拟电子
单片机
半导体
电源管理
嵌入式
传感器
最能打国产芯
应用
汽车电子
工业控制
家用电子
手机便携
安防电子
医疗电子
网络通信
测试测量
物联网
最能打国产芯
大学堂
首页
直播
专题
TI 培训
论坛
汽车电子
国产芯片
电机驱动控制
电源技术
单片机
模拟电子
PCB设计
电子竞赛
DIY/开源
嵌入式系统
医疗电子
颁奖专区
【厂商专区】
【电子技术】
【创意与实践】
【行业应用】
【休息一下】
最能打国产芯
活动中心
直播
发现活动
颁奖区
电子头条
参考设计
下载中心
分类资源
文集
排行榜
电路图
Datasheet
最能打国产芯
Microchip MCU
[求助] 【ATMEL SAM R21 】LWMESH-WSNDEMO应用实验
ljj3166
2015-1-24 16:31
楼主
今后一个月只能够使用老掉牙的古董电脑,编译一次得5分钟
昨晚折腾好久,终于搞定一个LWMESH的简单应用
大概的结构是 LCD——SAMR21......SAMR21——串口助手
主要作用是采集LCD上的描点,并通过ZIGBEE传输到另一块R21,再通过串口转发给PC串口助手
---------------------------------------------------简单分析-----------------------------------------------
WSNDEMO的应用手册真是赞,虽然没有深入讲解
但是LWMESH的基本用法介绍得非常详细
这里简单小结一下:
0、基本代码结构
下面的代码,就是使用LWMESH的基本结构
static void APP_TaskHandler(void)
{
// Put your application code here
}
int main(void)
{
SYS_Init();
while (1)
{
SYS_TaskHandler();
APP_TaskHandler();
}
}
各种初始化,然后是系统任务和应用程序的循环调用
WSNDEMO中初始化和系统任务都已经搞定了,如果需要添加自己的代码
修改APP_TaskHandler就好了
1、网络的初始化
这里要配置一大堆的基础网络数据
瞧瞧
NWK_SetAddr(),配置network address
NWK_SetPanId(),配置PAN ID
PHY_SetChannel(),配置frequency channel
PHY_SetBand(),配置频率frequency band
PHY_SetModulation(),配置调制模式
PHY_SetTxPower(),配置发射能量(发射功率?)
PHY_SetRxState(),配置接收端的状态
NWK_SetSecurityKey(),配置密匙
如果需要接收数据的话,还需要制定一个回调函数并使用
static bool appDataInd(NWK_DataInd_t *ind)
{
// process the frame
return true;
}
NWK_OpenEndpoint(1, appDataInd);
初始化就是这么一大堆参数
2、发送数据、接收数据
WSNDEMO定制了一些列发送和接收的结构体,成员变量类型各异
所以要发送数据的话,必须要格式相同
代码中自带的AVR2130_LWMesh_Developer_Guide_v1.2.1.pdf文件中有比较详细的描述
使用前建议看看
3、系统服务
主要是系统的计时器,其实是个软件定时器,
如果没有特殊要求的话,个人觉得完全可以不用改动了
其他的底层类型定义、宏定义、基础配置参数之类的,这里就不深究了
---------------------------------------------改造DEMO------------------------------------------------
添加各种驱动LCD和触摸屏的头文件和c文件
在APP_TaskHandler中撸上自己的代码
static void APP_TaskHandler(void)
{
GetDisplayPoint(&display, Read_Ads7846(), &matrix );
if((temp.x != display.x)||(temp.y != display.y)){
printf("%d,%d\r\n",display.x,display.y);temp.x = display.x;temp.y = display.y;
appMsg.SetX = display.x;
appMsg.SetY = display.y;
}
else {temp.x = display.x;temp.y = display.y;}
// Touch_Debug();
if((display.y)>290)
{
for(is=0;is<10;is++)
{
if((21*is<display.x) && display.x<21*(is+1) )
{
touch_OpenColor = Table_Color[is];
}
}
if((21*10<display.x) && (display.x)<240 )
{
Color_Box (0,16,239,274,Blue,Blue2);
}
}
if(16<(display.y)&& (display.y)<290 ){
TP_DrawPoint(display.x,display.y,touch_OpenColor);
}
switch (appState) {
……
WSNDEMO中sio2host已经定义EDBG为串口,并重定向,可使用printf
不用白不用,哈哈
发送数据的结构体中加上X、Y坐标SetX和SetY
typedef struct AppMessage_t {
uint8_t commandId;
uint8_t nodeType;
uint64_t extAddr;
uint16_t shortAddr;
uint32_t softVersion;
uint32_t channelMask;
uint16_t panId;
uint8_t workingChannel;
uint16_t parentShortAddr;
uint8_t lqi;
int8_t rssi;
uint8_t led_flag;
uint16_t SetX;
uint16_t SetY;
struct {
uint8_t type;
uint8_t size;
int32_t battery;
int32_t temperature;
int32_t light;
} sensors;
struct {
uint8_t type;
uint8_t size;
char text[APP_CAPTION_SIZE];
} caption;
} AppMessage_t;
发送端准备就绪
接收端按部就班修改即可,这里不多讨论了
编译,run
--------------------------------运行结果及残余问题-----------------------------------------
上个视频吧(审核中):
ZigBee目前还不能实时传输,看两块板的串口输出
左边是接收板,右边是采集板
看得出来,只有几个数据被发送到接收端了
估计要重新了解一下系统服务的相关参数
或者直接采集多个数据,一次性发送
后边再研究吧
先到这
本帖最后由 ljj3166 于 2015-1-24 17:08 编辑
So TM what......?
点赞
回复评论 (2)
沙发
chenzhufly
你们好给力 我已经有段时间没弄了
生活就是油盐酱醋再加一点糖,快活就是一天到晚乐呵呵的忙 =================================== 做一个简单的人,踏实而务实,不沉溺幻想,不庸人自扰
点赞
2015-1-24 16:44
板凳
ljj3166
引用:
chenzhufly 发表于 2015-1-24 16:44
你们好给力 我已经有段时间没弄了
大神出马,那不就是几天搞定
So TM what......?
点赞
2015-1-24 16:55
最新活动
报名直播赢【双肩包、京东卡、水杯】| 高可靠性IGBT的新选择——安世半导体650V IGBT
30套RV1106 Linux开发板(带摄像头),邀您动手挑战边缘AI~
安世半导体理想二极管与负载开关,保障物联网应用的稳健高效运行
免费申请 | 上百份MPS MIE模块,免费试用还有礼!
PI 电源小课堂|无 DC-DC 变换实现多路高精度输出反激电源
2024 瑞萨电子MCU/MPU工业技术研讨会——深圳、上海站, 火热报名中
随便看看
界面无法在pocket pc 2003上显示
vhdl 双向总线缓冲器仿真出现蓝线
buck电路仿真用什么软件比较好
【FPGA开源教程连载】第十五章 嵌入式块RAM使用之FIFO
电源干扰怎么办?
单片机的多机无线短信通信系统设计
求篇基于单片机的水箱水位控制系统毕业论文
2407 HEX文件转换??
STM32F429+NOR-FLASH
SDSoC开发环境简介(转)
从本坛别处转来proteus教程keil错误警告mcu外围芯片
智能电网设备应用中必须保证的高要求高标准
【Nucleo心得】+收到板子装驱动
用microbit做一个圣诞彩灯
我为北京国企整车厂猎贤
GYTF018M1BOM显示屏跟mea16程序相关问题
一个学了一年VC的人去做车载音响软件开发需要学习什么硬件知识,请大家帮忙!
求助!怎样理解一种开发板能不能支持某种操作系统?
为什么EVC创建建Pocket PC 2003 程序时,默认就变standardsdk了?
赠送PIC开发板--已赠
电子工程世界版权所有
京B2-20211791
京ICP备10001474号-1
京公网安备 11010802033920号
回复
写回复
收藏
回复