81 lines
2.9 KiB
C
81 lines
2.9 KiB
C
#include "main.h"
|
|
|
|
static void bsp_initialization(void);
|
|
|
|
int main(void)
|
|
{
|
|
/* 硬件初始化 */
|
|
bsp_initialization();
|
|
|
|
/* 应用程序初始化 */
|
|
app_init();
|
|
|
|
/* 开始任务调度 */
|
|
task_start_scheduler();
|
|
}
|
|
|
|
/* 硬件初始化 */
|
|
static void bsp_initialization(void)
|
|
{
|
|
/* 设置偏移量 */
|
|
SCB->VTOR = FMC_ADDRESS_APP;
|
|
|
|
/* 系统滴答器初始化 */
|
|
system_init();
|
|
|
|
/* CAN0 初始化, 波特率250 */
|
|
can_config(CAN0, 250);
|
|
|
|
/* 上位机 通讯串口 初始化 */
|
|
usart_config(HOST_USART_PERIPH, 115200, USART_PM_NONE);
|
|
|
|
/* RS485 通讯串口 初始化 */
|
|
usart_config(RS485_USART_PERIPH, 19200, USART_PM_NONE);
|
|
|
|
/* RS485使能控制脚 初始化, 默认接收 */
|
|
gpio_config(RS485_CL_PERIPH, RS485_CL_PIN, GPIO_MODE_OUT_PP, GPIO_OSPEED_50MHZ, RESET);
|
|
|
|
/* 频闪灯 控制引脚 初始化 */
|
|
gpio_config(LED_STROBE_PERIPH, LED_STROBE_PIN, GPIO_MODE_OUT_PP, GPIO_OSPEED_50MHZ, RESET);
|
|
|
|
/* 音量 Level 1 - 4 检测引脚 初始化 */
|
|
gpio_config(VOLUME_1_PERIPH, VOLUME_1_PIN, GPIO_MODE_IN_FLOATING, GPIO_OSPEED_50MHZ, nullptr);
|
|
gpio_config(VOLUME_2_PERIPH, VOLUME_2_PIN, GPIO_MODE_IN_FLOATING, GPIO_OSPEED_50MHZ, nullptr);
|
|
gpio_config(VOLUME_3_PERIPH, VOLUME_3_PIN, GPIO_MODE_IN_FLOATING, GPIO_OSPEED_50MHZ, nullptr);
|
|
gpio_config(VOLUME_4_PERIPH, VOLUME_4_PIN, GPIO_MODE_IN_FLOATING, GPIO_OSPEED_50MHZ, nullptr);
|
|
|
|
/* 前门 检测引脚 初始化 */
|
|
gpio_interrupt_config(DOOR_FRONT_PERIPH, DOOR_FRONT_PIN, EXTI_TRIG_BOTH);
|
|
|
|
/* 后门 检测引脚 初始化 */
|
|
gpio_interrupt_config(DOOR_BACK_PERIPH, DOOR_BACK_PIN, EXTI_TRIG_BOTH);
|
|
|
|
/* 左转弯 检测引脚 初始化 */
|
|
gpio_interrupt_config(TURN_LEFT_PERIPH, TURN_LEFT_PIN, EXTI_TRIG_BOTH);
|
|
|
|
/* 右转弯 检测引脚 初始化 */
|
|
gpio_interrupt_config(TURN_RIGHT_PERIPH, TURN_RIGHT_PIN, EXTI_TRIG_BOTH);
|
|
|
|
/* 倒车 检测引脚 初始化 */
|
|
gpio_interrupt_config(REVERSING_PERIPH, REVERSING_PIN, EXTI_TRIG_BOTH);
|
|
|
|
/* 功放控制脚,默认开启 */
|
|
gpio_config(AMP_CTRL_PERIPH, AMP_CTRL_PIN, GPIO_MODE_OUT_PP, GPIO_OSPEED_50MHZ, SET);
|
|
|
|
/* DATA 控制脚 初始化 */
|
|
gpio_config(V58_DATA_PERIPH, V58_DATA_PIN, GPIO_MODE_OUT_PP, GPIO_OSPEED_50MHZ, RESET);
|
|
|
|
/* STATUS 控制脚 初始化 */
|
|
gpio_config(V58_STATUS_PERIPH, V58_STATUS_PIN, GPIO_MODE_IN_FLOATING, GPIO_OSPEED_50MHZ, nullptr);
|
|
|
|
iic_config(M62429_SDA_PERIPH, M62429_SDA_PIN, M62429_SCL_PERIPH, M62429_SCL_PIN);
|
|
|
|
/* CAN指示灯 控制引脚 初始化 */
|
|
gpio_config(LED_CAN_PERIPH, LED_CAN_PIN, GPIO_MODE_OUT_PP, GPIO_OSPEED_50MHZ, RESET);
|
|
|
|
/* 485指示灯 控制引脚 初始化 */
|
|
gpio_config(LED_DIAODU_PERIPH, LED_DIAODU_PIN, GPIO_MODE_OUT_PP, GPIO_OSPEED_50MHZ, RESET);
|
|
|
|
/* 运行指示灯 控制引脚 初始化 */
|
|
gpio_config(LED_RUN_PERIPH, LED_RUN_PIN, GPIO_MODE_OUT_PP, GPIO_OSPEED_50MHZ, RESET);
|
|
} |