[AVR单片机] 请教一个关于通过SPI接口写NRF24L01的问题

[复制链接]
2778|4
 楼主| doliphin 发表于 2012-6-13 20:31 | 显示全部楼层 |阅读模式
uchar SPI_RW(uchar byte)
{

uchar bit_ctr;
   
for(bit_ctr=0;bit_ctr<8;bit_ctr++)   // output 8-bit    // 输出 8 位
   
{
   
MOSI = (byte & 0x80);         // output 'byte', MSB to MOSI
   // 从MOSI脚输出,从高位到低位.当BYTE 最高位为1时逻辑运算为1,输出1.运算为0时输出0
   
byte = (byte << 1);           // shift next bit into MSB..
    // 左移1位.将低位向高位转移.
   
SCK = 1;                      // Set SCK high..
   // 将SCK脚拉高,
   
byte |= MISO;      
  //byte=byte|MISO  capture current MISO bit

// 从MISO 中读出状态位存入BYTE中.
   
SCK = 0;            
  // ..then set SCK low again
// 将SCK脚拉低.发送一位完成.
   
}
    return(byte);           
  // return read byte
  
// 返回状态位
}

请问byte |= MISO; 有何意义?后面的程序都把这个返回值当做是24l01的状态寄存器的值,难道写24l01的同时24l01自动把status状态位输出?
plc_avr 发表于 2012-6-14 06:20 | 显示全部楼层
你后面的一句讲对了,每发送数据的同时,会自动返回一个数据。楼主应该看一下SPI通讯原理。
zhl100 发表于 2012-6-14 08:46 | 显示全部楼层
相当于发送等待  等待发送成功  确定处理结束再进行数据交互
 楼主| doliphin 发表于 2012-6-14 14:28 | 显示全部楼层
恩 看了一下 但关键它返回的是什么,找手册也没找见啊
2# plc_avr
plc_avr 发表于 2012-6-15 21:12 | 显示全部楼层
你找的哪个手册呢?该不会是找AVR的数据手册吧。要看24L01的寄存器内容。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:路漫漫其修远兮,吾将上下而求索

0

主题

195

帖子

2

粉丝
快速回复 在线客服 返回列表 返回顶部