Exemplo n.º 1
0
/**
 * initializes lower level rf protocol, sets high level address.
 * @param ownAddress high level address: 2-255
 */
void radioInit(void)
{
	nRF24L01_init();
	nRF24L01_set_RADDR_01(0, ThermostatAdr);
	nRF24L01_set_TADDR(ThermostatAdr);
	nRF24L01_set_rx_callback(&radioRxDataAvailable);
}
Exemplo n.º 2
0
int main(void)
{ 
	//usart_init (UBRR_VAL);//инициализация модуля
	SPI_MasterInit();//инициализация SPI
	nRF24L01_init(0b00000011);//инициализация модуля
	nrf24l01_RX_TX_mode(PRX);//переходим в режим приемника
	while(1)
	{	
		mSend(4);//внешний
		mSend(3);//кухня
		mSend(2);//ванная		
	
	}
}
Exemplo n.º 3
0
int main(void)
{
    int status;
    memset(RX_BUF,0,4);
    led_init();
    nRF24L01_init();
    motor_init();			//电机初始化
    QuadCopter_init(&QuadCopter);
    uart_init(115200);

    status = nRF_Check(); 	   	 	/*检测NRF模块与MCU的连接*/
    if(status == SUCCESS)			/*判断连接状态*/
        uart_printf("\r\n      NRF与MCU连接成功!\r\n");
    else
        uart_printf("\r\n  NRF与MCU连接失败,请重新检查接线。\r\n");
    nRF_RX_Mode();
    LED_OFF;
    while(1)
    {

        nRF_RX_Mode();
        nRF_Rx_Dat(RX_BUF);
        status=RX_BUF[2];

        switch(status)
        {
        case Q_ON:
            LED_ON;
            QuadCopter.Status=Q_ON;
            QuadCopter.BaseSpeed=300;
            motor_speed(QuadCopter.BaseSpeed,QuadCopter.BaseSpeed,QuadCopter.BaseSpeed,QuadCopter.BaseSpeed ) ;
            break;
        case Q_UP:
            QuadCopter_up(&QuadCopter);
            break;
        case Q_DOWN:
            QuadCopter_down(&QuadCopter);
            break;
        case Q_OFF:
            LED_OFF;
            QuadCopter.Status=Q_OFF;
            motor_speed(0,0,0,0 ) ;
            break;
        default:
            break;
        }
    }

}
Exemplo n.º 4
0
nRF24L01 *setup_rf(void) {
    nRF24L01 *rf = nRF24L01_init();
    rf->ss.port = &PORTB;
    rf->ss.pin = PB2;
    rf->ce.port = &PORTB;
    rf->ce.pin = PB1;
    rf->sck.port = &PORTB;
    rf->sck.pin = PB5;
    rf->mosi.port = &PORTB;
    rf->mosi.pin = PB3;
    rf->miso.port = &PORTB;
    rf->miso.pin = PB4;
    // interrupt on falling edge of INT0 (PD2)
    EICRA |= _BV(ISC01);
    EIMSK |= _BV(INT0);
    nRF24L01_begin(rf);
    return rf;
}
Exemplo n.º 5
0
int main(void)
{  
	memset(RX_BUF,0,4);
	led_init();
	nRF24L01_init();
	motor_init();			//电机初始化
	QuadCopter_init(&QuadCopter);

	Delayms(10);
	serial_init(115200);
	 
	LED_ON; 
   	serial_printf("\nhhhhhahhahahha终于可以了  \n ");
//	Delayms(100);
//    serial_flush(&tx_ringbuf);
	serial_putc('o');
	serial_gets((char*)rxbuf);
		
	while(1)
	{
	 
	}
	  	
}
Exemplo n.º 6
0
void main(void){
  
    // 0.001 с = 1/1000 с = 1мс
    if (SysTick_Config(SystemCoreClock / 1000)){ 
        /* если вернулся не ноль - ошибка */
        while (1);
    }
    
    STM_EVAL_LEDInit(LED3);
    STM_EVAL_LEDInit(LED4);
    STM_EVAL_LEDInit(LED5);
    STM_EVAL_LEDInit(LED6);
    
    nRF24L01_init();

    nRF24L01_set_rf(nRF24L01_DataRate_2M, nRF24L01_OutputPower_M18dBm);
    
    // устанавливаем адреса приемника и передатчика
    nRF24L01_set_my_addr(MyAddress);
    nRF24L01_set_tx_addr(TxAddress);
    
    u8 str[32] = "Hello blablacode.ru by nRF24\n";
    u8 dataIn[32];
    u16 req = 0;
    
    u16 badTransactions = 0;
    u16 successfulTransactions = 0;  
    
    while (1)  {
        status_reg = nRF24L01_readStatus();
        STM_EVAL_LEDToggle(LED3);
        nRF24L01_writeTx(str);
        do {
            status_reg = nRF24L01_readStatus();
        } while (status_reg.bit.MAX_RT == 0 && status_reg.bit.TX_DS == 0);
        
        nRF24L01_ClearStatus();
        
        nRF24L01_configure_rx();
        do {
            status_reg = nRF24L01_readStatus();
            req++;
            if (req > 1000)
            {
                req = 0;
                break;
            }
        } while (status_reg.bit.RX_DR == 0);
        
        if (status_reg.bit.RX_DR)
        {
            // чистим буфер
            memset(dataIn,0,32);
            // читаем
            nRF24L01_readRx(dataIn,32);
            
            // сравниваем
            int ret = memcmp(dataIn,str,32);
            if (ret == 0)
                successfulTransactions++;
            else
                badTransactions++;
        }        

        status_reg = nRF24L01_readStatus();
    }
}