nrf24l01与stm32f4的通信问题 10
问了好几个论坛和技术群结果都没人会NRF的发送方的STATUS读出来0X1E取消自动应答的话可以读出0X2E可是接收方收到的全是FF不是我发送的数据而发送方STATUS读...
问了好几个论坛和技术群 结果都没人会
NRF的发送方的STATUS读出来0X1E 取消自动应答的话可以读出0X2E 可是接收方收到的全是FF 不是我发送的数据 而发送方STATUS读出来0xFF 最高为默认是0为什么读出来会是FF? 移植的原子的例程 下面是接收代码
u8 NRF24L01_RxPacket(u8 *rxbuf)
{
u8 sta;
SPI1_SetSpeed(SPI_BaudRatePrescaler_32);
sta=NRF24L01_Read_Reg(STATUS);
NRF24L01_Write_Reg(NRF_WRITE_REG+STATUS,sta);
if(sta&RX_OK)
{
NRF24L01_Read_Buf(RD_RX_PLOAD,rxbuf,RX_PLOAD_WIDTH);
NRF24L01_Write_Reg(FLUSH_RX,0xff);
return 0;
}
return 1;//ûÊÕµ½ÈκÎÊý¾Ý
} 展开
NRF的发送方的STATUS读出来0X1E 取消自动应答的话可以读出0X2E 可是接收方收到的全是FF 不是我发送的数据 而发送方STATUS读出来0xFF 最高为默认是0为什么读出来会是FF? 移植的原子的例程 下面是接收代码
u8 NRF24L01_RxPacket(u8 *rxbuf)
{
u8 sta;
SPI1_SetSpeed(SPI_BaudRatePrescaler_32);
sta=NRF24L01_Read_Reg(STATUS);
NRF24L01_Write_Reg(NRF_WRITE_REG+STATUS,sta);
if(sta&RX_OK)
{
NRF24L01_Read_Buf(RD_RX_PLOAD,rxbuf,RX_PLOAD_WIDTH);
NRF24L01_Write_Reg(FLUSH_RX,0xff);
return 0;
}
return 1;//ûÊÕµ½ÈκÎÊý¾Ý
} 展开
展开全部
这种 情况肯定是你的51程序 有问题呀,并不是说设置一样就是能通信,51程序压根就不对怎么通行,特别是SPI口是模拟的时候。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
迪凯特科技(北京)有限公司_
2025-01-03 广告
2025-01-03 广告
单片机串口通信的原理是利用单片机的串口通信模块,通过把数据转化为一位一位的用时序方式传送数据,实现单片机与外部设备之间的数据通信。
串口通信的概念非常简单,串口按位(bit)发送和接收字节。尽管比按字节(byte)的并行通信慢,但是串口可以...
点击进入详情页
本回答由迪凯特科技(北京)有限公司_提供
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询