vf1983cs 发表于 2011-1-14 23:06:38

帮我看看这个程序是什么意思

初学,很多问题不懂,请大家指教:
void InitCpu(void)
{
    uint8 cklf;
    SPICLK = 1;                        // Max SPI clock
    SPI_CTRL = 0x02;                     // SPI接到RF端
    RACSN = 0;
    SpiReadWrite(RRC | 0x09);
    cklf = SpiReadWrite(0) | 0x04;
    RACSN = 1;
    RACSN = 0;
    SpiReadWrite(WRC | 0x09);
    SpiReadWrite(cklf);
    RACSN = 1;
    P0_DIR=P0_DIR&0x1F;         //P0.6,P0.5,P0.7 输出   
    LED=0;
    P0_DIR |= 0x18;            // P0.3,P0.4 输入
    EA = 1;
}
   
下面这两句是什么意思呢???知道是读取数据,但为什么要与0x09和0x04进行位或呢???读取哪个地址的数据???
    SpiReadWrite(RRC | 0x09);
    cklf = SpiReadWrite(0) | 0x04;
下面这两句又是什么意思???知道是写数据,但写进哪个地址呢?
    SpiReadWrite(WRC | 0x09);
    SpiReadWrite(cklf);

vf1983cs 发表于 2011-1-14 23:10:20

补充一个函数,免得大家看不懂
//*****************************************************************************
//函数名:uint8 SpiReadWrite(uint8 b)
//输入:发送的数据
//输出:收到的数据
//功能描述:SPI发送接收一个字节
//*****************************************************************************
uint8 SpiReadWrite(uint8 b)
{
    EXIF &= ~0x20; // 清除SPI中断标致位
    SPI_DATA = b;                              
    while((EXIF & 0x20) == 0x00); //等待发送接收完成
    return SPI_DATA;
}
页: [1]
查看完整版本: 帮我看看这个程序是什么意思