mbed library sources. Supersedes mbed-src.
Dependents: Nucleo_Hello_Encoder BLE_iBeaconScan AM1805_DEMO DISCO-F429ZI_ExportTemplate1 ... more
CAN Class Reference
[Drivers]
A can bus client, used for communicating with can devices. More...
#include <CAN.h>
Inherits NonCopyable< CAN >, and NonCopyable< CAN >.
Public Member Functions | |
CAN (PinName rd, PinName td) | |
Creates a CAN interface connected to specific pins. | |
CAN (PinName rd, PinName td, int hz) | |
Initialize CAN interface and set the frequency. | |
int | frequency (int hz) |
Set the frequency of the CAN interface. | |
int | write (CANMessage msg) |
Write a CANMessage to the bus. | |
int | read (CANMessage &msg, int handle=0) |
Read a CANMessage from the bus. | |
void | reset () |
Reset CAN interface. | |
void | monitor (bool silent) |
Puts or removes the CAN interface into silent monitoring mode. | |
int | mode (Mode mode) |
Change CAN operation to the specified mode. | |
int | filter (unsigned int id, unsigned int mask, CANFormat format=CANAny, int handle=0) |
Filter out incoming messages. | |
unsigned char | rderror () |
Detects read errors - Used to detect read overflow errors. | |
unsigned char | tderror () |
Detects write errors - Used to detect write overflow errors. | |
void | attach (Callback< void()> func, IrqType type=RxIrq) |
Attach a function to call whenever a CAN frame received interrupt is generated. | |
template<typename T > | |
MBED_DEPRECATED_SINCE ("mbed-os-5.1","The attach function does not support cv-qualifiers. Replaced by ""attach(callback(obj, method), type).") void attach(T *obj | |
Attach a member function to call whenever a CAN frame received interrupt is generated. | |
CAN (PinName rd, PinName td) | |
Creates a CAN interface connected to specific pins. | |
CAN (PinName rd, PinName td, int hz) | |
Initialize CAN interface and set the frequency. | |
int | frequency (int hz) |
Set the frequency of the CAN interface. | |
int | write (CANMessage msg) |
Write a CANMessage to the bus. | |
int | read (CANMessage &msg, int handle=0) |
Read a CANMessage from the bus. | |
void | reset () |
Reset CAN interface. | |
void | monitor (bool silent) |
Puts or removes the CAN interface into silent monitoring mode. | |
int | mode (Mode mode) |
Change CAN operation to the specified mode. | |
int | filter (unsigned int id, unsigned int mask, CANFormat format=CANAny, int handle=0) |
Filter out incoming messages. | |
unsigned char | rderror () |
Detects read errors - Used to detect read overflow errors. | |
unsigned char | tderror () |
Detects write errors - Used to detect write overflow errors. | |
void | attach (Callback< void()> func, IrqType type=RxIrq) |
Attach a function to call whenever a CAN frame received interrupt is generated. | |
template<typename T > | |
MBED_DEPRECATED_SINCE ("mbed-os-5.1","The attach function does not support cv-qualifiers. Replaced by ""attach(callback(obj, method), type).") void attach(T *obj | |
Attach a member function to call whenever a CAN frame received interrupt is generated. | |
Private Member Functions | |
MBED_DEPRECATED ("Invalid copy construction of a NonCopyable resource.") NonCopyable(const NonCopyable &) | |
NonCopyable copy constructor. | |
MBED_DEPRECATED ("Invalid copy assignment of a NonCopyable resource.") NonCopyable &operator | |
NonCopyable copy assignment operator. | |
MBED_DEPRECATED ("Invalid copy construction of a NonCopyable resource.") NonCopyable(const NonCopyable &) | |
NonCopyable copy constructor. | |
MBED_DEPRECATED ("Invalid copy assignment of a NonCopyable resource.") NonCopyable &operator | |
NonCopyable copy assignment operator. |
Detailed Description
A can bus client, used for communicating with can devices.
Definition at line 86 of file cmsis/BUILD/mbed/drivers/CAN.h.
Constructor & Destructor Documentation
CAN | ( | PinName | rd, |
PinName | td | ||
) |
Creates a CAN interface connected to specific pins.
- Parameters:
-
rd read from transmitter td transmit to transmitter
Example:
#include "mbed.h" Ticker ticker; DigitalOut led1(LED1); DigitalOut led2(LED2); //The constructor takes in RX, and TX pin respectively. //These pins, for this example, are defined in mbed_app.json CAN can1(MBED_CONF_APP_CAN1_RD, MBED_CONF_APP_CAN1_TD); CAN can2(MBED_CONF_APP_CAN2_RD, MBED_CONF_APP_CAN2_TD); char counter = 0; void send() { if(can1.write(CANMessage(1337, &counter, 1))) { printf("Message sent: %d\n", counter); counter++; } led1 = !led1; } int main() { ticker.attach(&send, 1); CANMessage msg; while(1) { if(can2.read(msg)) { printf("Message received: %d\n\n", msg.data[0]); led2 = !led2; } wait(0.2); } }
CAN | ( | PinName | rd, |
PinName | td, | ||
int | hz | ||
) |
CAN | ( | PinName | rd, |
PinName | td | ||
) |
Creates a CAN interface connected to specific pins.
- Parameters:
-
rd read from transmitter td transmit to transmitter
Example:
#include "mbed.h" Ticker ticker; DigitalOut led1(LED1); DigitalOut led2(LED2); //The constructor takes in RX, and TX pin respectively. //These pins, for this example, are defined in mbed_app.json CAN can1(MBED_CONF_APP_CAN1_RD, MBED_CONF_APP_CAN1_TD); CAN can2(MBED_CONF_APP_CAN2_RD, MBED_CONF_APP_CAN2_TD); char counter = 0; void send() { if(can1.write(CANMessage(1337, &counter, 1))) { printf("Message sent: %d\n", counter); counter++; } led1 = !led1; } int main() { ticker.attach(&send, 1); CANMessage msg; while(1) { if(can2.read(msg)) { printf("Message received: %d\n\n", msg.data[0]); led2 = !led2; } wait(0.2); } }
CAN | ( | PinName | rd, |
PinName | td, | ||
int | hz | ||
) |
Initialize CAN interface and set the frequency.
- Parameters:
-
rd the read pin td the transmit pin hz the bus frequency in hertz
Member Function Documentation
void attach | ( | Callback< void()> | func, |
IrqType | type = RxIrq |
||
) |
Attach a function to call whenever a CAN frame received interrupt is generated.
This function locks the deep sleep while a callback is attached
- Parameters:
-
func A pointer to a void function, or 0 to set as none type Which CAN interrupt to attach the member function to (CAN::RxIrq for message received, CAN::TxIrq for transmitted or aborted, CAN::EwIrq for error warning, CAN::DoIrq for data overrun, CAN::WuIrq for wake-up, CAN::EpIrq for error passive, CAN::AlIrq for arbitration lost, CAN::BeIrq for bus error)
void attach | ( | Callback< void()> | func, |
IrqType | type = RxIrq |
||
) |
Attach a function to call whenever a CAN frame received interrupt is generated.
This function locks the deep sleep while a callback is attached
- Parameters:
-
func A pointer to a void function, or 0 to set as none type Which CAN interrupt to attach the member function to (CAN::RxIrq for message received, CAN::TxIrq for transmitted or aborted, CAN::EwIrq for error warning, CAN::DoIrq for data overrun, CAN::WuIrq for wake-up, CAN::EpIrq for error passive, CAN::AlIrq for arbitration lost, CAN::BeIrq for bus error)
int filter | ( | unsigned int | id, |
unsigned int | mask, | ||
CANFormat | format = CANAny , |
||
int | handle = 0 |
||
) |
int filter | ( | unsigned int | id, |
unsigned int | mask, | ||
CANFormat | format = CANAny , |
||
int | handle = 0 |
||
) |
Filter out incoming messages.
- Parameters:
-
id the id to filter on mask the mask applied to the id format format to filter on (Default CANAny) handle message filter handle (Optional)
- Returns:
- 0 if filter change failed or unsupported, new filter handle if successful
int frequency | ( | int | hz ) |
int frequency | ( | int | hz ) |
Set the frequency of the CAN interface.
- Parameters:
-
hz The bus frequency in hertz
- Returns:
- 1 if successful, 0 otherwise
MBED_DEPRECATED_SINCE | ( | "mbed-os-5.1" | , |
"The attach function does not support cv-qualifiers. Replaced by ""attach(callback(obj, method), type)." | |||
) |
Attach a member function to call whenever a CAN frame received interrupt is generated.
- Parameters:
-
obj pointer to the object to call the member function on method pointer to the member function to be called type Which CAN interrupt to attach the member function to (CAN::RxIrq for message received, TxIrq for transmitted or aborted, EwIrq for error warning, DoIrq for data overrun, WuIrq for wake-up, EpIrq for error passive, AlIrq for arbitration lost, BeIrq for bus error)
MBED_DEPRECATED_SINCE | ( | "mbed-os-5.1" | , |
"The attach function does not support cv-qualifiers. Replaced by ""attach(callback(obj, method), type)." | |||
) |
Attach a member function to call whenever a CAN frame received interrupt is generated.
- Parameters:
-
obj pointer to the object to call the member function on method pointer to the member function to be called type Which CAN interrupt to attach the member function to (CAN::RxIrq for message received, TxIrq for transmitted or aborted, EwIrq for error warning, DoIrq for data overrun, WuIrq for wake-up, EpIrq for error passive, AlIrq for arbitration lost, BeIrq for bus error)
int mode | ( | Mode | mode ) |
Change CAN operation to the specified mode.
- Parameters:
-
mode The new operation mode (CAN::Normal, CAN::Silent, CAN::LocalTest, CAN::GlobalTest, CAN::SilentTest)
- Returns:
- 0 if mode change failed or unsupported, 1 if mode change was successful
int mode | ( | Mode | mode ) |
void monitor | ( | bool | silent ) |
Puts or removes the CAN interface into silent monitoring mode.
- Parameters:
-
silent boolean indicating whether to go into silent mode or not
void monitor | ( | bool | silent ) |
unsigned char rderror | ( | ) |
Detects read errors - Used to detect read overflow errors.
- Returns:
- number of read errors
unsigned char rderror | ( | ) |
int read | ( | CANMessage & | msg, |
int | handle = 0 |
||
) |
Read a CANMessage from the bus.
- Parameters:
-
msg A CANMessage to read to. handle message filter handle (0 for any message)
- Returns:
- 0 if no message arrived, 1 if message arrived
int read | ( | CANMessage & | msg, |
int | handle = 0 |
||
) |
Read a CANMessage from the bus.
- Parameters:
-
msg A CANMessage to read to. handle message filter handle (0 for any message)
- Returns:
- 0 if no message arrived, 1 if message arrived
void reset | ( | ) |
Reset CAN interface.
To use after error overflow.
void reset | ( | ) |
unsigned char tderror | ( | ) |
unsigned char tderror | ( | ) |
Detects write errors - Used to detect write overflow errors.
- Returns:
- number of write errors
int write | ( | CANMessage | msg ) |
Write a CANMessage to the bus.
- Parameters:
-
msg The CANMessage to write.
- Returns:
- 0 if write failed, 1 if write was successful
int write | ( | CANMessage | msg ) |
Write a CANMessage to the bus.
- Parameters:
-
msg The CANMessage to write.
- Returns:
- 0 if write failed, 1 if write was successful
Generated on Tue Jul 12 2022 20:41:17 by 1.7.2