Socket CAN¶
Overview¶
The socket CAN sample is a server/client application that sends and receives raw CAN frames using BSD socket API.
The application consists of these functions:
- Setup function which creates a CAN socket, binds it to a CAN network interface, and then installs a CAN filter to the socket so that the application can receive CAN frames.
- Receive function which starts to listen the CAN socket and prints information about the CAN frames.
- Send function which starts to send raw CAN frames to the bus.
The source code for this sample application can be found at: samples/net/sockets/can.
Requirements¶
You need a CANBUS enabled board like ST Nucleo L432KC or ST STM32F072B-DISCO.
Building and Running¶
Build the socket CAN sample application like this:
# On Linux/macOS
cd $ZEPHYR_BASE/samples/net/sockets/can
mkdir build && cd build
# On Windows
cd %ZEPHYR_BASE%\samples\net\sockets\can
mkdir build & cd build
cmake -GNinja -DBOARD=<board to use> -DCONF_FILE=<config file to use> ..
ninja
Example building for the nucleo_l432kc:
cd $ZEPHYR_BASE/samples/net/sockets/can
mkdir build && cd build
cmake -GNinja -DBOARD=nucleo_l432kc ..
ninja run