This is the final version of Mini Gateway for Automation and Security desgined for Renesas GR Peach Design Contest

Dependencies:   GR-PEACH_video GraphicsFramework HTTPServer R_BSP mbed-rpc mbed-rtos Socket lwip-eth lwip-sys lwip FATFileSystem

Fork of mbed-os-example-mbed5-blinky by mbed-os-examples

Embed: (wiki syntax)

« Back to documentation index

CAN Class Reference

CAN Class Reference
[Drivers]

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, 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 incomming messages.
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 (Callback< void()> func, IrqType type=RxIrq)
 Attach a function to call whenever a CAN frame received interrupt is generated.
template<typename T >
void attach (T *obj, void(T::*method)(), IrqType type=RxIrq)
 Attach a member function to call whenever a CAN frame received interrupt is generated.
template<typename T >
void attach (T *obj, void(*method)(T *), IrqType type=RxIrq)
 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 71 of file CAN.h.


Constructor & Destructor Documentation

CAN ( PinName  rd,
PinName  td 
)

Creates an CAN interface connected to specific pins.

Parameters:
rdread from transmitter
tdtransmit 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);
     }
 }

Definition at line 26 of file CAN.cpp.