Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Update Serial #249

Open
wants to merge 9 commits into
base: main
Choose a base branch
from
Open

Update Serial #249

wants to merge 9 commits into from

Conversation

bhansconnect
Copy link

@bhansconnect bhansconnect commented Feb 11, 2022

This fixes the DataRegisterEmpty serial event, adds the TxComplete serial event, and creates a more robust serial example that is similar to how Arduino C++ does serial.

closes #220
closes #248

bhansconnect and others added 9 commits February 11, 2022 11:17
This is suggested in the atmega328p manual and theoretically applies to other AVR boards.
It is for future compatibility.
These currently don't work on AVR and won't be able to work on AVR until rust updates AVR asm.
As a work around, manually implement them.
This is based off of how the Arduino C++ library does serial.
It uses interrupts and buffers to avoid missing data.
rursprung added a commit to rursprung/avr-hal that referenced this pull request Dec 28, 2023
with `embedded-hal` v1 the USART traits have been removed in favour of
the new `embedded-io` crate.

this adds a (very basic) implementation for `Read` and `Write`. other
traits (such as the `*Ready` or `BufRead` traits) have not (yet) been
implemented and some (like `Seek`) probably can't be implemented for
this HAL.

a better implementation might use a buffer in the background to receive
more than one byte at once.

see also Rahix#249 for a related PR.

this is part of Rahix#468
rursprung added a commit to rursprung/avr-hal that referenced this pull request Dec 28, 2023
with `embedded-hal` v1 the USART traits have been removed in favour of
the new `embedded-io` crate.

this adds a (very basic) implementation for `Read` and `Write`. other
traits (such as the `*Ready` or `BufRead` traits) have not (yet) been
implemented and some (like `Seek`) probably can't be implemented for
this HAL.

a better implementation might use a buffer in the background to receive
more than one byte at once.

see also Rahix#249 for a related PR.

this is part of Rahix#468
rursprung added a commit to rursprung/avr-hal that referenced this pull request Jan 17, 2024
with `embedded-hal` v1 the USART traits have been removed in favour of
the new `embedded-io` crate.

this adds a (very basic) implementation for `Read` and `Write`. other
traits (such as the `*Ready` or `BufRead` traits) have not (yet) been
implemented and some (like `Seek`) probably can't be implemented for
this HAL.

a better implementation might use a buffer in the background to receive
more than one byte at once.

see also Rahix#249 for a related PR.

this is part of Rahix#468
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Arduino Uno Serial read seems to be dropping bytes Missing avr_hal_generic::usart::Event::TxComplete
1 participant