Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
CAN Class Reference
A can bus client, used for communicating with can devices. More...
#include <CAN.h>
Public Member Functions | |
CAN (PinName rd, PinName td) | |
Creates an CAN interface connected to specific pins. | |
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) |
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. | |
unsigned char | rderror () |
Returns number of read errors to detect read overflow errors. | |
unsigned char | tderror () |
Returns number of write errors to detect write overflow errors. | |
void | attach (void(*fptr)(void)) |
Attach a function to call whenever a CAN frame received interrupt is generated. | |
template<typename T > | |
void | attach (T *tptr, void(T::*mptr)(void)) |
Attach a member function to call whenever a CAN frame received interrupt is generated. |
Detailed Description
A can bus client, used for communicating with can devices.
Definition at line 73 of file CAN.h.
Constructor & Destructor Documentation
CAN | ( | PinName | rd, |
PinName | td | ||
) |
Creates an 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); CAN can1(p9, p10); CAN can2(p30, p29); 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); } }
Member Function Documentation
void attach | ( | void(*)(void) | fptr ) |
Attach a function to call whenever a CAN frame received interrupt is generated.
- Parameters:
-
fptr A pointer to a void function, or 0 to set as none
void attach | ( | T * | tptr, |
void(T::*)(void) | mptr | ||
) |
int frequency | ( | int | hz ) |
Set the frequency of the CAN interface.
- Parameters:
-
hz The bus frequency in hertz
- Returns:
- 1 if successful, 0 otherwise
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
unsigned char rderror | ( | ) |
Returns number of read errors to detect read overflow errors.
int read | ( | CANMessage & | msg ) |
Read a CANMessage from the bus.
- Parameters:
-
msg A CANMessage to read to.
- Returns:
- 0 if no message arrived, 1 if message arrived
void reset | ( | ) |
Reset CAN interface.
To use after error overflow.
unsigned char tderror | ( | ) |
Returns number of write errors to detect write overflow 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
Generated on Wed Jul 13 2022 02:59:12 by
