Alfred Lind-Anderton
/
CAN_Hello_XAVIER
Using CAN bus with (not just NUCLEO) mbed boards
Diff: main.cpp
- Revision:
- 8:c65afde7f7f5
- Parent:
- 7:883da97339ab
- Child:
- 9:3211e88e30a5
--- a/main.cpp Tue Feb 05 15:01:00 2019 +0000 +++ b/main.cpp Tue Feb 05 19:03:26 2019 +0000 @@ -7,9 +7,6 @@ * CAN transceivers are not part of NUCLEO boards, therefore must be added by you. * Remember also that CAN bus (even a short one) must be terminated with 120 Ohm resitors at both ends. * - * For more details see the wiki page <https://developer.mbed.org/users/hudakz/code/CAN_Hello/> - * - * NOTE: When using an STM32F103C8T6 board uncomment line 22 and import the mbed-STM32F103C8T6 library * * The same code is used for both mbed boards, but: * For board #1 compile the example without any change. @@ -19,7 +16,7 @@ * */ -//#define TARGET_STM32F103C8T6 1 // uncomment this line when using STM32F103C8T6 boards! +//#define TARGET_STM32F103C8T6 1 // uncomment this line to use STM32F103C8T6 boards #define BOARD1 1 // comment out this line when compiling for board #2 @@ -57,7 +54,7 @@ float voltage; /** - * @brief Prints CAN msg to PC's serial terminal + * @brief Prints CAN message to PC's serial terminal * @note * @param CANMessage to print * @retval @@ -76,7 +73,7 @@ /** * @brief Handles received CAN messages - * @note Called on CAN msg received interrupt. + * @note Called on 'CAN message received' interrupt. * @param * @retval */ @@ -87,13 +84,13 @@ if (rxMsg.id == RX_ID) { // extract data from the received CAN message - // in the same order as was added on the transmitter side + // in the same order as it was added on the transmitter side rxMsg >> counter; rxMsg >> voltage; pc.printf(" counter = %d\r\n", counter); pc.printf(" voltage = %e V\r\n", voltage); } - timer.start(); // to transmit next message + timer.start(); // to transmit next message in main } @@ -105,10 +102,10 @@ */ int main(void) { - pc.baud(9600); // set Serial speed - can.frequency(1000000); // set bit rate to 1Mbps + pc.baud(9600); // set serial speed + can.frequency(1000000); // set CAN bit rate to 1Mbps can.filter(RX_ID, 0xFFF, CANStandard, 0); // set filter #0 to accept only standard messages with ID == RX_ID - can.attach(onCanReceived); // attach ISP + can.attach(onCanReceived); // attach ISR to handle received messages #if defined(BOARD1) led = ON; // turn the LED on