Advertisement
Guest User

Untitled

a guest
Mar 25th, 2019
84
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.23 KB | None | 0 0
  1. //======================================================================//
  2. //
  3. // Description : Test code to interface R307 Fingerprint Sensor with
  4. // Arduino Due. Due's second UART port (Serial1) is used
  5. // to interface the R307.
  6. //
  7. //======================================================================//
  8.  
  9. void setup() {
  10. Serial.begin(9600);
  11. Serial1.begin(57600);
  12. Serial.println("R307 Fingerprint Test");
  13. }
  14.  
  15. void loop() {
  16. byte serialBuffer [64] = {0};
  17. int serialBufferLength = 0;
  18. byte byteBuffer = 0;
  19. int timeoutCounter = 0;
  20.  
  21. //EF 01 FF FF FF FF 01 00 07 13 FF FF FF FF 04 17 - VfyPwd packet
  22.  
  23. Serial.println("Sending VfyPwd packet..");
  24. Serial1.write(0xEFU); //packet start - high byte first
  25. Serial1.write(0x01U); //packet start - second byte
  26. Serial1.write(0xFFU); //module address - 4 bytes
  27. Serial1.write(0xFFU);
  28. Serial1.write(0xFFU);
  29. Serial1.write(0xFFU);
  30. Serial1.write(0x01U); //package identifier
  31. Serial1.write(byte(0)); //package length
  32. Serial1.write(0x07U); //length = data/cmd bytes + checksum
  33. Serial1.write(0x013U); //instruction code
  34. Serial1.write(byte(0)); //4 byte password
  35. Serial1.write(byte(0));
  36. Serial1.write(byte(0));
  37. Serial1.write(byte(0));
  38.  
  39. Serial1.write(byte(0));
  40. Serial1.write(0x1BU);
  41.  
  42. // uint16_t packetChecksum = 0x01U + 0x00U + 0x03U + 0x0FU; //calculate checksum
  43.  
  44. // Serial.print("Checksum is ");
  45. // Serial.println(packetChecksum);
  46.  
  47. // Serial1.write(uint8_t(packetChecksum >> 8)); //checksum
  48. // Serial1.write(uint8_t(packetChecksum & 0xFFU));
  49.  
  50. while (timeoutCounter < 1000) {
  51. if(Serial1.available()) {
  52. byteBuffer = Serial1.read();
  53. serialBuffer[serialBufferLength] = byteBuffer;
  54. serialBufferLength++;
  55. // Serial.print(byteBuffer, HEX);
  56. // Serial.print(" - ");
  57. timeoutCounter++;
  58. delay(1);
  59. }
  60. else {
  61. delay(1);
  62. timeoutCounter++;
  63. }
  64.  
  65. // if(timeoutCounter == 1000) {
  66. // Serial.println();
  67. // }
  68. }
  69.  
  70. Serial.print("Response Length = ");
  71. Serial.println(serialBufferLength);
  72. Serial.print("Response = ");
  73.  
  74. for(int i=0; i<serialBufferLength; i++) {
  75. Serial.print(serialBuffer[i], HEX);
  76. if(i != (serialBufferLength-1)) {
  77. Serial.print("-");
  78. }
  79. }
  80.  
  81. Serial.println();
  82. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement