Committer:
gidiana
Date:
Thu Dec 06 14:43:47 2018 +0000
Revision:
0:0da0fd430e20
Child:
1:9ecda2b969c2
first;

Who changed what in which revision?

UserRevisionLine numberNew contents of line
gidiana 0:0da0fd430e20 1 #include "mbed.h" //5.4.7 (144)
gidiana 0:0da0fd430e20 2
gidiana 0:0da0fd430e20 3 const PinName can1rxPins[] = {PA_11};
gidiana 0:0da0fd430e20 4 const PinName can1txPins[] = {PA_12};
gidiana 0:0da0fd430e20 5 const PinName can2rxPins[] = {PB_12};
gidiana 0:0da0fd430e20 6 const PinName can2txPins[] = {PB_13};
gidiana 0:0da0fd430e20 7
gidiana 0:0da0fd430e20 8 //CAN1
gidiana 0:0da0fd430e20 9 //0,0=OK 0,1=OK 0,2=OK 1,0=OK 1,1=OK 1,2=OK 2,0=OK 2,1=OK 2,2=OK
gidiana 0:0da0fd430e20 10 //CAN2
gidiana 0:0da0fd430e20 11 //0,0=RX_OK 0,1=OK 1,0=RX_OK 1,1=OK
gidiana 0:0da0fd430e20 12
gidiana 0:0da0fd430e20 13 CAN can1(can1rxPins[0], can1txPins[0]);
gidiana 0:0da0fd430e20 14 CAN can(can2rxPins[0], can2txPins[0]);
gidiana 0:0da0fd430e20 15
gidiana 0:0da0fd430e20 16 //UART1, Tx, Rx (Debug)
gidiana 0:0da0fd430e20 17 DigitalOut led1(LED1);
gidiana 0:0da0fd430e20 18
gidiana 0:0da0fd430e20 19
gidiana 0:0da0fd430e20 20 Thread sendThread(osPriorityAboveNormal, 2048);
gidiana 0:0da0fd430e20 21 Thread canrx;
gidiana 0:0da0fd430e20 22 CANMessage messageIn;
gidiana 0:0da0fd430e20 23 CANMessage messageOut;
gidiana 0:0da0fd430e20 24
gidiana 0:0da0fd430e20 25 void canRxIsr()
gidiana 0:0da0fd430e20 26 {
gidiana 0:0da0fd430e20 27 while(1)
gidiana 0:0da0fd430e20 28 {
gidiana 0:0da0fd430e20 29 if(can1.read(messageIn))
gidiana 0:0da0fd430e20 30 {
gidiana 0:0da0fd430e20 31 led1 = !led1;
gidiana 0:0da0fd430e20 32 printf("received\n\r");
gidiana 0:0da0fd430e20 33 }
gidiana 0:0da0fd430e20 34 }
gidiana 0:0da0fd430e20 35 }
gidiana 0:0da0fd430e20 36 void sendMessage()
gidiana 0:0da0fd430e20 37 {
gidiana 0:0da0fd430e20 38 int status = can.write(messageOut);
gidiana 0:0da0fd430e20 39 printf("Send status: %d\r\n", status);
gidiana 0:0da0fd430e20 40 }
gidiana 0:0da0fd430e20 41
gidiana 0:0da0fd430e20 42 void sendMessageLoop()
gidiana 0:0da0fd430e20 43 {
gidiana 0:0da0fd430e20 44 while (true)
gidiana 0:0da0fd430e20 45 {
gidiana 0:0da0fd430e20 46 sendMessage();
gidiana 0:0da0fd430e20 47 osDelay(1000);
gidiana 0:0da0fd430e20 48 }
gidiana 0:0da0fd430e20 49 }
gidiana 0:0da0fd430e20 50
gidiana 0:0da0fd430e20 51 int main()
gidiana 0:0da0fd430e20 52 {
gidiana 0:0da0fd430e20 53
gidiana 0:0da0fd430e20 54 printf("CAN receive / transmit test.\r\n");
gidiana 0:0da0fd430e20 55 //can.frequency(125000);
gidiana 0:0da0fd430e20 56
gidiana 0:0da0fd430e20 57 messageOut.id = 1337;
gidiana 0:0da0fd430e20 58 //messageOut.format = CANExtended;
gidiana 0:0da0fd430e20 59 //messageOut.len = 0;
gidiana 0:0da0fd430e20 60
gidiana 0:0da0fd430e20 61 canrx.start(canRxIsr);
gidiana 0:0da0fd430e20 62 printf("CAN receive / .\r\n");
gidiana 0:0da0fd430e20 63 sendThread.start(&sendMessageLoop);
gidiana 0:0da0fd430e20 64 printf("CAN \r\n");
gidiana 0:0da0fd430e20 65
gidiana 0:0da0fd430e20 66 while (true)
gidiana 0:0da0fd430e20 67 {
gidiana 0:0da0fd430e20 68
gidiana 0:0da0fd430e20 69 led1 = 0;
gidiana 0:0da0fd430e20 70 osDelay(1000);
gidiana 0:0da0fd430e20 71 }
gidiana 0:0da0fd430e20 72 }