| 
 
新手入门 
 
	积分10金钱10 注册时间2016-4-8在线时间7 小时 | 
 
17金钱 
| 本帖最后由 zhugeliang9575 于 2016-4-14 16:10 编辑 
 经过大家的帮忙和几天的调试,现在发送端标志位是0x2e,接收端是0x40,而且IRQ在发送和接收均有高低电平变化,唯一的问题是不知道为什么接收端收到的数据全是0x00,而我只是发送的0xff,求助,下面附上程序:
 RX_Mode();
 delay_130us();
 while(1)
 {
 while(IRQ);
 sta = SPI_Read(STATUS);
 SPI_RW_Reg(WRITE_REG + STATUS, sta);
 if (sta & 0x40)
 {
 CE=0;
 SPI_Read_Buf(RD_RX_PLOAD, RX_BUF, TX_PLOAD_WIDTH);  // 从RX FIFO读出数据
 SPI_RW(FLUSH_RX);
 a = RX_BUF[0];
 RB1=~RB1;   //端口,观察是否状态标识为是否为0x40
 sta=0;
 if(a==0xff)
 RB0=0;
 else if(a==0x00)
 RB0=1;
 CE=1;
 }
 }
 接收端程序
 
 while(1)
 {
 if(flag)
 {
 flag=0;
 TX_BUF[0] = 0xff;
 TX_packet(TX_BUF[0]);
 SPI_RW_Reg(WRITE_REG+STATUS,0xff);
 }
 }
 发送端程序
 
 
 
 
 
 
 
 
 
 | 
 |