找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1747|回复: 5
收起左侧

请问,你们的使用NRF24L01无线模块要接收数据时,是在主循环里一直在工作吗?

[复制链接]
ID:710522 发表于 2020-4-22 23:28 | 显示全部楼层 |阅读模式
请问一下各位,你们在使用NRF24L01无线模块的时候,“接收”程序,你们是放在“主函数”的循环里一直在工作的吗?
能不能让这个无线模块不要一直工作,属于待机状态,但是又能及时唤醒接收其他模块发来的数据信号?这样应该怎么来实现。

我想实现低功耗,这个模块只在发送时工作,发送完就待机休眠,如果休眠状态下,有其他人发来数据,就接收完执行完指令后,如果没任务了,又继续休眠。

如何实现。这个能实现的了吗?

回复

使用道具 举报

ID:546770 发表于 2020-4-23 07:57 | 显示全部楼层
将IRQ引脚连接到MCU外部中断,程序里面设置使能NRF的IRQ引脚,这样子就可以在中断里面读取接收到的数据了,记住一点就是接受完以后必须将该引脚置位;
回复

使用道具 举报

ID:191511 发表于 2020-4-23 10:04 | 显示全部楼层
发送如果是间隔同样的时间,可以使用定时器定时中断唤醒单片机。而接收的话,楼上的办法可以,或者使用相对应的硬件接收中断去唤醒单片机。
回复

使用道具 举报

ID:282850 发表于 2020-4-23 10:58 | 显示全部楼层
完全能实现低功耗,用中断解决。
回复

使用道具 举报

ID:604406 发表于 2021-1-8 10:53 | 显示全部楼层
f556 发表于 2020-4-23 10:58
完全能实现低功耗,用中断解决。

怎么可能?楼主的意思是在接收的时候进入低功耗。NRF2401低功耗状态下是收不到数据的。
回复

使用道具 举报

ID:844772 发表于 2021-1-8 11:36 | 显示全部楼层
一是,考虑它降低功耗意义不大,它工作只有10几个毫安;二是,发完休眠是可以做到,但休眠或掉电状态没法接收其他人数据,采取额外连接再激活更费电。三是,如果没有其他要求,放在主函数循环也可以的,反正没人看你程序。
回复

使用道具 举报

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

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表