2019 Off season development Test of CAN communication Nucleo Board STM32 F303K8

Dependencies:   mbed

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers main.cpp Source File

main.cpp

00001 /** NucleoF303k8 CAN TEST CODE **/
00002 /** 2019/11/28 Coding by Nagito Sukegawa **/
00003 //MotorDriver
00004 //https://os.mbed.com/users/YutaTogashi/code/robocon2019_TBCMotorDriver_Ver5/
00005 
00006 #include "mbed.h"
00007 
00008 void canRcv(void);
00009 char RcvData[8];
00010 DigitalOut myled(PB_3);   //Nucleoの時
00011 DigitalOut led1(PA_3);  //チップ の時
00012 DigitalOut led2(PA_4);  //チップ の時
00013 DigitalOut led3(PA_5);  //チップ の時
00014 Serial pc(PA_2,NC,115200);    //Nucleoの時
00015 //Serial pc(PA_9,PA_10,115200);    //チップ の時
00016 CAN can(PA_11, PA_12,500000);
00017 CANMessage msg(0x456,CANStandard);
00018 
00019 int main()
00020 {
00021     pc.printf("\033[2J\033[1;1HSTART\n");
00022     can.attach(&canRcv,CAN::RxIrq);
00023     while(1) {
00024         led1 = !led1;
00025 //        pc.printf("\033[2;1HCAN DATA[0]: 0x%x", RcvData[0]);
00026 //        pc.printf("\033[3;1HCAN DATA[1]: 0x%x", RcvData[1]);
00027 //        pc.printf("\033[4;1HCAN DATA[2]: 0x%x", RcvData[2]);
00028 //        pc.printf("\033[5;1HCAN DATA[3]: 0x%x", RcvData[3]);
00029 //        pc.printf("\033[6;1HCAN DATA[4]: 0x%x", RcvData[4]);
00030 //        pc.printf("\033[7;1HCAN DATA[5]: 0x%x", RcvData[5]);
00031 //        pc.printf("\033[8;1HCAN DATA[6]: 0x%x", RcvData[6]);
00032 //        pc.printf("\033[9;1HCAN DATA[7]: 0x%x", RcvData[7]);
00033         wait(0.1);
00034     }
00035 }
00036 
00037 
00038 /** CAN受信関数 **/
00039 void canRcv(void)
00040 {
00041     myled =!myled;
00042     led2=!led2;
00043     can.read(msg);
00044     pc.printf("\033[1;1HCAN TRANSID: 0x%x", msg.id);
00045 //    if(msg.id == 0x456) {
00046     for(uint8_t i=0; i<8; i++) {
00047         RcvData[i] = msg.data[i];
00048     }
00049     pc.printf("\033[2;1HCAN DATA[0]: 0x%x", RcvData[0]);
00050     pc.printf("\033[3;1HCAN DATA[1]: 0x%x", RcvData[1]);
00051     pc.printf("\033[4;1HCAN DATA[2]: 0x%x", RcvData[2]);
00052 //        pc.printf("\033[5;1HCAN DATA[3]: 0x%x", RcvData[3]);
00053 //        pc.printf("\033[6;1HCAN DATA[4]: 0x%x", RcvData[4]);
00054 //        pc.printf("\033[7;1HCAN DATA[5]: 0x%x", RcvData[5]);
00055 //        pc.printf("\033[8;1HCAN DATA[6]: 0x%x", RcvData[6]);
00056 //        pc.printf("\033[9;1HCAN DATA[7]: 0x%x", RcvData[7]);
00057 //    }
00058 }