[AVR单片机] 用mega88与无线收发芯片nrf24L01用spi通信无法接收数据的问题

[复制链接]
 楼主| lightyacht 发表于 2007-9-8 16:47 | 显示全部楼层 |阅读模式
用88做主, 来控制24L01, 这里想这样做, 写24L01的一个寄存器,然后再读出来,

使用的是spi, 结果却读不出来, 发现miso上一直是高电平

读出的是0xff,


相关主要子程序如下


char read_rf_reg(char address)
{
char y;
    ENABLE_RF_SPI;
    spi_byte(R_REG|address);
    y=(spi_byte(0x0));
    DISABLE_RF_SPI;
    return y;
}


char spi_byte(char data_byte)
{
    SPDR = data_byte;
    while(!(SPSR & (1<<SPIF)))
        ;
    return(SPDR);


}

谁能帮帮我


 楼主| lightyacht 发表于 2007-9-8 18:51 | 显示全部楼层

问题解决了

问题解决了,

由于使用的dragon仿真器的ISP接口涉及到spi的几个管脚,尤其是miso,

当dragon的isp接mega88的miso的时候,

原来低电平的miso会变为高电平

后来我在调试的时候

将dragon的isp的与miso对应的管脚断开

结果就能正常读24L01的寄存器了
鑫海宝贝 发表于 2010-10-6 14:16 | 显示全部楼层
楼主能把程序发给我看看吗mega16或者mega88都行
您需要登录后才可以回帖 登录 | 注册

本版积分规则

29

主题

41

帖子

1

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