3316|1

6129

帖子

4

TA的资源

版主

楼主
 

Atmel SAM R21创意大赛周计划】BitCloud地址,PANID CHANMEL等参数设置 硬件配置 [复制链接]

本帖最后由 damiaa 于 2015-3-31 09:26 编辑

BitCloud是ATMEL的ZIGBEE版本,目前支持智能家居智能能源,智能传感等profiles。
目前最新的BitCloud已经升级到3.2版本了。
找了好久,终于在本论坛找到一个视频,不敢吝啬,就引荐出来:
http://e7.eeworld.com.cn/html/video/2014/06/12/5.html
BitCloud开发包编译环境为IAR 目前我用IAR7.30.4

关于BitCloud  设备类型 PINID和CHANNEL,地址等参数的修改

设备类型:csdefaults.h 中定义下面三种之一:
//DEVICE_TYPE_COORDINATOR (0) - the coordinator\n
//DEVICE_TYPE_ROUTER (1) - a router\n
//DEVICE_TYPE_END_DEVICE (2) - an end device

编译缺省情况设置:
#ifndef CS_DEVICE_TYPE
#define CS_DEVICE_TYPE                        DEVICE_TYPE_ROUTER
#endif


运行时设置(要在没加入网络时设置):
DeviceType_t deviceType = DEVICE_TYPE_END_DEVICE;
bool rxOnWhenIdle = false;
CS_WriteParameter(CS_DEVICE_TYPE_ID,&deviceType);
CS_WriteParameter(CS_RX_ON_WHEN_IDLE_ID, &rxOnWhenIdle);
这个在WsnDemoApp.c中static void appInitialization(void)中有使用

设备地址
IEEE/extended 地址
configuration.h中 CS_UID配置  如果配置为  CS_UID 为  0 就会从扩展EEPROM中用BSP_ReadUid()函数读。
Short/network 地址
// Determines whether the static or automatic addressing mode will be used for the
如果configuration.h中#define CS_NWK_UNIQUE_ADDR  1     CS_NWK_ADDR作为短地址,
如果configuration.h中#define CS_NWK_UNIQUE_ADDR 0自动分配地址

CHANNEL:

决定由下面:
CS_CHANNEL_PAGE    2.4G不设置
CS_CHANNEL_MASK   17个通道设置

Network Id
CS_EXT_PANID is the 64-bit (extended) identifier
PANID 16位
编译时:csdefaults.h 中#define CS_NWK_PANID    0x1234
运行时修改:
bool predefPANID = true;
uint16_t nwkPANID = 0x1111;
CS_WriteParameter(CS_NWK_PREDEFINED_PANID_ID,&predefPANID);
CS_WriteParameter(CS_NWK_PANID_ID, &nwkPANID);




BitCloud硬件的配置及操作:



BSP目录中的文件都是关于板子本身的。Buttons.c  joystick.c lcd.c leds.c 定义了按键,摇杆,LCD,LED的硬件接口函数,
                                                                                                                           还有I2C,SPI,UART等CPU设备接口也定义了。

Button
buttons.h
buttons.c
中定义和申明了
result_t BSP_OpenButtons(void(*pressed)(uint8_t bn),void(*released)(uint8_t bn));//开始初始化时使用
result_t BSP_CloseButtons(void);//不使用后释放按键
uint8_tBSP_ReadButtonsState(void);//读键状态
这三个函数第一个定义了两个回调函数,
按下,弹起两个函数,自己要加上。
第二个释放按键(不用了)。第三个读按键。

LCD
LCD.C中定义了有关的LCD操作和初始化函数

bspTempSensor.c定义了温度传感器的初始化和读函数

关于UART:
//Define a buffer for received data
uint8_t rxBuffer[RX_BUFFER_LENGTH];
//Callbacks' declarationsvoid usartBytesReceived(uint8_t readBytesLen);
void usartWriteConfirm(void);
HAL_UsartDescriptor_t usartDescriptor =
{  .tty            = USART_CHANNEL;  
   .mode           = USART_MODE_ASYNC;  //Use asynchronous mode (UART)
   .flowControl    = USART_FLOW_CONTROL_NONE;
   .baudrate       = USART_BAUDRATE_38400;  
   .dataLength     = USART_DATA8;  
   .parity         = USART_PARITY_NONE;  
   .stopbits       = USART_STOPBIT_1;  
   .rxBuffer       = rxBuffer;  
   .rxBufferLength = USART_RX_BUFFER_LENGTH;  
   .txBuffer       = NULL;  
   .txBufferLength = 0;  
   .rxCallback     = usartBytesReceived;  
   .txCallback     = usartWriteConfirm;}
   ...
HAL_OpenUsart(&usartDescriptor);
HAL_OpenUsart带参数usartDescriptor结构 初始化串口

HAL_WriteUsart写串口:   
Static char msgBuffer[] = "Message for UART";
HAL_WriteUsart(&usartDescriptor, (uint8_t*)msgBuffer, sizeof(msgBuffer));

HAL_IsTxEmpty()判断是否空
HAL_ReadUsart读串口数据:      
uint8_t usartRxBuffer[APP_USART_BUFFER_SIZE];      //Callback function specified in the usart descriptor      
static void usartBytesReceived(uint16_t bytesToRead)     
//注意串口的回调函数是在初始化结构中指出的。结构中有两个回调函数
.rxCallback     = usartBytesReceived;  
.txCallback     = usartWriteConfirm; 它们分别由用户处理串口接收 发送相关的事情。
{         HAL_ReadUsart(&usartDescriptor, usartRxBuffer, bytesToRead);         ...  
}
查看本帖全部内容,请登录或者注册

最新回复

很详细。  详情 回复 发表于 2015-3-30 23:08

赞赏

1

查看全部赞赏

点赞 关注
 

回复
举报

1万

帖子

25

TA的资源

版主

沙发
 
很详细。
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/10 下一条
Microchip 直播|利用motorBench开发套件高效开发电机磁场定向控制方案 报名中!
直播主题:利用motorBench开发套件高效开发电机磁场定向控制方案
直播时间:2025年3月25日(星期二)上午10:30-11:30
快来报名!

查看 »

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表