纠结了好几个月的问题,今天终于搞定了,剩下的就是开发应用层了,所以把我的步骤写出来,供需要的同学参考。我的程序是基于Zstack2.5.1a的Serialapp改的。
第一步:让Coordinator上电自动组网
(1)设置板子为自己的版本,我的版本为13
hal_broad_cfg.h中73行位置更改为#define HAL_BOARD_CC2530EB_REV13
(2)屏蔽Zstack默认的按键组网方式。
在编译选项中加入HAL_KEY=FALSE(Coordinator和Router以及Enddevice都屏蔽掉了 ,因为我用不到按键)
第二步:驱动PA
(1)添加PA宏定义
hal_broad_cfg.h中#define xHAL_PA_LNA 改为HAL_PA_LNA。
(2)修改PA驱动的引脚(我的板子上P1_2对应PA_EN,P2_0对应CE)
在mac_radio_defs.c文件中对应地方添加及修改如下代码
/* P1_2 -> PAEN */
RFC_OBS_CTRL0 = RFC_OBS_CTRL_PA_PD_INV;
OBSSEL2 = OBSSEL_OBS_CTRL0;
/*P2_0->CE*/
P2SEL &=~0x01;
P2DIR |=0x01;
P2_0=1;
第三步:设置PA功率
mac_radio.c中找到MAC_INTERNAL_API void macRadioSetTxPower(uint8 txPower)函数。
在macPhyTxPower = reqTxPower前添加reqTxPower=0xE5;功率大小为20dbm。
第四部:应用举例
(1)实现广播方式通信
SerialApp_TxAddr.addrMode =(afAddrMode_t)AddrBroadcast;
SerialApp_TxAddr.addr.shortAddr= 0xFFFD;
SerialApp_TxAddr.endPoint= SERIALAPP_ENDPOINT;
添加上述代码到SerialappInit()任意位置,则可实现广播通信。