| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105 |
- #include "pilot_init.h"
- #include "auto_pilot.h"
- #include "bsp_V8M_YY_led.h"
- #include "bsp_V8M_adc.h"
- #include "bsp_V8M_flash.h"
- #include "data_save.h"
- #include "drv_usart.h"
- #include "flight_mode.h"
- #include "params.h"
- #include "soft_can.h"
- #include "soft_delay.h"
- #include "soft_flash.h"
- #include "soft_gps.h"
- #include "soft_gs.h"
- #include "soft_imu.h"
- #include "soft_motor_output.h"
- #include "soft_port_uart4.h"
- #include "soft_rc_input.h"
- #include "soft_sdcard.h"
- #include "soft_time.h"
- #include "soft_timer.h"
- #include "soft_voltage.h"
- #include "stdio.h"
- #include "ver_config.h"
- #define GCS_UART_Baudrate 115200 // 与地面站通信波特率
- #define UART3_Baudrate 460800 // 与IMU通信波特率
- #define UART4_Baudrate 115200 // 外接设备通信波特率
- void auto_pilot_init(void)
- {
- /*****************************************************系统初始化**************************************************/
- // 配置系统时钟为168M 使用外部8M晶体+PLL
- //SystemInit();
- //// 中断向量表偏移
- //SCB->VTOR = FLASH_BASE | 0x10000;
- //// 设置中断向量组,1抢占优先级,3响应优先级
- //NVIC_PriorityGroupConfig(NVIC_PriorityGroup_1);
- // 延时初始化,并启动开机时间。
- system_delay_initial(168);
- // 启动系统主定时器 1us 总计数时间为0xffffffff * 0.000001
- system_time_initial();
- // 系统定时器中断初始化
- system_timer_initial();
- // 初始化 SPI总线
- flash_at45db_initial();
- // 检查flash是否在电路班上
- while (!flash_isexist())
- {
- // 查询AT45DB 是否在电路板上
- delay_ms(50);
- }
- // 初始化 四轴姿态PID,初始化参数放在前面,因为里面包含有遥控器的校准系数。
- // 不然一直到获取到校准系数之前,遥控器的输入都是停留在1500us,导致无法进入电调校准的识别
- initial_parameters();
- // SBUS输入
- rc_input_initial();
- // 初始化 can 总线接口
- CAN_BusInit();
- // 电压接口初始化
- Voltage_Init();
- // PWM输出
- motor_output_initial();
- // 等待接收机器件上电
- delay_ms(200);
- // 带油门 上电,说明用户希望初始化电调
- esc_calibrate_enable();
- if (ver_par.hardware_id == HW_V8M_YY)
- {
- v8m_yy_led_init();
- }
- // 串口3
- imu_uart3_initial(UART3_Baudrate);
- // 地面站初始化
- gcs_init(&gcs_link, GCS_UART_Baudrate);
- // 检查升级标志位
- switch (ver_par.hardware_id)
- {
- case HW_V8M_YY:
- V8M_check_iap_flag();
- break;
- default:
- break;
- }
-
- // 初始化SDCARD
- sdcard_inital(0);
- // 读取最后一条log信息,初始化log结构体
- sd_card_init_fly_log();
- // 串口4
- port_uart4_initial();
- }
|