void Aircraft_Init(void) { GPIO_InitTypeDef GPIO_InitStructure; // LCD #ifdef _DEBUG_WITH_LCD RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOD, ENABLE); GPIO_InitStructure.GPIO_Pin = GPIO_Pin_7; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT; GPIO_InitStructure.GPIO_OType = GPIO_OType_PP; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz; GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP; GPIO_Init(GPIOD, &GPIO_InitStructure); GPIO_ResetBits(GPIOD , GPIO_Pin_7); //CS=0; LCD_Initializtion(); LCD_Clear(Blue); #endif // 捕获器 tim_throttle.mode_pwm_input(THROTTLE_PIN); tim_pitch.mode_pwm_input(PITCH_PIN); tim_yaw.mode_pwm_input(YAW_PIN); tim_roll.mode_pwm_input(ROLL_PIN); // 调度器 tim_sch.mode_sch(); // 接收机 receiver.stick_throttle_ = Stick(0.0502,0.0999,0,NEGATIVE_LOGIC); // 油门最高点,听到确认音 motor1 = Motor(PWM_FREQ,MAX_DUTY,MOTOR1_PWM_TIM,MOTOR1_PWM_CH,MOTOR1_PWM_PIN); motor2 = Motor(PWM_FREQ,MAX_DUTY,MOTOR2_PWM_TIM,MOTOR2_PWM_CH,MOTOR2_PWM_PIN); motor3 = Motor(PWM_FREQ,MAX_DUTY,MOTOR3_PWM_TIM,MOTOR3_PWM_CH,MOTOR3_PWM_PIN); motor4 = Motor(PWM_FREQ,MAX_DUTY,MOTOR4_PWM_TIM,MOTOR4_PWM_CH,MOTOR4_PWM_PIN); // 电调接上电池,等待2S Delay(DELAY_1S); Delay(DELAY_1S); // 以防万一,再次延迟2S // Delay(DELAY_1S); // Delay(DELAY_1S); // 油门推到最低,等待1S motor1.set_duty(MIN_DUTY); motor2.set_duty(MIN_DUTY); motor3.set_duty(MIN_DUTY); motor4.set_duty(MIN_DUTY); Delay(DELAY_1S); Delay(DELAY_1S); Delay(DELAY_1S); // 油门最低点确认音,可以起飞 // LED4 RCC_AHB1PeriphClockCmd(LED4_GPIO_CLK, ENABLE); GPIO_InitStructure.GPIO_Pin = LED4_PIN; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT; GPIO_InitStructure.GPIO_OType = GPIO_OType_PP; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz; GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_NOPULL; GPIO_Init(LED4_GPIO_PORT, &GPIO_InitStructure); GPIO_ResetBits(LED4_GPIO_PORT,LED4_PIN); init_flag = 1; }
void TFT_SPI_Init(void) { GPIO_InitTypeDef GPIO_InitStructure; LCD_Initializtion(); RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOA | RCC_AHB1Periph_GPIOD, ENABLE); GPIO_InitStructure.GPIO_Pin = GPIO_Pin_3 | GPIO_Pin_6; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT; GPIO_InitStructure.GPIO_OType = GPIO_OType_PP; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; GPIO_Init(GPIOD, &GPIO_InitStructure); SET_TCS(); GPIO_SetBits(GPIOD, GPIO_Pin_6); //TCLK高 GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0; //DOUT PA0 GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN; GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP; GPIO_Init(GPIOA, &GPIO_InitStructure); }
/******************************************************************************* * Function Name : main * Description : Main program. * Input : None * Output : None * Return : None *******************************************************************************/ int main(void) { GPIO_InitTypeDef GPIO_InitStructure; RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOD, ENABLE); //FSMC config GPIO_InitStructure.GPIO_Pin = GPIO_Pin_7; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT; GPIO_InitStructure.GPIO_OType = GPIO_OType_PP; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz; GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP; GPIO_Init(GPIOD, &GPIO_InitStructure); GPIO_ResetBits(GPIOD , GPIO_Pin_7); //CS=0; LCD_Initializtion(); NVIC_Configuration();/* Interrupt Config (SD/usart) */ USART_Configuration(); GET_SYSclock(); //Prepare for audio processing (nothing special) Audio_Init(); //SETUP I2S2/I2S3 TX/RX GPIO pins and configure i2s2/i2s3 Codec_Init(48000); //setup codec settings via i2c to the uda1380 chip UDA1380_Configuration(); //Setup the DMA/interrupts for I2s2 and I2s3 I2S_Block_Init(); //begin audio processing/playback I2S_Block_PlayRec((uint32_t)&tx_buffer, (uint32_t)&rx_buffer, BUFF_LEN); while (1) {} }
static void prvConfigureLCD( void ) { // LCD_Configuration(); // ministm32_lcd.c LCD_Initializtion(); }