nucleo-l432kcのテンプレートです。

Dependencies:   mbed ros_lib_kinetic

Revision:
4:47f17b5ac6e7
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/library/scrp_master.hpp	Thu Aug 15 08:58:21 2019 +0000
@@ -0,0 +1,45 @@
+#ifndef SCRP_SLAVE_H
+#define SCRP_SLAVE_H
+#include "mbed.h"
+
+/*USBでPCにつなぐポートと、基板上でRasPiとつなぐポートを同時に開く。
+ *RedePinの有り無しの選択、ポートを一つだけ開くことも可。
+ *以下から選択。
+ *ScrpMaster(PinName TX1,PinName RX1,uint32_t addr);//RedePinなし、1ポート
+ *ScrpMaster(PinName TX1,PinName RX1,PinName REDE1,uint32_t addr);//RedePinあり、1ポート
+ *ScrpMaster(PinName TX1,PinName RX1,PinName TX2,PinName RX2,uint32_t addr);//RedePinなし、2ポート
+ *ScrpMaster(PinName TX1,PinName RX1,PinName REDE1,PinName TX2,PinName RX2,uint32_t addr);//RedePinあり、1ポート+RedePinなし、1ポート
+ *example not usb port
+ *L432KC : TX = PA_9 , RX = PA_10 , REDE = PA_12 , addr = 0x0803e000
+ *F446RE : TX = PC_12 , RX = PD_2 , RDDE = PH_1 , addr = 0x0807ffff
+ */
+//ScrpMaster slave(SERIAL_TX,SERIAL_RX);
+
+inline int constrain(int x,int a,int b){
+    return (x < a ? a : x > b ? b : x);
+}
+
+inline double constrain(double x,double a,double b){
+    return (x < a ? a : x > b ? b : x);
+}
+
+class ScrpMaster{
+public:
+    ScrpMaster(PinName TX1,PinName RX1);//RedePinなし、1ポート
+    ScrpMaster(PinName TX1,PinName RX1,PinName REDE1);//RedePinあり、1ポート
+    ScrpMaster(PinName TX1,PinName RX1,PinName TX2,PinName RX2);//RedePinなし、2ポート
+    ScrpMaster(PinName TX1,PinName RX1,PinName REDE1,PinName TX2,PinName RX2);//RedePinあり、1ポート+RedePinなし、1ポート
+    ~ScrpMaster();
+    void setTimeout(int);
+    int send(uint8_t id,uint8_t cmd,int16_t tx_data);
+    int send2(uint8_t id,uint8_t cmd,int16_t tx_data);
+private:
+    DigitalOut *rede_;
+    Serial *serial_[2];
+    uint8_t mode_;
+    int timeout_;
+    int sending(int,uint8_t,uint8_t,int16_t);
+    void init(PinName,PinName);
+};
+
+#endif /* SCRP_SLAVE_H */
\ No newline at end of file