2432|0

5260

帖子

236

TA的资源

管理员

楼主
 

FAQ_如何在BlueNRG-12的2.4G私有协议Remote Control 应用场景中添加低功耗模式 [复制链接]

 

本文作者:ST工程师Weisheng CHEN

点击下载pdf文档查看: FQA-如何在BlueNRG-12的2.4G私有协议Remote Control 应用场景中添加低功耗模式及按键.pdf (460.5 KB, 下载次数: 9)

关键词: BlueNRG-1/2, 2.4G私有协议, 低功耗

 

 

 问题 :如何使用BlueNRG-1/2的2.4G私有协议技术,在Remote Control应用中实现低功耗模式和本机按键唤醒并发送数据包。 

背景:客户使用BlueNRG-1/2芯片设计其2.4G私有协议产品,应用场景参照ST提供SDK中的Remote Control演示代码。TX端电池供电,需要实现低功耗模式,在按键按下的情况下及时发出命令包, 同时在规定时间间隔内(如2秒)TX/RX部分需要交换数据。RX端长供电,不要求低功耗模式。 

 

ST工程师解答:客户的要求集中在TX端,客户可以参考ST提供的SDK中SLEEP_TX/RX演示代码,该演示代码本身已经实现了低功耗模式,并且在主环中调用函数HAL_RADIO_SendPacketWithAck时给出了下次唤醒的定时信息。所以只需要添加本机按键唤醒系统并发数据包的功能。根据ST 008V2评估板硬件资源,我们可以选用按键PUSH1(GPIO13)作为唤醒源,在按下PUSH1时唤醒系统并发送数据包。 软件部分可以在主环中做如下更改: 

#if 1
BlueNRG_Sleep(SLEEPMODE_WAKETIMER, WAKEUP_IO13, WAKEUP_IOx_LOW << WAKEUP_IO13_SHIFT_MASK);
if ((GPIO_GetITPendingBit(GPIO_Pin_13) == SET) || ((wakeupFromSleepFlag) && (BlueNRG_WakeupSource() == WAKEUP_IO13)))
{
GPIO_ClearITPendingBit(GPIO_Pin_13);
ret = HAL_RADIO_SendPacketWithAck(FREQUENCY_CHANNEL,TX_WAKEUP_TIME1, sendData, receivedData, RX_TIMEOUT_ACK, TxCallback);
if(ret != SUCCESS_0) {
printf("WAKEUP ERROR %d (%d)\r\n",ret, packet_counter);
}
sleep_timer();
}
#else
BlueNRG_Sleep(SLEEPMODE_WAKETIMER, 0, 0);
#endif

 

加EE小助手好友,
入技术交流群
EE服务号
精彩活动e手掌握
EE订阅号
热门资讯e网打尽
聚焦汽车电子软硬件开发
认真关注技术本身
点赞 关注
 
 

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

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/9 下一条

 
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
快速回复 返回顶部 返回列表