打印

arduino驱动nRF24L01+数据发不出去

[复制链接]
2966|3
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
feiyinglala|  楼主 | 2022-6-11 02:09 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
目的:借鉴Mirf库,使用arduino nano驱动nRF模块,计算机通过串口监视其工作状态
特别说明:我将模块配置为了无需ACK的单发状态(EN_AA/EN_RXADDR/SETUP_RETR均配置为0x00)
现象问题:寄存器配置显示正确,数据也加载到FIFO中了,但就是发不出去(STATUS=0E,FIFO_STATUS=0X01)串口通信正常,模块是正常的(换到STM32驱动就可以发出去)
引脚关系: CE -> 8  // * CSN -> 7 // * SCK -> 13  * MOSI -> 11 * MISO -> 12 * IRQ  -> 2
整体思路:nRF初始化默认配置为接收状态,在接到电脑通过串口发送的命令后启动发送
setup():
    串口和定时器初始化
    Mirf.init,配置CE和CSN引脚
    Mirf.config 配置为接收模式--清空FIFO接收区
loop():
    读取当前EN_AA / EN_RXADDR / SETUP_RETR / CONFIG寄存器配置状态和STATUS、FIFO_STATUS寄存器状态
    Mirf.send   检验是否在发送状态---配置为发送模式---清空FIFO发送区---CE置高发送
    读取发送后STATUS、FIFO_STATUS寄存器配置状态
    延时循环计数串口接收到的信息为
Starting wireless...
Wireless initialized!
循环第0次
EN_AA:1
EN_RXADDR:1
SETUP_RETR:3
CONFIG:1F
发送前STATUS:E
发送前FIFO_STATUS:11
Mirf中send函数段:status=E
发送后STATUS:E
发送后FIFO_STATUS1:1

循环第1次
EN_AA:0
EN_RXADDR:0
SETUP_RETR:0
CONFIG:3E
发送前STATUS:E
发送前FIFO_STATUS:1







使用特权

评论回复
沙发
gaochy1126| | 2022-6-29 16:50 | 只看该作者
你使用的是arduino的库吗?这个配置有问题吗?   

使用特权

评论回复
板凳
gaochy1126| | 2022-6-29 16:51 | 只看该作者
有stm32的测试代码,使用nrf24l01可行的。                  

使用特权

评论回复
地板
gaochy1126| | 2022-6-29 16:52 | 只看该作者
看看这个帖子吧  https://blog.csdn.net/weixin_39369053/article/details/117871692              

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

21

主题

224

帖子

1

粉丝