#ifndef _P_SERIAL_MGR_H_ #define _P_SERIAL_MGR_H_ #include "p_cbuffer.h" #include "stm32l4xx_hal.h" #include // start byte // src_addr {1} + // dest_addr {1} + // frame_length {1} + // checksum {1} + // frame_data {510} -- making it 510 instead of 511 so it is easily divisible #define MAX_MESSAGE_LEN (516) #define MAX_FRAME_DATA_LEN (510) // motor controller #define DEVICE_ADDR (0x02) // pi #define MASTER_ADDR (0x01) typedef struct serial_pkt_t { uint8_t *src_addr; uint8_t *dest_addr; uint8_t *frame_data_len; uint8_t *checksum; uint8_t *frame_data; uint8_t data[MAX_MESSAGE_LEN]; int msg_len; } serial_pkt_t; void p_serial_mgr_init(UART_HandleTypeDef *huart, DMA_HandleTypeDef *hdma); void p_serial_mgr_service(void); void p_serial_mgr_start(); #endif