Controller Area Network.
More...
|
enum | can_result_t {
CAN_RESULT_OK
,
CAN_RESULT_INVALID
,
CAN_RESULT_UNSUPPORTED
,
CAN_RESULT_BUSY
,
CAN_RESULT_OVERFLOW
,
CAN_RESULT_OVERLOAD
,
CAN_RESULT_BIT_ERROR
,
CAN_RESULT_BIT_STUFF_ERROR
,
CAN_RESULT_FRAME_ERROR
,
CAN_RESULT_ACK_ERROR
,
CAN_RESULT_CRC_ERROR
,
CAN_RESULT_ERR
,
TOTAL_CAN_RESULT
} |
|
enum | can_status_t {
CAN_STATUS_UNKNOWN
,
CAN_STATUS_OK
,
CAN_STATUS_BUSY
,
CAN_STATUS_STOP
,
CAN_STATUS_SENDING
,
CAN_STATUS_RECEIVING
,
CAN_STATUS_ERR
,
TOTAL_CAN_STATUS
} |
|
enum | can_frame_t {
CAN_FRAME_DATA
,
CAN_FRAME_REMOTE
,
CAN_FRAME_ERROR
,
CAN_FRAME_OVERLOAD
,
TOTAL_CAN_FRAME
} |
|
enum | can_mode_t {
CAN_MODE_CLASSIC
,
CAN_MODE_FD
,
CAN_MODE_LISTEN
,
CAN_MODE_RESTRICTED
,
CAN_MODE_INTERNAL_LOOP
,
CAN_MODE_EXTERNAL_LOOP
,
TOTAL_CAN_MODE
} |
|
enum | can_baudrate_t {
CAN_BAUDRATE_10KBPS
,
CAN_BAUDRATE_20KBPS
,
CAN_BAUDRATE_50KBPS
,
CAN_BAUDRATE_125KBPS
,
CAN_BAUDRATE_250KBPS
,
CAN_BAUDRATE_500KBPS
,
CAN_BAUDRATE_1MBPS
,
CAN_BAUDRATE_2MBPS
,
CAN_BAUDRATE_5MBPS
,
CAN_BAUDRATE_8MBPS
,
CAN_BAUDRATE_10MBPS
,
CAN_BAUDRATE_12MBPS
,
TOTAL_CAN_BAUDRATE
} |
|
|
can_result_t | hal_can_init (can_handle_t *handle, const can_channel_attr_t attr) |
| Configure CAN channel with specific attributes.
|
|
can_result_t | hal_can_write (can_handle_t *handle, const uint32_t id, const can_frame_t frame, const uint8_t *tx_buffer, const size_t len) |
| Write data to CAN bus.
|
|
can_result_t | hal_can_read (can_handle_t *handle, uint32_t *id, can_frame_t *frame, uint8_t *rx_buffer, const size_t len) |
| Read data from CAN bus.
|
|
can_result_t | hal_can_stop (can_handle_t *handle) |
| Stop CAN bus operation.
|
|
can_result_t | hal_can_mutex_take (const uint8_t channel, const uint32_t timeout_ms) |
| Try acquire RTOS mutex for specified channel.
|
|
can_result_t | hal_can_mutex_give (const uint8_t channel) |
| Release RTOS mutex for specified channel.
|
|
Controller Area Network.
◆ can_baudrate_t
#include <can/public_inc/hal_can.h>
Enumerator |
---|
CAN_BAUDRATE_10KBPS | |
CAN_BAUDRATE_20KBPS | |
CAN_BAUDRATE_50KBPS | |
CAN_BAUDRATE_125KBPS | |
CAN_BAUDRATE_250KBPS | |
CAN_BAUDRATE_500KBPS | |
CAN_BAUDRATE_1MBPS | |
CAN_BAUDRATE_2MBPS | |
CAN_BAUDRATE_5MBPS | |
CAN_BAUDRATE_8MBPS | |
CAN_BAUDRATE_10MBPS | |
CAN_BAUDRATE_12MBPS | |
TOTAL_CAN_BAUDRATE | |
◆ can_frame_t
#include <can/public_inc/hal_can.h>
Enumerator |
---|
CAN_FRAME_DATA | |
CAN_FRAME_REMOTE | |
CAN_FRAME_ERROR | |
CAN_FRAME_OVERLOAD | |
TOTAL_CAN_FRAME | |
◆ can_mode_t
#include <can/public_inc/hal_can.h>
Enumerator |
---|
CAN_MODE_CLASSIC | |
CAN_MODE_FD | |
CAN_MODE_LISTEN | |
CAN_MODE_RESTRICTED | |
CAN_MODE_INTERNAL_LOOP | |
CAN_MODE_EXTERNAL_LOOP | |
TOTAL_CAN_MODE | |
◆ can_result_t
#include <can/public_inc/hal_can.h>
Enumerator |
---|
CAN_RESULT_OK | No error.
|
CAN_RESULT_INVALID | Operation invalid.
|
CAN_RESULT_UNSUPPORTED | Operation not supported.
|
CAN_RESULT_BUSY | Bus busy.
|
CAN_RESULT_OVERFLOW | FIFO overflow.
|
CAN_RESULT_OVERLOAD | Bus overload.
|
CAN_RESULT_BIT_ERROR | Data bit error.
|
CAN_RESULT_BIT_STUFF_ERROR | Bit stuffing error.
|
CAN_RESULT_FRAME_ERROR | CAN frame error.
|
CAN_RESULT_ACK_ERROR | Receive device not acknowledge.
|
CAN_RESULT_CRC_ERROR | Message CRC error.
|
CAN_RESULT_ERR | Error occured.
|
TOTAL_CAN_RESULT | |
◆ can_status_t
#include <can/public_inc/hal_can.h>
Enumerator |
---|
CAN_STATUS_UNKNOWN | Unknown bus status.
|
CAN_STATUS_OK | No error.
|
CAN_STATUS_BUSY | Bus busy.
|
CAN_STATUS_STOP | Channel stopped.
|
CAN_STATUS_SENDING | Channel sending.
|
CAN_STATUS_RECEIVING | Channel receiving.
|
CAN_STATUS_ERR | Error occured.
|
TOTAL_CAN_STATUS | |
◆ hal_can_init()
#include <can/public_inc/hal_can.h>
Configure CAN channel with specific attributes.
.tx_pin = CAN_TX_PIN,
.low_power_enable = false
};
can_result_t
Definition hal_can.h:39
can_result_t hal_can_init(can_handle_t *handle, const can_channel_attr_t attr)
Configure CAN channel with specific attributes.
@ CAN_BAUDRATE_2MBPS
Definition hal_can.h:100
@ CAN_BAUDRATE_500KBPS
Definition hal_can.h:98
@ CAN_MODE_FD
Definition hal_can.h:82
gpio_pin_t rx_pin
CAN low (CANL)
Definition hal_can.h:111
uint8_t channel
CAN channel.
Definition hal_can.h:122
- Parameters
-
[in,out] | handle | CAN handler |
[in] | attr | CAN channel attributes |
- Return values
-
CAN_RESULT_OK | Success configure CAN channel |
CAN_RESULT_INVALID | Configuration attributes invalid |
CAN_RESULT_UNSUPPORTED | Operation not supported |
CAN_RESULT_ERR | Failed configure CAN channel |
◆ hal_can_mutex_give()
#include <can/public_inc/hal_can.h>
Release RTOS mutex for specified channel.
can_result_t hal_can_mutex_give(const uint8_t channel)
Release RTOS mutex for specified channel.
- Parameters
-
[in] | channel | CAN channel's mutex to be released |
- Return values
-
CAN_RESULT_OK | Success release mutex |
CAN_RESULT_INVALID | Invalid channel |
CAN_RESULT_UNSUPPORTED | Operation not supported |
CAN_RESULT_ERR | Failed release mutex |
◆ hal_can_mutex_take()
can_result_t hal_can_mutex_take |
( |
const uint8_t | channel, |
|
|
const uint32_t | timeout_ms ) |
#include <can/public_inc/hal_can.h>
Try acquire RTOS mutex for specified channel.
can_result_t hal_can_mutex_take(const uint8_t channel, const uint32_t timeout_ms)
Try acquire RTOS mutex for specified channel.
- Parameters
-
[in] | channel | CAN channel's mutex to be locked |
[in] | timeout_ms | Mutex acquiring timeout in milliseconds |
- Return values
-
CAN_RESULT_OK | Success acquire mutex |
CAN_RESULT_INVALID | Invalid channel |
CAN_RESULT_UNSUPPORTED | Operation not supported |
CAN_RESULT_ERR | Failed acquire mutex |
◆ hal_can_read()
#include <can/public_inc/hal_can.h>
Read data from CAN bus.
uint32_t can_id = 0U;
uint8_t rx_buffer[8] = { 0U };
&can_id,
&frame,
rx_buffer,
sizeof( rx_buffer ) );
can_frame_t
Definition hal_can.h:70
can_result_t hal_can_read(can_handle_t *handle, uint32_t *id, can_frame_t *frame, uint8_t *rx_buffer, const size_t len)
Read data from CAN bus.
- Parameters
-
[in,out] | handle | CAN handler |
[out] | id | Received CAN identifier |
[out] | frame | Received CAN frame type |
[out] | rx_buffer | Receiving buffer |
[in] | len | Buffer size |
- Return values
-
CAN_RESULT_OK | Success read data from CAN bus |
CAN_RESULT_INVALID | Parameters invalid |
CAN_RESULT_ERR | Failed read data from CAN bus |
◆ hal_can_stop()
#include <can/public_inc/hal_can.h>
Stop CAN bus operation.
can_result_t hal_can_stop(can_handle_t *handle)
Stop CAN bus operation.
- Parameters
-
[in,out] | handle | CAN handler |
- Return values
-
CAN_RESULT_OK | Success stopped CAN channel |
CAN_RESULT_UNSUPPORTED | Feature unsupported |
CAN_RESULT_ERR | Failed to stop CAN channel |
◆ hal_can_write()
#include <can/public_inc/hal_can.h>
Write data to CAN bus.
const uint32_t can_id = 0x0A;
uint8_t tx_buffer[8] = { 1,2,3,4,5,6,7,8 };
can_id,
tx_buffer,
sizeof( tx_buffer ) );
can_result_t hal_can_write(can_handle_t *handle, const uint32_t id, const can_frame_t frame, const uint8_t *tx_buffer, const size_t len)
Write data to CAN bus.
@ CAN_FRAME_DATA
Definition hal_can.h:71
- Parameters
-
[in,out] | handle | CAN handler |
[in] | id | CAN transmit identifier |
[in] | frame | CAN frame type |
[in] | tx_buffer | Buffer to be transmitted |
[in] | len | Buffer size |
- Return values
-
CAN_RESULT_OK | Success write data to CAN bus |
CAN_RESULT_INVALID | Parameters invalid |
CAN_RESULT_ERR | Failed write data to CAN bus |