Even Parity Settings for Serial 2 (UART2)

Asked 2 years ago, Updated 2 years ago, 61 views

If you know how to set the even parity of UART in Spresense, please let me know.
Currently, there is an error and it seems that only non-parity can be set.

Serial2.begin(9600, SERIAL_8E1);

Run this and you'll see

on the serial monitor.
UART only supports SERIAL_8N1

HardwareSerial.cpp appears to be outputting this error.
Is it not possible to use even parity in the Presense?

spresense

2022-09-30 11:40

3 Answers

The Bluetooth module was supposed to be even parity, so I hit the same wall.

As for the method I took, I was able to communicate with the Bluetooth module without any problems by changing the SDK to Even Parity and rebuilding it!

It's a prerequisite that you have an SDK buildable environment, but I'll show you how to do it.

Refer to the "Spresense SDK Getting Started Guide" to build the SDK environment.
https://developer.sony.com/develop/spresense/docs/sdk_set_up_ja.html

Get both arduino and sdk sources

$git clone https://github.com/sonydevworld/spresense-arduino-compatible.git
$ git clone -- recursive https://github.com/sonydevworld/spresense.git

Launch Kernel Configuration in the sdk directory

$cdspresense/sdk
$ ./tools/config.py-k release-m

Set UART2 parity settings to Even Parity

Device Drivers > Serial Driver Support > UART2 Configuration

Change Parity setting to 0->2

Kernel Configuration

Save and exit Kernel Configuration

Overwrite with 'y' because the following command asks if you want to overwrite it

$./tools/mkdefconfig.py-k release
release is already exists, overwrite ?(y/n)?y

Go to the arduino side and run the script

$cd../../spresense-arduino-compatible
$ ./tools/prepare_arduino.sh-S../spresense-p

If the script finishes successfully, I think the following files have been updated.
spresense-arduino-compatible/Arduino 15/packages/SPRESENSE/tools/spresense-sdk/1.0.0/

  • spresense/release/include/nuttx/config.h
  • spresense/release/prebuild/libs/libnuttx.a

If you replace them with those from your Arduino environment, the sketch will remain the default SERIAL_8N1 and will work with the Even Parity setting.


2022-09-30 11:40

I am in charge of SPRESENSE support for Sony.

We extended the functionality of the Serial Library in Spresense Arduino v2.0.

You can configure Even Parity with Serial.begin (9600, SERIAL_8E1).

For detailed programming specifications, see Serial Library.

Thank you for your continued support on SPRESENSE.
SPRESENSE Support Team


2022-09-30 11:40

If you have any answers or tips


© 2024 OneMinuteCode. All rights reserved.