CANtest module (A base for more complex ones)
Dependencies: mbed-STM32F103C8T6 mbed
Fork of CANtest by
main.cpp@2:bb0f12b33fa1, 2018-06-05 (annotated)
- 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?
User | Revision | Line number | New 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 | //********************************************************* |