From 5aec9ea81f6fbe46339d0a0ecd93bf8200253bf1 Mon Sep 17 00:00:00 2001 From: Das P Date: Mon, 9 Sep 2024 11:25:08 +0200 Subject: [PATCH 1/2] Added softReset function and possibility to set RX, TX on Serial --- Adafruit_Fingerprint.cpp | 16 +++++++++++++--- Adafruit_Fingerprint.h | 4 +++- 2 files changed, 16 insertions(+), 4 deletions(-) diff --git a/Adafruit_Fingerprint.cpp b/Adafruit_Fingerprint.cpp index bfc375a..f08df54 100644 --- a/Adafruit_Fingerprint.cpp +++ b/Adafruit_Fingerprint.cpp @@ -120,14 +120,14 @@ Adafruit_Fingerprint::Adafruit_Fingerprint(Stream *serial, uint32_t password) { @param baudrate Sensor's UART baud rate (usually 57600, 9600 or 115200) */ /**************************************************************************/ -void Adafruit_Fingerprint::begin(uint32_t baudrate) { +void Adafruit_Fingerprint::begin(uint32_t baudrate, uint32_t rx, uint32_t tx) { delay(1000); // one second delay to let the sensor 'boot up' if (hwSerial) - hwSerial->begin(baudrate); + hwSerial->begin(baudrate,SERIAL_8N1,rx,tx); #if defined(__AVR__) || defined(ESP8266) || defined(FREEDOM_E300_HIFIVE1) if (swSerial) - swSerial->begin(baudrate); + swSerial->begin(baudrate,SERIAL_8N1,rx,tx); #endif } @@ -417,6 +417,16 @@ uint8_t Adafruit_Fingerprint::setPassword(uint32_t password) { (uint8_t)(password & 0xFF)); } +/**************************************************************************/ +/*! + @brief Send soft reset instruction to the module + @returns FINGERPRINT_OK on success + @returns Other: device is abnormal +*/ +uint8_t Adafruit_Fingerprint::softReset(void) { + SEND_CMD_PACKET(FINGERPRINT_SOFT_RESET); +} + /**************************************************************************/ /*! @brief Writing module registers diff --git a/Adafruit_Fingerprint.h b/Adafruit_Fingerprint.h index b6263b8..50d5364 100644 --- a/Adafruit_Fingerprint.h +++ b/Adafruit_Fingerprint.h @@ -74,6 +74,7 @@ 0x1B //!< Asks the sensor to search for a matching fingerprint template to the //!< last model generated #define FINGERPRINT_TEMPLATECOUNT 0x1D //!< Read finger template numbers +#define FINGERPRINT_SOFT_RESET 0x3D //!< Soft Reset #define FINGERPRINT_AURALEDCONFIG 0x35 //!< Aura LED control #define FINGERPRINT_LEDON 0x50 //!< Turn on the onboard LED #define FINGERPRINT_LEDOFF 0x51 //!< Turn off the onboard LED @@ -167,7 +168,7 @@ class Adafruit_Fingerprint { Adafruit_Fingerprint(HardwareSerial *hs, uint32_t password = 0x0); Adafruit_Fingerprint(Stream *serial, uint32_t password = 0x0); - void begin(uint32_t baud); + void begin(uint32_t baud, uint32_t rx, uint32_t tx); boolean verifyPassword(void); uint8_t getParameters(void); @@ -185,6 +186,7 @@ class Adafruit_Fingerprint { uint8_t fingerSearch(uint8_t slot = 1); uint8_t getTemplateCount(void); uint8_t setPassword(uint32_t password); + uint8_t softReset(void); uint8_t LEDcontrol(bool on); uint8_t LEDcontrol(uint8_t control, uint8_t speed, uint8_t coloridx, uint8_t count = 0); From f41bd803a23bdade37e1bf7f32c7bbaecdd79d44 Mon Sep 17 00:00:00 2001 From: Das P Date: Mon, 9 Sep 2024 11:31:37 +0200 Subject: [PATCH 2/2] Created separate begin function with tx,rx alongside the original function --- Adafruit_Fingerprint.cpp | 19 +++++++++++++++++++ Adafruit_Fingerprint.h | 1 + 2 files changed, 20 insertions(+) diff --git a/Adafruit_Fingerprint.cpp b/Adafruit_Fingerprint.cpp index f08df54..261d993 100644 --- a/Adafruit_Fingerprint.cpp +++ b/Adafruit_Fingerprint.cpp @@ -120,6 +120,25 @@ Adafruit_Fingerprint::Adafruit_Fingerprint(Stream *serial, uint32_t password) { @param baudrate Sensor's UART baud rate (usually 57600, 9600 or 115200) */ /**************************************************************************/ +void Adafruit_Fingerprint::begin(uint32_t baudrate) { + delay(1000); // one second delay to let the sensor 'boot up' + + if (hwSerial) + hwSerial->begin(baudrate); +#if defined(__AVR__) || defined(ESP8266) || defined(FREEDOM_E300_HIFIVE1) + if (swSerial) + swSerial->begin(baudrate); +#endif +} + +/**************************************************************************/ +/*! + @brief Initializes serial interface and baud rate + @param baudrate Sensor's UART baud rate (usually 57600, 9600 or 115200) + @param rx pin connected to the Sensor to receive data + @param tx pin connected to the Sensor to transmit data +*/ +/**************************************************************************/ void Adafruit_Fingerprint::begin(uint32_t baudrate, uint32_t rx, uint32_t tx) { delay(1000); // one second delay to let the sensor 'boot up' diff --git a/Adafruit_Fingerprint.h b/Adafruit_Fingerprint.h index 50d5364..2cd02b7 100644 --- a/Adafruit_Fingerprint.h +++ b/Adafruit_Fingerprint.h @@ -168,6 +168,7 @@ class Adafruit_Fingerprint { Adafruit_Fingerprint(HardwareSerial *hs, uint32_t password = 0x0); Adafruit_Fingerprint(Stream *serial, uint32_t password = 0x0); + void begin(uint32_t baud); void begin(uint32_t baud, uint32_t rx, uint32_t tx); boolean verifyPassword(void);