OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 3250|回复: 1

战舰NRF24L01驱动代码的问题,纠结了很久,求解

[复制链接]

5

主题

8

帖子

0

精华

新手上路

积分
30
金钱
30
注册时间
2016-3-15
在线时间
8 小时
发表于 2017-4-1 09:54:42 | 显示全部楼层 |阅读模式
2金钱
u8 NRF24L01_Write_Reg(u8 reg,u8 value)
{
u8 status;
    NRF24L01_CSN=0;               
   status =SPI2_ReadWriteByte(reg);
   SPI2_ReadWriteByte(value);   
   NRF24L01_CSN=1;                 
   return(status);         
}
第一个问题是 :  status =SPI2_ReadWriteByte(reg);这个函数SPI2_ReadWriteByte(reg);得到的不是移位寄存器中的值吗?为什么备注上写得到的是寄存器状态值???

u8 NRF24L01_Read_Buf(u8 reg,u8 *pBuf,u8 len)
{
u8 status,u8_ctr;        
   NRF24L01_CSN = 0;         
   status=SPI2_ReadWriteByte(reg);
  for(u8_ctr=0;u8_ctr<len;u8_ctr++)pBuf[u8_ctr]=SPI2_ReadWriteByte(0XFF);
   NRF24L01_CSN=1;      
   return status;        
}
第二个问题是 :u8 NRF24L01_Read_Buf(u8 reg,u8 *pBuf,u8 len)这个函数不应该返回pBuf[u8_ctr]这个数组中的值吗,为啥是status=SPI2_ReadWriteByte(reg);这个值???


求大家帮我解释一下,清晰点,我比较笨,哈哈

最佳答案

查看完整内容[请看2#楼]

1,是NRF返回状态寄存器的值给STM32的SPI移位寄存器,所以,是一个值。 2,看函数返回值说明。
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

557

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165002
金钱
165002
注册时间
2010-12-1
在线时间
2102 小时
发表于 2017-4-1 09:54:43 | 显示全部楼层
1,是NRF返回状态寄存器的值给STM32的SPI移位寄存器,所以,是一个值。
2,看函数返回值说明。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

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

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2024-6-28 10:15

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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