int main( void )
{
u8 i,length;
BSP_INIT ( );
SI446X_RESET( );
//SI446X 模块复位
SI446X_CONFIG_INIT( ); //寄存器初始化,寄存器来自WDS配置的头文件
SI446X_SET_POWER( 0x7F ); //将输出功率配置为最大
SI446X_START_RX( 0, 0, PACKET_LENGTH,0,0,3 ); //进入接收模式,参数定义详见API手册
while (1)
{
SI446X_PART_INFO(buffer);
//读取寄存器状态
SI446X_INT_STATUS( buffer );
if( buffer[3] & ( 1<<4 ) ) //收到数据
{
length = SI446X_READ_PACKET( buffer );
//收到的数据是0-9,比较是否收到正确。
for( i = 0; i < 10; i ++ )
{
if( buffer[i] != i )
{
break;
}
}
return 0;
}
else SI446X_START_RX( 4, 4, PACKET_LENGTH,0,0,3 );
}
}
oid SI446X_INT_STATUS( unsigned char *buffer )
{
unsigned char cmd[4];
cmd[0] = GET_INT_STATUS;
cmd[1] = 0;
cmd[2] = 0;
cmd[3] = 0;
SI446X_CMD( cmd, 4 );
SI446X_READ_RESPONSE( buffer, 9 );
}
这个读取中断既可以清楚中断,也可以得到相对应的中断有没有置位,大家有没有谁用过这个芯片
|