|
现有1块arduino和2个rfid读写器,想通过SoftwareSerial进行通讯,下面是测试用的代码。但问题是只有个读写器有数据输出,另外一个没有输出
- #include <SPI.h>
- #include <SoftwareSerial.h>
- SoftwareSerial rfidSerial1(8,9);
- SoftwareSerial rfidSerial2(2,3);
- int data1[4];
- int data2[4];
- int in1 = 0;
- int in2 = 0;
- int key = 0;
- String readString = String(30);
- void setup(){
- Serial.begin(9600);
- // rfidSerial1.begin(9600);
- // rfidSerial2.begin(9600);
- // rfidSerial1.listen();
- // rfidSerial2.listen();
- // delay(2);
- // rfidSerial1.write(0x02);
- // rfidSerial2.write(0x02);
- Serial.println("please read rfid");
- }
- void loop(){
- Serial.print("rfid1=");
- Serial.println(rfidRead1());
- Serial.print("rfid2=");
- Serial.println(rfidRead2());
- delay(1000);
- }
- int rfidRead1(){
- rfidSerial1.begin(9600);
- rfidSerial1.listen();
- delay(2);
- rfidSerial1.write(0x02);
- if(rfidSerial1.available()>0)
- {
- for (int i = 0; i<=3; i++){
- byte b = rfidSerial1.read();
- data1[i] = int(b);
- }
- return (data1[2]);
- }
- in1 = data1[2];
- }
- int rfidRead2(){
- rfidSerial1.begin(9600);
- rfidSerial1.listen();
- delay(2);
- rfidSerial1.write(0x02);
- if(rfidSerial2.available()>0)
- {
- for (int m = 0; m<=3; m++){
- byte k = rfidSerial2.read();
- data2[m] = int(k);
- }
- return (data2[2]);
- }
- in2 = data2[2];
- }
复制代码 |
|