STM32/STM8技术论坛
登录
直播中
jf_66475172
4年用户
8经验值
擅长:嵌入式技术
私信
关注
[问答]
NRF24L01无法收到数据
开启该帖子的消息推送
STM32F407
nRF24L01
在
STM32
F407上面使用NRF24L与上位机
通信
,板子上的NRF收不到消息,NRF检测的时候写入地址再读出来时正确的。可以帮我看看是我哪里配置有问题吗?谢谢大家。
已退回
5
积分
回帖
(1)
jf_66475172
2022-4-8 21:40:28
u8 NRF_Rx_Dat(u8 *rxbuf)
{
u8 state;
NRF_CE_HIGH(); //进入接收状态
/*等待接收中断*/
while(NRF_Read_IRQ()!=0);
NRF_CE_LOW(); //进入待机状态
/*读取status寄存器的值 */
state=SPI_NRF_ReadReg(STATUS);
/* 清除中断标志*/
SPI_NRF_WriteReg(NRF_WRITE_REG+STATUS,state);
/*判断是否接收到数据*/
if(state&RX_DR) //接收到数据
{
SPI_NRF_ReadBuf(RD_RX_PLOAD,rxbuf,RX_PLOAD_WIDTH);//读取数据
SPI_NRF_WriteReg(FLUSH_RX,NOP); //清除RX FIFO寄存器
return RX_DR;
}
else
return ERROR; //没收到任何数据
}
u8 NRF_Rx_Dat(u8 *rxbuf)
{
u8 state;
NRF_CE_HIGH(); //进入接收状态
/*等待接收中断*/
while(NRF_Read_IRQ()!=0);
NRF_CE_LOW(); //进入待机状态
/*读取status寄存器的值 */
state=SPI_NRF_ReadReg(STATUS);
/* 清除中断标志*/
SPI_NRF_WriteReg(NRF_WRITE_REG+STATUS,state);
/*判断是否接收到数据*/
if(state&RX_DR) //接收到数据
{
SPI_NRF_ReadBuf(RD_RX_PLOAD,rxbuf,RX_PLOAD_WIDTH);//读取数据
SPI_NRF_WriteReg(FLUSH_RX,NOP); //清除RX FIFO寄存器
return RX_DR;
}
else
return ERROR; //没收到任何数据
}
举报
更多回帖
rotate(-90deg);
回复
相关问答
STM32F407
nRF24L01
stm32对
nrf24l01
无法
操作的原因?怎么解决?
2021-12-16
592
什么是
nRF24L01
?
2021-10-09
1087
如何解决stm32上
NRF24L01
无法
通信的问题?
2021-12-17
1587
stm32mini板子上
NRF24L01
和STC11
L
04E模块通信不显示
数据
的原因?
2020-05-12
865
NRF24L01
的天线怎么绘制?
2020-06-02
2638
NRF24L01
驱动函数包括哪些
2021-12-16
984
nrf24l01
调试问题如何解答
2020-06-18
1399
NRF24L01
的相关命令宏定义有哪些
2021-12-17
755
stm8
nrf24l01
驱动问题如何解决
2020-06-10
1376
如何解决
nRF24L01
模块设计和调试遇到的问题?
2021-12-17
1163
发帖
登录/注册
20万+
工程师都在用,
免费
PCB检查工具
无需安装、支持浏览器和手机在线查看、实时共享
查看
点击登录
登录更多精彩功能!
首页
论坛版块
小组
免费开发板试用
ebook
直播
搜索
登录
×
20
完善资料,
赚取积分