不是的,SPI_RW(reg)返回的值不是A的值,这里返回的值没有意义是被丢弃掉了的,紧接着下一次SPI_RW(0)返回的才是
一次spi操作一般在CS(片选)的一个周期进行,
在读取寄存器值时一般需要调用2次以上的spi_RW,
比如读取寄存器reg,
首先拉低CS线(片选)-gt;调用SPI_RW(reg),这里的reg实际上是0...1111按位与上reg,因为reg这个地址没有用到最高位,最高位为0代表读地址操作,1代表写地址操作-gt;再次调用spi_rw(0)
,这里为0是因为读操作,如果是写那么就是写地址reg的值,即spi_rw(val)-gt;拉高CS线结束spi操作
SPI读写时是先写地址与操作或命令的一个byte,再读写值的一个byte,也就是CLK周期是2个BYTE也就是2*8bit16个周期的
地址与操作的一个byte:这个字节的最高位是控制读写的,读写分别为0b0xxxxxxx或0b1xxxxxxx
的形式,xxxxxxx中的最后几位是地址中间几位是spi命令
值的一个byte:
如果是读,那么全为0,如果是写,那么就是要写的值如果是命令就看命令的定义了
在时钟线电平的上升yuan写1位,的在时钟下降yuan读1位的,当这8个时钟周期完结那么就得到了8位正好一个字节当然如果寄存器的数据宽度是2个字节时,相应的这里就要是16个时钟周期2个字节
没用过nrf24l01模块,但一般spi的过程就是这样,关键要看你要访问的模块的spec文档,里面都描述了这些读写,控制的时序图
你既然已经从网上下了这个程序,那你编译通过后就到那些.h文件里面去找一个read_reg的寄存器,看它后面对应的值你就明白这里为什么写0了
read_reg对应的值是0x00,作用是读寄存器,懂了吧?
这个函数的作用是通过spi从nrf24l01中读出寄存器的值,所以这里是写0,也就是0x00
你既然已经从网上下了这个程序,那你编译通过后就到那些.h文件里面去找一个READ_REG的寄存器,看它后面对应的值你就明白这里为什么写0了
READ_REG对应的值是0x00,作用是读寄存器,懂了吧?
这个函数的作用是通过SPI从nRF24L01中读出寄存器的值,所以这里是写0,也就是0x00
不是的,spi_rw(reg)返回的值不是a的值,这里返回的值没有意义是被丢弃掉了的,紧接着下一次spi_rw(0)返回的才是
一次spi操作一般在cs(片选)的一个周期进行,
在读取寄存器值时一般需要调用2次以上的spi_rw,
比如读取寄存器reg,
首先拉低cs线(片选)-gt;调用spi_rw(reg),这里的reg实际上是0...1111按位与上reg,因为reg这个地址没有用到最高位,最高位为0代表读地址操作,1代表写地址操作-gt;再次调用spi_rw(0)
,这里为0是因为读操作,如果是写那么就是写地址reg的值,即spi_rw(val)-gt;拉高cs线结束spi操作
spi读写时是先写地址与操作或命令的一个byte,再读写值的一个byte,也就是clk周期是2个byte也就是2*8bit16个周期的
地址与操作的一个byte:这个字节的最高位是控制读写的,读写分别为0b0xxxxxxx或0b1xxxxxxx
的形式,xxxxxxx中的最后几位是地址中间几位是spi命令
值的一个byte:
如果是读,那么全为0,如果是写,那么就是要写的值如果是命令就看命令的定义了
在时钟线电平的上升yuan写1位,的在时钟下降yuan读1位的,当这8个时钟周期完结那么就得到了8位正好一个字节当然如果寄存器的数据宽度是2个字节时,相应的这里就要是16个时钟周期2个字节
没用过nrf24l01模块,但一般spi的过程就是这样,关键要看你要访问的模块的spec文档,里面都描述了这些读写,控制的时序图
文章TAG: 寄存器 spi 地址 数据 写进 读出来 c语言spi读程序...地址和数据都是16位的 能写进但读出来不正确 求读寄存器C语言...
还没有评论,快来抢沙发吧!
最新发现
相关资讯
c语言spi读程序...地址和数据都是16位的,能写进但读出来不正确,求读寄存器C语言...
,这里为0是因为读操作,如果是写那么就是写地址reg的值,即spi_rw(val)-gt
2024-03-13 16:55:10
pt文件怎么打开,新手求助PT下载后怎样播放
这是pt种子文件,打开需要相关下载软件方能打开,迅雷,bitcome
2024-03-13 16:55:01
供暖怎么设置水压标准,暖气水压要求是多少
事实上壁挂炉内的水压只要保持在0.5-1.5bar之间就完全不会影响壁挂炉的正常使用如水压低于0.5bar时,可能会造成生活热水忽冷忽热或无法正常启动,如水压高于1.5bar,在供暖时系统压力升高,如果超过3bar,锅炉的安全阀就会自
2024-03-13 16:53:15
windows2008文件服务器,windowsserver2008文件服务器怎么配置
1,打开服务器管理器,如果已经安装了文件服务那直接在角色--文件服务点击右键选择添加角色服务进行安装如果没有安装文件服务则选择添加角色进行安装,两者安装步骤基本相同
2024-03-13 16:53:10
java代码实现页面跳转,Java编程时怎么实现页面间的跳转
明确的告诉你,request里封装的是这次请求包含的内容,包括请求来的url,参数,请求类型,等等,你要想取到与这次请求无关的东西,比如你说的地址栏中的地址,这个我没实现过,说一下思路,你用js取得它,把它当成一个参
2024-03-13 16:51:27
新闻热榜
热门游戏
精彩专题