|
|
@ -37,17 +37,17 @@ extern TComCtrl *g_ptUartCtrl; |
|
|
/*----------------------------------------------*
|
|
|
/*----------------------------------------------*
|
|
|
* 全局变量 * |
|
|
* 全局变量 * |
|
|
*----------------------------------------------*/ |
|
|
*----------------------------------------------*/ |
|
|
TComCtrl *g_ptrs485_1; |
|
|
TComCtrl *g_ptrs485_1 = NULL; |
|
|
TComCtrl *g_ptrs485_2; |
|
|
TComCtrl *g_ptrs485_2 = NULL; |
|
|
TComCtrl *g_ptrs485_3; |
|
|
TComCtrl *g_ptrs485_3 = NULL; |
|
|
TComCtrl *g_ptrs485_4; |
|
|
TComCtrl *g_ptrs485_4 = NULL; |
|
|
TComCtrl *g_ptlte_7S0; |
|
|
TComCtrl *g_ptlte_7S0 = NULL; |
|
|
TComCtrl *g_ptSbus; |
|
|
TComCtrl *g_ptSbus = NULL; |
|
|
TComCtrl *g_ptInterCall; |
|
|
TComCtrl *g_ptInterCall = NULL; |
|
|
TComCtrl *g_ptlpuart; |
|
|
TComCtrl *g_ptlpuart = NULL; |
|
|
|
|
|
|
|
|
TComCtrl *g_ptCAN1; |
|
|
TComCtrl *g_ptCAN1 = NULL; |
|
|
TComCtrl *g_ptCAN2; |
|
|
TComCtrl *g_ptCAN2 = NULL; |
|
|
|
|
|
|
|
|
CV_struct_define g_stCV = {0}; |
|
|
CV_struct_define g_stCV = {0}; |
|
|
/*----------------------------------------------*
|
|
|
/*----------------------------------------------*
|
|
|
@ -119,7 +119,7 @@ int RS485_4_Send(char *_pBuffer, uint32_t _iSize) |
|
|
return iRet; |
|
|
return iRet; |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
int LPUART_PV_Send(char *_pBuffer, uint32_t _iSize) |
|
|
int LPUART_Send(char *_pBuffer, uint32_t _iSize) |
|
|
{ |
|
|
{ |
|
|
TUartUserData *ptUartUserData = (TUartUserData *)g_ptlpuart->m_pUserData; |
|
|
TUartUserData *ptUartUserData = (TUartUserData *)g_ptlpuart->m_pUserData; |
|
|
int iRet = HAL_UART_Transmit(ptUartUserData->m_uart, (uint8_t *)_pBuffer, _iSize, 100); |
|
|
int iRet = HAL_UART_Transmit(ptUartUserData->m_uart, (uint8_t *)_pBuffer, _iSize, 100); |
|
|
@ -226,7 +226,7 @@ void HAL_FDCAN_RxFifo0Callback(FDCAN_HandleTypeDef *hfdcan, uint32_t RxFifo0ITs) |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
void Read_PV(void *argument) |
|
|
void lpuart_task(void *argument) |
|
|
{ |
|
|
{ |
|
|
char pcBuffer[64] = {0}; |
|
|
char pcBuffer[64] = {0}; |
|
|
|
|
|
|
|
|
@ -236,7 +236,7 @@ void Read_PV(void *argument) |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
void Read_motor(void *argument) |
|
|
void CAN1_task(void *argument) |
|
|
{ |
|
|
{ |
|
|
char pcBuffer[32] = {0}; |
|
|
char pcBuffer[32] = {0}; |
|
|
|
|
|
|
|
|
@ -246,12 +246,32 @@ void Read_motor(void *argument) |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
void Sbus_task(void *argument) |
|
|
|
|
|
{ |
|
|
|
|
|
char pcBuffer[52] = {0}; |
|
|
|
|
|
|
|
|
|
|
|
while (1) |
|
|
|
|
|
{ |
|
|
|
|
|
rd_ComRead(g_ptSbus, pcBuffer, 25); |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
void rs485_1_task(void *argument) |
|
|
|
|
|
{ |
|
|
|
|
|
char pcBuffer[64] = {0}; |
|
|
|
|
|
|
|
|
|
|
|
while(1) |
|
|
|
|
|
{ |
|
|
|
|
|
rd_ComRead(g_ptrs485_1, pcBuffer, 64); |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
extern void MotorTask(void *argument); |
|
|
extern void MotorTask(void *argument); |
|
|
extern int check_PV(char *_pBuffer, uint32_t _iSize); |
|
|
extern int check_PV(char *_pBuffer, uint32_t _iSize); |
|
|
extern void decode_PV(const char *buf, uint32_t _iSize); |
|
|
extern void decode_PV(const char *buf, uint32_t _iSize); |
|
|
extern void ground_manger_init(void); |
|
|
extern void ground_manger_init(void); |
|
|
extern void Custom_Task(void *argument); |
|
|
extern void Custom_Task(void *argument); |
|
|
void SendIV_Init(void); |
|
|
void client_setting_Init(void); |
|
|
void TL720D_Init(void); |
|
|
void TL720D_Init(void); |
|
|
void RBcore_Init(void); |
|
|
void RBcore_Init(void); |
|
|
void controller_init(void); |
|
|
void controller_init(void); |
|
|
@ -264,7 +284,7 @@ void Drv_InterfaceInit(void) |
|
|
MsgCenter_Init(); |
|
|
MsgCenter_Init(); |
|
|
GF_BSP_EEPROM_ReadBytes((uint8_t *)&g_stCV, GF_BSP_EEPROM_CV_struct_define_Start_Address, sizeof(CV_struct_define)); |
|
|
GF_BSP_EEPROM_ReadBytes((uint8_t *)&g_stCV, GF_BSP_EEPROM_CV_struct_define_Start_Address, sizeof(CV_struct_define)); |
|
|
|
|
|
|
|
|
SendIV_Init(); |
|
|
client_setting_Init(); |
|
|
// ground_manger_init();
|
|
|
// ground_manger_init();
|
|
|
|
|
|
|
|
|
const osThreadAttr_t Custom_attributes = { |
|
|
const osThreadAttr_t Custom_attributes = { |
|
|
@ -282,30 +302,40 @@ void Drv_InterfaceInit(void) |
|
|
}; |
|
|
}; |
|
|
(void)osThreadNew(MotorTask, NULL, &motor_task_attributes); |
|
|
(void)osThreadNew(MotorTask, NULL, &motor_task_attributes); |
|
|
|
|
|
|
|
|
const osThreadAttr_t Read_motor_attributes = { |
|
|
const osThreadAttr_t CAN1_task_attributes = { |
|
|
.name = "Read_motor", |
|
|
.name = "CAN1_task", |
|
|
.stack_size = THREAD_DEFAULT_STACK, |
|
|
.stack_size = THREAD_DEFAULT_STACK, |
|
|
.priority = (osPriority_t) osPriorityRealtime1, |
|
|
.priority = (osPriority_t) osPriorityRealtime1, |
|
|
}; |
|
|
}; |
|
|
(void)osThreadNew(Read_motor, NULL, &Read_motor_attributes); |
|
|
(void)osThreadNew(CAN1_task, NULL, &CAN1_task_attributes); |
|
|
|
|
|
|
|
|
RBcore_Init(); |
|
|
RBcore_Init(); |
|
|
|
|
|
|
|
|
controller_init(); |
|
|
controller_init(); |
|
|
|
|
|
|
|
|
TUartUserData *ptUartUserData = UART_userdata_init(0, -1, 512); |
|
|
const osThreadAttr_t Sbus_task_attributes = { |
|
|
g_ptlpuart = rd_ComCreate(check_PV, decode_PV, LPUART_PV_Send, ptUartUserData->m_buf_size, ptUartUserData); |
|
|
.name = "Sbus_task", |
|
|
UART_IT_init(g_ptlpuart); |
|
|
.stack_size = THREAD_DEFAULT_STACK, |
|
|
rd_ComSetRecvTime(g_ptlpuart, 1500);// PV平均一到两秒发一条,这里超时时间设置为1.5秒
|
|
|
.priority = (osPriority_t) osPriorityRealtime1, |
|
|
|
|
|
}; |
|
|
|
|
|
(void)osThreadNew(Sbus_task, NULL, &Sbus_task_attributes); |
|
|
|
|
|
|
|
|
const osThreadAttr_t Read_PV_attributes = { |
|
|
const osThreadAttr_t lpuart_task_attributes = { |
|
|
.name = "Read_PV", |
|
|
.name = "lpuart_task", |
|
|
.stack_size = THREAD_DEFAULT_STACK, |
|
|
.stack_size = THREAD_DEFAULT_STACK, |
|
|
.priority = (osPriority_t) osPriorityRealtime1, |
|
|
.priority = (osPriority_t) osPriorityRealtime1, |
|
|
}; |
|
|
}; |
|
|
(void)osThreadNew(Read_PV, NULL, &Read_PV_attributes); |
|
|
(void)osThreadNew(lpuart_task, NULL, &lpuart_task_attributes); |
|
|
|
|
|
|
|
|
TL720D_Init(); |
|
|
TL720D_Init(); |
|
|
|
|
|
|
|
|
|
|
|
const osThreadAttr_t rs485_1_task_attributes = { |
|
|
|
|
|
.name = "rs485_1_task", |
|
|
|
|
|
.stack_size = THREAD_DEFAULT_STACK, |
|
|
|
|
|
.priority = (osPriority_t) osPriorityRealtime1, |
|
|
|
|
|
}; |
|
|
|
|
|
(void)osThreadNew(rs485_1_task, NULL, &rs485_1_task_attributes); |
|
|
|
|
|
|
|
|
daemon_Init(); |
|
|
daemon_Init(); |
|
|
|
|
|
|
|
|
//Timer_Init();
|
|
|
//Timer_Init();
|
|
|
|