template<auto * Handle, class HandleType = decltype(Handle)>
class stm32rcos::peripheral::Can< Handle, HandleType >
#include <cstdio>
extern UART_HandleTypeDef huart2;
extern FDCAN_HandleTypeDef hfdcan1;
extern "C" void main_thread(void *) {
.id = 0x0,
.mask = 0x0,
.ide = false,
};
.id = 0x3,
.ide = false,
.dlc = 1,
.data = {0x0},
};
for (int i = 0; i < 10; ++i) {
can1.
transmit(tx_message, osWaitForever);
}
while (true) {
CanMessage rx_message;
if (rx_queue.pop(rx_message, osWaitForever)) {
printf(
"id: %d, data: %d\r\n", (
int)rx_message.
id,
(
int)rx_message.
data[0]);
}
osDelay(10);
}
}
bool attach_rx_queue(const CanFilter &filter, core::Queue< CanMessage > &queue) override
bool transmit(const CanMessage &msg, uint32_t timeout) override
bool enable_stdout(UartBase &uart)
Definition can_filter.hpp:8
Definition can_message.hpp:9
std::array< uint8_t, 8 > data
Definition can_message.hpp:13
uint32_t id
Definition can_message.hpp:10