* HardwareSerial: fix begin() lock issue on error path
If the user supplied a wrong UART number, the begin() method would
return without releasing the lock. Add missing unlock call.
* removing unsed Case test
---------
Co-authored-by: Rodrigo Garcia <rodrigo.garcia@espressif.com>
* Fix the F_CPU frequency for the ESP32-S3
Hello, I was using the FastLED library and it was complaining about F_CPU not being defined. So, I just noticed that it is not defined for the ESP32-S3 module. So I made this change in the header file and it compiled. Therefore I wanted to propose this change to the HAL library to improve compatibility. Thank you for your time.
* Makes F_CPU generic based on the SoC frequency
Works for ESP32, ESP32C3, ESP32S2, ESP32S3
* Includes ESP32C3 in the F_CPU definition
Necessary for ESP32 Arduino Core 2.0.x based on IDF 4.4
---------
Co-authored-by: Ali Devrim OGUZ <11381547+devrim-oguz@users.noreply.github.com>
* Remove __FlashStringHelper from ESP32, it's not needed - all the files using it are different from their ESP8266 counterparts anyway.
* Revert removal of class __FlashStringHelper forward for continued compatibility with external libs
* Improved fix, works for libs that return const __FlashStringHelper*
* Inline all wrappers using const __FlashStringHelper*.
WString Fix int64_t
Fixed int64_t String support. Resolves issue #7760.
Background:
sprintf on esp32 doesn't support "%lld" parameter. It's possible to recompile the underlying libraries to add that option, but I have an easier solution.
This has already been solved in ESP8266 version of WString by replacing sprintf() with itoa/ltoa/lltoa.
This PR does the following:
Fixes integer print issues by replacing sprintf() with itoa/ltoa/lltoa
Moves concat(long long num), concat(unsigned long long num) location (match ESP8266)
Cleans up code formatting (matches ESP8266)
Co-authored-by: Me No Dev <me-no-dev@users.noreply.github.com>
* adds extended HardwareSerial examples
* Adds new example with Serial RxTimeout
* adds and improves Serial onReceive expamples
* adjust includes CMake - UART example
* adjust includes CMake - UART example
* fixes CMake and CI
* adds ESP/Serial to CMakeList
* adds ESP/Serial to CMakeList
* fixes demo include
* fixes BREAK demo
* fixes onReceive demo
* Changes FIFO Full criteria
Changed the "1-by-1" Serial only when baud rate is 57600 or lower.
* example code replacement
* replaces functions in hal
* Workaround for when USB CDC is unplugged
* Considers default TX timeout
Sets back default TX timeout whenever USB is plugged, otherwise it is kept as zero.
* fixed left over code
Issue: Serial data sent during frequency change is corrupted.
Fixes corrupt debug message by printing the message after the frequency change is completed.
* Changes UART ISR to only trigger on RX FIFO Full and timeout
* changes initial RX timeout
* Eliminates extra testing for _uart != NULL
* reconfiguration with "uartSetFastReading()"
* Adds new function "uartSetFastReading()"
* changed default onReceive() behaviour
* forces User callback in case of error
* Error Code Order
Set NO_ERROR as first error code, same as ESP_OK = 0
* Adds an error message to HardwareSerial::setPins()
In order to avoid problems if the user tries to setPins() before initializing the Serial port with begin()
* Get channel assigned to the pin with analogWrite
* Respect coding standard in LEDC source file
Co-authored-by: Rodrigo Garcia <rodrigo.garcia@espressif.com>
Co-authored-by: Jan Procházka <90197375+P-R-O-C-H-Y@users.noreply.github.com>
* Improve RGB LED Driver
Replaces the use of the `LED_BUILTIN` variable by creating a new variable called `RGB_BUILTIN`. On boards with both a regular LED and RGB LED, this change provides functionality to control either LED.
The `LED_BRIGHTNESS` variable is changed to `RGB_BRIGHTNESS`, which aligns more closely with the `RGB_BUILTIN` variable name.
`BOARD_HAS_NEOPIXEL` is no longer necessary; it is replaced by `RGB_BUILTIN`.
* Update BlinkRGB example
Update example code for changes with the RGB driver:
- Replace `LED_BUILTIN` and `BOARD_HAS_NEOPIXEL` with `RGB_BUILTIN`
- Replace `LED_BRIGHTNESS` with `RGB_BRIGHTNESS`
* Update board variants
Update board variants for changes with the RGB driver:
- Remove `BOARD_HAS_NEOPIXEL`
- Define `RGB_BUILTIN` pin
- Replace `LED_BRIGHTNESS` with `RGB_BRIGHTNESS` to align with `RGB_BUILTIN` name
Co-authored-by: Rodrigo Garcia <rodrigo.garcia@espressif.com>
Co-authored-by: Vojtěch Bartoška <76958047+VojtechBartoska@users.noreply.github.com>
* Initial implementation of RGB driver via digitalWrite
* Moved constants to pins_arduino.h
* Changed pin definition + added example
* Wrapped BlinkRGB in #ifdef BOARD_HAS_NEOPIXEL
* Removed forgotten log from example
* Moved RGBLedWrite to new file esp32-hal-rgb-led and created pinMode in variatn.cpp
* Updated example - lowered single channel brightness to LED_BRIGHTNESS
* Changed function name from RGBLedWrite to neopixelWrite + code polishing
* Moved pinSetup portion related to RGB back to common file
espressif/esp-idf / components/driver/include/driver/uart.h defines the API:
esp_err_t uart_set_pin(uart_port_t uart_num, int tx_io_num, int rx_io_num, int **rts_io_num**, int **cts_io_num**);
uartSetPins uses that api but alls it with swapped CTS/RTS pins as its API uses a different pin ordering:
uart_set_pin(uart->num, txPin, rxPin, **ctsPin**, **rtsPin**);
This fixes the wrong order in the function uartSetPins