5407|2

20

帖子

0

TA的资源

一粒金砂(中级)

楼主
 

24l01无线模块的接收失败 [复制链接]

Wireless Mouse.rar (72.51 KB, 下载次数: 27) 两个24l01都能读写寄存器,发射端用mega16,已经产生了发射中断,应该是有信号发出。可是接收端就是没有收到任何信号,本人实在不明白哪里问题。下面是接收端部分程序。附件是全部程序。
void main()
{
        uchar i,receive;
        uchar RxBuf[32];
               init_NRF24L01() ;

        init(); //12864的初始化
               delayMs(100);
                //开始显示各种文字
                setPosition(0, 0);
                 writeString(datas1);
        setPosition(1, 0);
        writeString(datas2);
                 
        SetRX_Mode();//接收模式
        Delay(10000);
        Delay(5000);
        while(1)
        {

        if(nRF24L01_RxPacket(RxBuf))
        {
        setPosition(3,4);
               writeString(datas1);
        }
        receive=SPI_Read(STATUS);
             setPosition(3, 0);                       //把读到的寄存器值用液晶屏显示出
        writeData(receive/100+48);
        writeData((receive%100)/10+48);
            writeData(receive%10+48);
        }
}
/****************************************************************************************************/
/*函数:void SetRX_Mode(void)
/*功能:数据接收配置 0000000
/****************************************************************************************************/
void SetRX_Mode(void)
{
CE=0;
SPI_RW_Reg(WRITE_REG + CONFIG, 0x0f);    // IRQ收发完成中断响应,16位CRC ,主接收0000000
CE = 1;  
inerDelay_us(130);
}
/******************************************************************************************************/
/*函数:unsigned char nRF24L01_RxPacket(unsigned char* rx_buf)
/*功能:数据读取后放如rx_buf接收缓冲区中00000000000
/******************************************************************************************************/
uchar nRF24L01_RxPacket(uchar* rx_buf)
{
    uchar revale=0;
sta=SPI_Read(STATUS); // 读取状态寄存其来判断数据接收状况00000000000
if(0x40 & SPI_Read(STATUS)) // 判断是否接收到数据
{
// CE=0;
    CSN=0;  //SPI使能000000
SPI_Read_Buf(RD_RX_PLOAD,rx_buf,TX_PLOAD_WIDTH);// read receive payload from RX_FIFO buffer
revale =1; //读取数据完成标志0000000
}
SPI_RW_Reg(WRITE_REG+STATUS,sta);   //接收到数据后RX_DR,TX_DS,MAX_PT都置高为1,通过写1来清楚中断标志00000000000
return revale;
}
此帖出自RF/无线论坛

最新回复

你查看一下硬件吧,目前没有找到错误原因  详情 回复 发表于 2010-5-24 08:49
点赞 关注
 

回复
举报

2131

帖子

0

TA的资源

至上芯片

沙发
 

回复 楼主 hy5239 的帖子

你查看一下硬件吧,目前没有找到错误原因
此帖出自RF/无线论坛
个人签名处处留心皆学问!
 
 

回复

20

帖子

0

TA的资源

一粒金砂(中级)

板凳
 

回复 沙发 daicheng 的帖子

恩,硬件我用89S52进行接收的。单片机高电平时5V,无限模块VCC用的3.3v,最纳闷的一点就是在24L01的IRQ引脚应该保持低电平吧,可是却一直在2.5V,而且偶尔有个到3V的脉冲(接不接收都是这样),找不到原因。请大侠赐教。
此帖出自RF/无线论坛
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
快速回复 返回顶部 返回列表