CANtest module (A base for more complex ones)
Dependencies: mbed-STM32F103C8T6 mbed
Fork of CANtest by
main.cpp
00001 #include "stm32f103c8t6.h" 00002 #include "mbed.h" 00003 #include "CAN.h" 00004 00005 #define board_transmitter 00006 Serial pc(USBTX,USBRX,115200); 00007 Ticker ticker; 00008 DigitalOut led1(LED1); 00009 DigitalOut led2(LED2); 00010 #ifdef board_transmitter 00011 CAN transmitter_can(PB_8, PB_9); // rd, td Transmitter 00012 #else 00013 CAN receiver_can(PB_8, PB_9); // rd, td Transmitter 00014 #endif 00015 00016 int counter = 0; 00017 char data[8]; 00018 00019 //***************void send is the data you are sending************** 00020 #ifdef board_transmitter 00021 void send() { 00022 data[0] = (char)(0xbf); // NMT Start RemoteNode 00023 data[1] = (char)(0x00); // Global 00024 data[2] = (char)(0x00); 00025 data[3] = (char)(0x00); 00026 data[4] = (char)(0x00); 00027 data[5] = (char)(0x00); 00028 data[6] = (char)(0x00); 00029 data[7] = (char)(0x00); 00030 if(transmitter_can.write(CANMessage(0000,data,2))) { 00031 pc.printf("Startup sent \n"); 00032 } 00033 00034 } 00035 #endif 00036 00037 int main() { 00038 //----------------Initialization----------------------- 00039 #ifdef board_transmitter 00040 transmitter_can.frequency(500000); 00041 #else 00042 receiver_can.frequency(500000); //500kbit/s 00043 #endif 00044 //receiver_can.monitor(1); //Works without this, in my case. 00045 #ifdef board_transmitter 00046 ticker.attach(&send, 1); //Send every second 00047 #endif 00048 CANMessage msg; 00049 //----------------------------------------------------- 00050 00051 //---------------The read out---------------------- 00052 while(1) { 00053 00054 #ifndef board_transmitter 00055 if(receiver_can.read(msg)) { 00056 pc.printf("Message read with ID: %d\n", msg.id); 00057 pc.printf("Data: %x", msg.data[0]); 00058 pc.printf(" %x", msg.data[1]); 00059 pc.printf(" %x", msg.data[2]); 00060 pc.printf(" %x", msg.data[3]); 00061 pc.printf(" %x", msg.data[4]); 00062 pc.printf(" %x", msg.data[5]); 00063 pc.printf(" %x", msg.data[6]); 00064 pc.printf(" %x\n", msg.data[7]); 00065 pc.printf("Length: %d", msg.len); 00066 pc.printf(", Type: %d", msg.type); 00067 pc.printf(", Format: %d\n\n", msg.format); 00068 led2 = !led2; //Blink! 00069 } 00070 #endif 00071 } 00072 //---------------------------------------------------- 00073 } 00074 //*********************************************************
Generated on Fri Jul 15 2022 06:50:38 by
1.7.2
