首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 嵌入开发 > Wireless >

nRF24LE1 读写寄存器的有关问题

2012-12-29 
nRF24LE1 读写寄存器的问题unsigned char hal_nrf_rw(unsigned char value) {SPIRDAT valuewhile (!(SP

nRF24LE1 读写寄存器的问题
unsigned char hal_nrf_rw(unsigned char value) {
SPIRDAT = value;

while (!(SPIRSTAT & 0x02))
; // wait for byte transfer finished
;
return SPIRDAT; // return SPI read value
}

unsigned char hal_nrf_read_reg(unsigned char reg) {
unsigned char temp;
CSN_LOW();
hal_nrf_rw(reg);
temp = hal_nrf_rw(0);
CSN_HIGH();

return temp;
}

上面的代码有个地方看不懂(红色字体),hal_nrf_read_reg猜测应该是读寄存器的函数,但是它是怎么读得呢,红色字体的两行是什么意思呢?
[解决办法]
CSN_LOW();
hal_nrf_rw(reg);
temp = hal_nrf_rw(0);
CSN_HIGH();
==================================================
hal_nrf_rw(//参数);

1.这个是NRF写数据的函数,用SPI完成,看看你的芯片有没有SPI,没有的话,要模拟SPI来实现;
2.hal_nrf_rw(reg);先将寄存器地址写入NRF
3.因为SPI以循环移位实现,这一步hal_nrf_rw(0)在写入0的同时,读出了上一步reg寄存器的值

热点排行