毕业论文开发语言企业开发JAVA技术.NET技术WEB开发Linux/Unix数据库技术Windows平台移动平台嵌入式论文范文英语论文
您现在的位置: 毕业论文 >> 嵌入式 >> 正文

SI4432通讯问题

更新时间:2012-6-4:  来源:毕业论文

最近弄了一套SI4432模块玩,把2个模块连接到同一个单片机,一个作为发送另一个接收,从网上下载了一个RFtest51示例代码修改:
配置为FIFO CRC通讯模式,接收到有效数据包或CRC校验错误产生中断NIRQ 信号输入


C/C++ code
while(1)
{

    //当按键被按下就有一个数据包被发出;
    if(PB1_TX == 0)//(发送模块处理)
    {
        while( PB1_TX == 0 );
        UART_Send_Str("按键按下,开始发送....\n");
        RFFIFOSendData2(sendLen, str);
        //设置中断使能寄存器,这里设置为只有当有效的数据包被接收或者接收到的数据包数据CRC校验出错才来中断;具体设置参考0x05和0x06寄存器
        SpiWriteRegister2(0x05, 0x03); //write 0x03 to the Interrupt Enable 1 register
        SpiWriteRegister2(0x06, 0x00); //write 0x00 to the Interrupt Enable 2 register
        //发射完毕后设置模块让它又工作在接收状态下;
        RFSetRxMode2();
        UART_Send_Str("发送完毕,恢复到接收状态....\n");
    }


    //check whether interrupt occured
    //查询中断是否到来,如果中断来了,根据我们前面中断使能寄存器的设置,说明有效数据包已经收到,或者收到的数据包CRC校验出错;
    //状态位进行处理
    if( NIRQ == 0 )
    {
        //设置模块处于空闲模式,处理收到的数据包,不继续接收数据
        //RFSetIdleMode读取中断标志ItStatus1清中断标志,并设置接收模块为Idle模式
        RFSetIdleMode();
        UART_Send_Str("中断来了....\n");
        /*CRC Error interrupt occured*/
        //判断是否由于CRC校验出错引发的中断;在RFSetIdleMode中已经读出了中断状态寄存器的值
        if( (ItStatus1 & 0x01) == 0x01 )

[1] [2] 下一页

设为首页 | 联系站长 | 友情链接 | 网站地图 |

copyright©youerw.com 优尔论文网 严禁转载
如果本毕业论文网损害了您的利益或者侵犯了您的权利,请及时联系,我们一定会及时改正。