14#include "mcu_periph/can_arch.h"
24#define USE_FDCAN_DRIVER ((STM32_CAN_USE_FDCAN1) || (STM32_CAN_USE_FDCAN2) || (STM32_CAN_USE_FDCAN3))
47 .can_baudrate = 1000000U,
60 .can_baudrate = 1000000U,
109 if(rx_frame.common.XTD) {
112 id = rx_frame.std.SID;
114 if(rx_frame.common.RTR) {
117 if(rx_frame.common.ESI) {
142 if(rx_frame.common.ESI) {
165 frame.common.RTR = 1;
168 frame.common.XTD = 1;
227 if (
cas->can_baudrate < 1) {
237 static const int MaxBS1 = 16;
238 static const int MaxBS2 = 8;
276 if ((prescaler < 1U) || (prescaler > 1024U)) {
uint8_t can_dlc_to_len(uint8_t dlc)
uint8_t can_len_to_dlc(uint8_t len)
#define CAN_NB_CALLBACKS_MAX
static bool canConfigureIface(struct can_arch_periph *cas)
Try to compute the timing registers for the can interface and set the configuration.
static void can_thd_rx(void *arg)
static void can_start(struct can_periph *canp)
int can_transmit_frame(struct pprzcan_frame *txframe, struct pprzaddr_can *addr)
static THD_WORKING_AREA(wa_thd_spi1, SPI_THREAD_STACK_SIZE)
Architecture independent timing functions.
unsigned short uint16_t
Typedef defining 16 bit unsigned short type.
unsigned int uint32_t
Typedef defining 32 bit unsigned int type.
unsigned char uint8_t
Typedef defining 8 bit unsigned char type.