CANtest module (A base for more complex ones)

Dependencies:   mbed-STM32F103C8T6 mbed

Fork of CANtest by Melchior Pau

Committer:
mbedoguz
Date:
Tue Jun 05 19:56:05 2018 +0000
Revision:
2:bb0f12b33fa1
Parent:
1:3759c5f6cf76
CANTest module to be able to test can receiver chips

Who changed what in which revision?

UserRevisionLine numberNew contents of line
mbedoguz 2:bb0f12b33fa1 1 #include "stm32f103c8t6.h"
OTBsolar 0:af731d8a8d2c 2 #include "mbed.h"
OTBsolar 0:af731d8a8d2c 3 #include "CAN.h"
OTBsolar 0:af731d8a8d2c 4
mbedoguz 2:bb0f12b33fa1 5 #define board_transmitter
mbedoguz 2:bb0f12b33fa1 6 Serial pc(USBTX,USBRX,115200);
OTBsolar 0:af731d8a8d2c 7 Ticker ticker;
OTBsolar 0:af731d8a8d2c 8 DigitalOut led1(LED1);
OTBsolar 0:af731d8a8d2c 9 DigitalOut led2(LED2);
mbedoguz 2:bb0f12b33fa1 10 #ifdef board_transmitter
mbedoguz 2:bb0f12b33fa1 11 CAN transmitter_can(PB_8, PB_9); // rd, td Transmitter
mbedoguz 2:bb0f12b33fa1 12 #else
mbedoguz 2:bb0f12b33fa1 13 CAN receiver_can(PB_8, PB_9); // rd, td Transmitter
mbedoguz 2:bb0f12b33fa1 14 #endif
OTBsolar 0:af731d8a8d2c 15
OTBsolar 0:af731d8a8d2c 16 int counter = 0;
OTBsolar 0:af731d8a8d2c 17 char data[8];
OTBsolar 0:af731d8a8d2c 18
OTBsolar 1:3759c5f6cf76 19 //***************void send is the data you are sending**************
mbedoguz 2:bb0f12b33fa1 20 #ifdef board_transmitter
OTBsolar 1:3759c5f6cf76 21 void send() {
mbedoguz 2:bb0f12b33fa1 22 data[0] = (char)(0xbf); // NMT Start RemoteNode
OTBsolar 0:af731d8a8d2c 23 data[1] = (char)(0x00); // Global
OTBsolar 0:af731d8a8d2c 24 data[2] = (char)(0x00);
OTBsolar 0:af731d8a8d2c 25 data[3] = (char)(0x00);
OTBsolar 0:af731d8a8d2c 26 data[4] = (char)(0x00);
OTBsolar 0:af731d8a8d2c 27 data[5] = (char)(0x00);
OTBsolar 0:af731d8a8d2c 28 data[6] = (char)(0x00);
OTBsolar 0:af731d8a8d2c 29 data[7] = (char)(0x00);
mbedoguz 2:bb0f12b33fa1 30 if(transmitter_can.write(CANMessage(0000,data,2))) {
mbedoguz 2:bb0f12b33fa1 31 pc.printf("Startup sent \n");
OTBsolar 1:3759c5f6cf76 32 }
OTBsolar 1:3759c5f6cf76 33
mbedoguz 2:bb0f12b33fa1 34 }
mbedoguz 2:bb0f12b33fa1 35 #endif
OTBsolar 1:3759c5f6cf76 36
OTBsolar 0:af731d8a8d2c 37 int main() {
OTBsolar 1:3759c5f6cf76 38 //----------------Initialization-----------------------
mbedoguz 2:bb0f12b33fa1 39 #ifdef board_transmitter
mbedoguz 2:bb0f12b33fa1 40 transmitter_can.frequency(500000);
mbedoguz 2:bb0f12b33fa1 41 #else
mbedoguz 2:bb0f12b33fa1 42 receiver_can.frequency(500000); //500kbit/s
mbedoguz 2:bb0f12b33fa1 43 #endif
mbedoguz 2:bb0f12b33fa1 44 //receiver_can.monitor(1); //Works without this, in my case.
mbedoguz 2:bb0f12b33fa1 45 #ifdef board_transmitter
OTBsolar 0:af731d8a8d2c 46 ticker.attach(&send, 1); //Send every second
mbedoguz 2:bb0f12b33fa1 47 #endif
OTBsolar 1:3759c5f6cf76 48 CANMessage msg;
OTBsolar 1:3759c5f6cf76 49 //-----------------------------------------------------
OTBsolar 1:3759c5f6cf76 50
OTBsolar 1:3759c5f6cf76 51 //---------------The read out----------------------
OTBsolar 0:af731d8a8d2c 52 while(1) {
mbedoguz 2:bb0f12b33fa1 53
mbedoguz 2:bb0f12b33fa1 54 #ifndef board_transmitter
mbedoguz 2:bb0f12b33fa1 55 if(receiver_can.read(msg)) {
mbedoguz 2:bb0f12b33fa1 56 pc.printf("Message read with ID: %d\n", msg.id);
mbedoguz 2:bb0f12b33fa1 57 pc.printf("Data: %x", msg.data[0]);
mbedoguz 2:bb0f12b33fa1 58 pc.printf(" %x", msg.data[1]);
mbedoguz 2:bb0f12b33fa1 59 pc.printf(" %x", msg.data[2]);
mbedoguz 2:bb0f12b33fa1 60 pc.printf(" %x", msg.data[3]);
mbedoguz 2:bb0f12b33fa1 61 pc.printf(" %x", msg.data[4]);
mbedoguz 2:bb0f12b33fa1 62 pc.printf(" %x", msg.data[5]);
mbedoguz 2:bb0f12b33fa1 63 pc.printf(" %x", msg.data[6]);
mbedoguz 2:bb0f12b33fa1 64 pc.printf(" %x\n", msg.data[7]);
mbedoguz 2:bb0f12b33fa1 65 pc.printf("Length: %d", msg.len);
mbedoguz 2:bb0f12b33fa1 66 pc.printf(", Type: %d", msg.type);
mbedoguz 2:bb0f12b33fa1 67 pc.printf(", Format: %d\n\n", msg.format);
OTBsolar 1:3759c5f6cf76 68 led2 = !led2; //Blink!
OTBsolar 0:af731d8a8d2c 69 }
mbedoguz 2:bb0f12b33fa1 70 #endif
OTBsolar 0:af731d8a8d2c 71 }
OTBsolar 1:3759c5f6cf76 72 //----------------------------------------------------
OTBsolar 1:3759c5f6cf76 73 }
OTBsolar 1:3759c5f6cf76 74 //*********************************************************