Example #1
0
void SYS_INIT(void)
{
	LED_INIT();
	LED_FLASH();
	Moto_Init(); 
	LED_FLASH();	
	
	Tim3_Init(500);
	Nvic_Init();
	Uart1_Init(115200);
	
	ANO_TC_I2C2_INIT(0xA6,400000,1,1,3,3);
	MPU6050_Init();

	Spi1_Init();
	Nrf24l01_Init(MODEL_TX2,40);
 	if(Nrf24l01_Check())
		Uart1_Put_String("NRF24L01 IS OK !\r\n");
 	else 									
		Uart1_Put_String("NRF24L01 IS NOT OK !\r\n");
		
	ADC1_Init();
	
	FLASH_Unlock();
	EE_INIT();
	EE_READ_ACC_OFFSET();
	EE_READ_GYRO_OFFSET();
	EE_READ_PID();
	
	Tim3_Control(1);
}
Example #2
0
File: main.c Project: chnxg/IMU_prj
/* 
 * 函数名:main
 * 描述  : 主函数
 * 输入  :无
 * 输出  : 无
 */
int main(void)
{
	/* 配置系统时钟为 72M */ 
	SystemInit(); 
	LED_GPIO_Config();
	Nvic_Init();
	I2C_GPIO_Config();
	Delay(0xFFFF);
	InitMPU6050();
	Delay(0xFFFF);
  Init_HMC5883L();
	Delay(0xFFFF);
	Tim3_Init(2500);
	usart1_config();
	
  while(1)
  {
	    if(sentFlag)
			{
				 sentFlag = 0;								 
			   UART1_ReportIMU();
			}
	}
	  
}
Example #3
0
void SYS_INIT(void)
{
	LED_INIT();			//LED及串口IO 初始化
	LED_FLASH();		//LED闪烁
	Tim3_Init(500);	//中断初始化 //1000=1MS,500=0.5MS
	Moto_Init();	  //PWM
	
	//	Uart1_Init(115200);	//串口初始化,飞控上几乎无用
	
	Spi1_Init();		//SPI初始化
	Nvic_Init();		//中断初始化
	Nrf24l01_Init(MODEL_TX2,40);	//2401中断初始化  主发送 通道 40
	
// 	if(Nrf24l01_Check())	Uart1_Put_String("NRF24L01 IS OK !\r\n");			//检测2401是否初始化成功
// 	else 									Uart1_Put_String("NRF24L01 IS NOT OK !\r\n");
	
	InitMPU6050();
	
	ADC1_Init();		//检测电池电压
	FLASH_Unlock();	//保存飞飞控参数
	EE_INIT();
	EE_READ_ACC_OFFSET();
	EE_READ_GYRO_OFFSET();
	EE_READ_PID();
	
	PID_ROL.P = PID_PIT.P = 5;	//用于初始化pid,如用匿名上位机写入pid,则屏蔽
	PID_ROL.D = PID_PIT.D = 0.1;			
	PID_YAW.P = 0.5;	
	PID_YAW.D = 0.05;			
}
Example #4
0
File: main.c Project: kenziD/ANO
int main(void)
{
    int dianya_fly = 0;
    SysTick_Init();
    Tim3_Init(500);
    Nvic_Init();
    LED_Init();
    ADC1_Init();
    USART1_Config(115200);
    KEY_Init();
    NRF24L01_Init();
    while (NRF24L01_Check())	//检查NRF24L01是否在位.要放在设置TX_MODE之前,否则设置的发送地址会变成check中的0XA5 ,将与原接收地址对不上
    {
        LED2_ON;
        LED1_OFF;
        printf("no");
    }
    LED1_ON;
    LED2_OFF;
    //TX mode
    //NRF24L01_TX_Mode();
    //NRF24L01_Mode_Config(2);

    //RX mode
    NRF24L01_Mode_Config(3);
    while (1)
    {
        key = KEY_scan();


        if (NRF24L01_RxPacket(tmp_buf) == 0)
        {
            NRF24L01_TxPacket_AP(rc_buf);
            LED1_ON;
            if(tmp_buf[0]==0x88 && tmp_buf[1]==0xAE && tmp_buf[2]==0x1C)
            {
                dianya_fly = tmp_buf[17]<<8|tmp_buf[18];
                if(dianya_fly<36 && dianya_fly>20)
                {
                    LED2_ON;
                }
            }
            send_wave(32,tmp_buf);
        }
        else
        {
            LED1_OFF;
        }
    }
}
Example #5
0
void IAC_Init(void)
{
	 delay_init(72);  //延时函数初始化
	 Nvic_Init();     //中断初始化 
	 LED_Init();      //led初始化
	 KEY_Init();    //按键初始化
	 OLED_Init();     //oled初始化
	 //Draw_LibLogo();  //logo	
    paramLoad();    //pid参数初始化
	 State_Display();//OLED数据显示
   Moto_Init();		  //电机初始化//200hz
	
	 usart1_init(72,115200); //串口1初始化  摄像头
	 usart2_Init(36,9600);    //ks103数据 9600 
	 usart3_config(460800); //串口3初始化   上位机
	 TIM3_Init(2500); //定时器初始化 2.5MS
}
Example #6
0
void IAC_Init(void)
{
	 delay_init(72);
	 MCO_INIT();
	 Nvic_Init(); 
   LED_GPIO_Config();	
   I2C_INIT();
	 delay(0XFFF);
	 TIM3_Init(2500);
	 usart1_config();
	 ADC1_Init();	
	 NRF24L01_Init();
   Moto_Init();	
	 LED_SHOW();
	 FLASH_Unlock();
	 EE_Init();
}