新手入门
- 积分
- 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);
}
}
发送端程序
|
|