STM32F303K8T6でCANに流れてくるデータを受信してFloatに変換する

Dependencies:   mbed

Files at this revision

API Documentation at this revision

Comitter:
sashida_h
Date:
Thu Jul 30 10:37:02 2020 +0000
Commit message:
initial commit

Changed in this revision

main.cpp Show annotated file Show diff for this revision Revisions of this file
mbed.bld Show annotated file Show diff for this revision Revisions of this file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/main.cpp	Thu Jul 30 10:37:02 2020 +0000
@@ -0,0 +1,60 @@
+/*
+CAN通信slave側
+2種類のIDから受信する.
+rd - RXD
+td - TXD
+MCP2551まわりは以下参照(終端Rは410ohmを使った,そこにあったので)
+https://raw.githubusercontent.com/rummanwaqar/teensy_can/master/schematic.png
+*/
+#include "mbed.h"
+
+Serial pc(PA_2, PA_3, 115200); //pin19,20 TX,RX
+CAN can(PA_11, PA_12, 100000); //pin21,22 rd,td
+DigitalOut myled(PB_1); //pin15
+
+
+
+CANMessage msg;
+
+union Float2Byte{
+    float _float;
+    char _byte[4];
+};
+typedef union Float2Byte Float2Byte;
+
+void receive(){
+    Float2Byte getFloat;
+    
+    if(can.read(msg)){
+        /*ID: 0x01*/
+        if(msg.id == 0x01){
+            //pc.printf("ID: 0x01\n\r");
+            for(int i=0;i<4;++i){
+                getFloat._byte[i] = msg.data[i];
+                //pc.printf("get_char: %d\n\r", getFloat._byte[i]);
+            }
+            pc.printf("%.2f\r\n", getFloat._float);
+            myled = !myled;
+        }
+        /*ID: 0x02*/
+        if(msg.id == 0x02){
+            //pc.printf("ID: 0x02\n\r");
+            for(int i=0;i<4;++i){
+                getFloat._byte[i] = msg.data[i];
+                //pc.printf("get_char: %d\n\r", getFloat._byte[i]);
+            }
+            pc.printf("avarage: %.0f\n\r", getFloat._float);
+            myled = !myled;
+        }
+    }
+    
+}
+
+int main(){
+    pc.printf("Slave_Start.\n\r");
+    can.attach(receive, CAN::RxIrq);
+    while(1){
+        pc.printf("Slave loop()\n\r");
+        wait(0.2);
+    }
+}
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mbed.bld	Thu Jul 30 10:37:02 2020 +0000
@@ -0,0 +1,1 @@
+https://os.mbed.com/users/mbed_official/code/mbed/builds/65be27845400
\ No newline at end of file