nucleo-l432kcのテンプレートです。
Dependencies: mbed ros_lib_kinetic
Diff: library/scrp_master.hpp
- 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