パソコンからの信号をRS485に変換する中継器のプログラムです。

Dependencies:   arrc_mbed

Fork of USB2RS485 by Hiroki Tanaka

Committer:
TanakaRobo
Date:
Tue Mar 23 09:09:27 2021 +0000
Revision:
0:e84e65778a06
first commit

Who changed what in which revision?

UserRevisionLine numberNew contents of line
TanakaRobo 0:e84e65778a06 1 #include <mbed.h>
TanakaRobo 0:e84e65778a06 2 #include <scrp_slave.hpp>
TanakaRobo 0:e84e65778a06 3
TanakaRobo 0:e84e65778a06 4 //パソコンのScrpMonitorから送った信号をそのままRS485で送信します。
TanakaRobo 0:e84e65778a06 5 //USBで受信したデータをMILLポートから出力します。
TanakaRobo 0:e84e65778a06 6 //cmd 0,253,254は使えません。
TanakaRobo 0:e84e65778a06 7
TanakaRobo 0:e84e65778a06 8 ScrpSlave slave(PA_9 ,PA_10,PA_12,SERIAL_TX,SERIAL_RX,255);//全受信モード
TanakaRobo 0:e84e65778a06 9
TanakaRobo 0:e84e65778a06 10 bool rs485(int rx_data, int &tx_data){
TanakaRobo 0:e84e65778a06 11 if(slave.receivePort() == 1){//USBから受信した時にMILLポートから送信する。
TanakaRobo 0:e84e65778a06 12 slave.send1(slave.receiveId(), slave.receiveCmd(), rx_data);
TanakaRobo 0:e84e65778a06 13 }
TanakaRobo 0:e84e65778a06 14 return false;
TanakaRobo 0:e84e65778a06 15 }
TanakaRobo 0:e84e65778a06 16
TanakaRobo 0:e84e65778a06 17 void response(uint8_t id,uint8_t cmd, int16_t data){
TanakaRobo 0:e84e65778a06 18 slave.send2(id, cmd, data, false);//返ってきたレスポンスをUSBに送信する。
TanakaRobo 0:e84e65778a06 19 }
TanakaRobo 0:e84e65778a06 20
TanakaRobo 0:e84e65778a06 21 int main(){
TanakaRobo 0:e84e65778a06 22 for(int i = 0;i < 256;i++){
TanakaRobo 0:e84e65778a06 23 slave.addCMD(i, rs485);
TanakaRobo 0:e84e65778a06 24 }
TanakaRobo 0:e84e65778a06 25 slave.attachResponse(response);
TanakaRobo 0:e84e65778a06 26 while(true);
TanakaRobo 0:e84e65778a06 27 }