|
一直写寄存器,但是MISO口上没有数据变化。。
程序代码:
void SPI_MasterInit(void)
{
DDRB |=(1<<PB4)|(1<<PB5)|(1<<PB7); //Set MOSI, SCK AND SS as outputs
SPCR =(1<<SPE)|(1<<MSTR)|(1<<SPR0);//16分频,高位先发
SPSR=0;
}
unsigned char SPI_MasterTransmit(unsigned char byte)
{
SPSR &= ~(1 << SPIF);
SPDR = byte;
while(!(SPSR & (1<<SPIF))) ;
return SPDR;
}
unsigned char SPI_Read_Reg(unsigned char reg)
{
unsigned char reg_val;
CSN_0;
SPI_MasterTransmit(reg); // Select register to read from..
reg_val =SPI_MasterTransmit(0); // ..then read registervalue
CSN_1;
return(reg_val); // return register value
}
//**SPI_Write_Reg**//
unsigned char SPI_Write_Reg(unsigned char reg,unsigned char value)
{
unsigned char status;
CSN_0;
status=SPI_MasterTransmit(reg); // select register
SPI_MasterTransmit(value); // ..and write value to it..
CSN_1;
return(status); // return nRF24L01 status byte
}
int main()
{
SPI_MasterInit();
while(1)
SPI_Write_Reg(W_REGISTER+CONFIG,0x55);//写入一个值,在MOSI上用示波器可以检测到波形,但是在MISO上检测不到,检测回来应该是0X55吧?互相交换数据~!??
} |
阿莫论坛20周年了!感谢大家的支持与爱护!!
一只鸟敢站在脆弱的枝条上歇脚,它依仗的不是枝条不会断,而是自己有翅膀,会飞。
|