2015-01-14 07:09:08 -08:00
|
|
|
#ifndef _CAN_H
|
|
|
|
#define _CAN_H
|
|
|
|
|
|
|
|
enum can_bitrate {
|
2015-05-15 11:20:10 -07:00
|
|
|
CAN_BITRATE_10K,
|
|
|
|
CAN_BITRATE_20K,
|
2015-05-14 14:41:28 -07:00
|
|
|
CAN_BITRATE_50K,
|
2015-05-15 11:20:10 -07:00
|
|
|
CAN_BITRATE_100K,
|
|
|
|
CAN_BITRATE_125K,
|
|
|
|
CAN_BITRATE_250K,
|
|
|
|
CAN_BITRATE_500K,
|
|
|
|
CAN_BITRATE_750K,
|
|
|
|
CAN_BITRATE_1000K,
|
2015-01-14 07:09:08 -08:00
|
|
|
};
|
|
|
|
|
|
|
|
enum can_bus_state {
|
|
|
|
OFF_BUS,
|
|
|
|
ON_BUS
|
|
|
|
};
|
|
|
|
|
|
|
|
void can_init(void);
|
|
|
|
void can_enable(void);
|
|
|
|
void can_disable(void);
|
|
|
|
void can_set_bitrate(enum can_bitrate bitrate);
|
2016-01-25 11:16:45 -08:00
|
|
|
void can_set_silent(uint8_t silent);
|
2018-12-31 11:24:46 -08:00
|
|
|
void can_set_autoretransmit(uint8_t autoretransmit);
|
2016-08-12 14:12:52 -07:00
|
|
|
uint32_t can_tx(CanTxMsgTypeDef *tx_msg);
|
2018-10-07 11:19:58 -07:00
|
|
|
uint32_t can_rx(CanRxMsgTypeDef *rx_msg, uint32_t timeout);
|
2016-08-16 19:15:20 -07:00
|
|
|
|
|
|
|
void can_process(void);
|
|
|
|
void can_preptx(CanTxMsgTypeDef *tx_msg);
|
|
|
|
|
2016-01-25 11:16:45 -08:00
|
|
|
uint8_t is_can_msg_pending(uint8_t fifo);
|
2016-08-13 11:22:24 -07:00
|
|
|
CAN_HandleTypeDef* can_gethandle(void);
|
2015-01-14 07:09:08 -08:00
|
|
|
|
|
|
|
#endif // _CAN_H
|