Astra MCU SDK Peripheral Driver Library

CAN APIs

can_status_en can_init (can_instance_en id)
can_status_en can_configure (can_instance_en id, const can_config_t *config)
can_status_en can_deinit (can_instance_en id)
can_status_en can_enable (can_instance_en id)
can_status_en can_disable (can_instance_en id)
can_status_en can_tx (can_instance_en id, bool high_priority, const can_tx_frame_t *frame, const can_tx_schedule_time_t *time, can_tx_handler_t callback, void *callback_param)
can_status_en can_rx_subscribe (can_instance_en id, const can_rx_filter_t *filter, can_rx_handler_t callback, void *callback_param, int *subid)
can_status_en can_rx_unsubscribe (can_instance_en id, int sub_id)
can_status_en can_set_speed (can_instance_en id, int cl, int fd, int cl_sample, int fd_sample)
can_status_en can_set_timestamp_sample_handler (can_instance_en id, can_timestamp_handler_t callback, void *callback_param)
can_status_en can_get_timestamp (can_instance_en id, uint32_t *ts_l, uint32_t *ts_h, uint32_t *ts_res_ns)
can_status_en can_set_driver_buffer (can_instance_en id, void *buffer, size_t size)
can_status_en can_enable_interrupt (can_instance_en id, uint32_t mask)
can_status_en can_enable_all_interrupts (can_instance_en id)
can_status_en can_disable_interrupt (can_instance_en id, uint32_t mask)
can_status_en can_disable_all_interrupts (can_instance_en id)
can_status_en can_clear_interrupt (can_instance_en id, uint32_t mask)
can_status_en can_clear_all_interrupts (can_instance_en id)

can_init()

Initialize a CAN instance and reset software context.

Return: can_status_en.

can_configure()

Configure resources and runtime controller state.

Return values: CAN_OK, CAN_ERROR_PARAMETER, CAN_ERROR_NOT_INITIALIZED, CAN_ERROR_BUSY.

can_deinit()

Release resources and deinitialize CAN instance.

Return values: CAN_OK, CAN_ERROR_PARAMETER.

can_enable()

Enable controller operation and bus participation.

Return values: CAN_OK, CAN_ERROR_PARAMETER, CAN_ERROR_NOT_INITIALIZED, CAN_ERROR_BUS_OFF.

can_disable()

Disable controller operation.

Return values: CAN_OK, CAN_ERROR_PARAMETER, CAN_ERROR_NOT_INITIALIZED.

can_tx()

Queue a CAN/CAN FD frame for immediate or scheduled transmission.

Return values: CAN_OK, CAN_ERROR_NOT_RUNNING, CAN_ERROR_NOT_INITIALIZED, CAN_ERROR_NO_RESOURCE, CAN_ERROR_PARAMETER.

can_rx_subscribe()

Install an RX filter and register callback subscription.

Return values: CAN_OK, CAN_ERROR_NO_RESOURCE, CAN_ERROR_PARAMETER, CAN_ERROR_NOT_INITIALIZED.

can_rx_unsubscribe()

Remove a previously installed RX subscription.

Return values: CAN_OK, CAN_ERROR_PARAMETER.

can_set_speed()

Update classical/FD bitrates and sampling points.

Return values: CAN_OK, CAN_ERROR_PARAMETER, CAN_ERROR_BUSY, CAN_ERROR_NOT_INITIALIZED, CAN_ERROR_UNSUPPORTED.

can_set_timestamp_sample_handler()

Register callback for timestamp sample events.

Return values: CAN_OK, CAN_ERROR_PARAMETER.

can_get_timestamp()

Read timestamp and timestamp resolution.

Return values: CAN_OK, CAN_ERROR_TIMEOUT, CAN_ERROR_PARAMETER.

can_set_driver_buffer()

Attach externally allocated aligned driver buffer block.

Return values: CAN_OK, CAN_ERROR_PARAMETER, CAN_ERROR_BUSY.

can_enable_interrupt()

Enable selected hardware interrupt mask bits.

Return values: CAN_OK, CAN_ERROR_PARAMETER.

can_enable_all_interrupts()

Enable all hardware interrupts.

Return values: CAN_OK, CAN_ERROR_PARAMETER.

can_disable_interrupt()

Disable selected hardware interrupt mask bits.

Return values: CAN_OK, CAN_ERROR_PARAMETER.

can_disable_all_interrupts()

Disable all hardware interrupts.

Return values: CAN_OK, CAN_ERROR_PARAMETER.

can_clear_interrupt()

Clear selected pending interrupt bits.

Return values: CAN_OK, CAN_ERROR_PARAMETER.

can_clear_all_interrupts()

Clear all pending interrupts.

Return values: CAN_OK, CAN_ERROR_PARAMETER.