39 lines
1.1 KiB
C
39 lines
1.1 KiB
C
/** STM32F407 bxCAN port for SETGUI through CAN485 DevBoard_V1. */
|
|
#ifndef SET_DEVBOARD_V1_STM32F407_H
|
|
#define SET_DEVBOARD_V1_STM32F407_H
|
|
|
|
#include "stm32f4xx_hal.h"
|
|
#include "pcan_modbus_server.h"
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
|
|
typedef void (*set_devboard_v1_unhandled_fn)(void *user,
|
|
const CAN_RxHeaderTypeDef *header,
|
|
const uint8_t data[8]);
|
|
|
|
typedef struct {
|
|
CAN_HandleTypeDef *can;
|
|
pcan_modbus_server_t server;
|
|
set_devboard_v1_unhandled_fn unhandled;
|
|
void *unhandled_user;
|
|
uint32_t rx_frames;
|
|
uint32_t tx_frames;
|
|
uint32_t tx_errors;
|
|
} set_devboard_v1_stm32f407_t;
|
|
|
|
bool set_devboard_v1_stm32f407_init(
|
|
set_devboard_v1_stm32f407_t *port, CAN_HandleTypeDef *can,
|
|
uint8_t device_type, uint8_t device_id,
|
|
pcan_modbus_read_fn read, pcan_modbus_write_fn write, void *register_user,
|
|
set_devboard_v1_unhandled_fn unhandled, void *unhandled_user);
|
|
|
|
size_t set_devboard_v1_stm32f407_poll(set_devboard_v1_stm32f407_t *port);
|
|
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif
|
|
|
|
#endif
|