Ulf Lilleengen
e09bde9345
Add support for splitting stm32 usart into TX and RX
...
* Keeps existing API for usart, but wraps it in Tx and Rx sub-types
* Adds split() method similar to nRF for getting indepdendent TX and RX
parts
* Implements e-h traits for TX and RX types
* Add stm32h7 example
2022-03-15 10:35:37 +01:00
Dario Nieuwenhuis
9bad9365dc
Update rust nightly, embedded-hal 1.0, embedded-hal-async.
2022-03-11 00:38:07 +01:00
Dario Nieuwenhuis
dd828a7a92
stm32: move macrotables to embassy-stm32 build.rs
2022-02-26 03:23:09 +01:00
Timo Kröger
48f700b35c
stm32 usart: Fix RX interrupt flag handling
...
* On v1 interrupts cannot be cleared individually.
Instead they are cleared implicitly by reading or writing DR (which we do now).
* Multiple error flags can be set at the same time:
Handle them all in one go intstead of re-entering the ISR for each one so that
we do not lose any error flags on v1 hardware.
* Wake when the RX buffer becomes full: This allows fast running chips to pull data
from the buffer before receiving the next byte.
2022-02-25 14:32:39 +01:00
Dario Nieuwenhuis
17e77ede3f
stm32f1: fix wrong AF type in uart, can.
2022-02-24 00:37:15 +01:00
Dario Nieuwenhuis
1e69a8c484
stm32: move pin trait impls from macrotables to build.rs
2022-02-23 19:54:46 +01:00
Dario Nieuwenhuis
b4abb1f5c2
stm32: move dma trait impls from macrotables to build.rs
2022-02-23 19:16:37 +01:00
Dario Nieuwenhuis
340eb4eead
stm32: add rust stable support
2022-02-12 02:45:52 +01:00
Dario Nieuwenhuis
b99ab3d5d9
stm32: Add standard crate-wide macros for pin/dma traits, switch all drivers to use them.
2022-02-10 21:38:03 +01:00
Dario Nieuwenhuis
a8bd3ab952
Add missing + 'd
on unborrows.
2022-02-10 16:06:42 +01:00
Ulf Lilleengen
4032fc0655
Support unstable-trait feature for stm32
2022-01-26 22:39:06 +01:00
Dario Nieuwenhuis
c949519714
stm32/usart: expose all functionality as inherent methods.
2022-01-19 17:59:55 +01:00
bors[bot]
cdfd128185
Merge #545
...
545: Add adapter for implementing async traits for blocking types r=lulf a=lulf
This allows writing drivers relying on async traits, while still
functioning with implementations that already implement the embedded-hal
traits.
Co-authored-by: Ulf Lilleengen <lulf@redhat.com>
2022-01-03 14:17:21 +00:00
Nikita Strygin
a94932be02
Mark clear_interrupt_flag as unsafe
2021-12-26 18:29:41 +03:00
Nikita Strygin
6b08c70273
Port buffered uart to v1 stm32 hardware
...
- No DMA
- Create clear_interrupt_flag function to
handle differences between v1 and v2 hardware
2021-12-26 18:13:19 +03:00
Ulf Lilleengen
3811c0a401
Add adapter for implementing async traits for blocking types
...
This allows writing drivers relying on async traits, while still
functioning with implementations that already implement the embedded-hal
traits.
Add examples to stm32l4 for using this feature.
2021-12-17 12:54:51 +01:00
Ulf Lilleengen
2bbd1ddb8a
Remove unneeded rustfmt::skip
2021-12-16 11:37:53 +01:00
huntc
45ef944457
Stm flush required implementing also, along with std alloc split
2021-12-10 15:11:41 +11:00
Dario Nieuwenhuis
4ddd23d623
stm32/usart: unify v1 and v2
2021-12-08 05:12:48 +01:00
Dario Nieuwenhuis
b316d2620c
stm32/dma: improve trait docs, seal Word.
2021-12-08 03:18:15 +01:00
Matous Hybl
b2910558d3
Refactor DMA traits.
2021-12-07 21:43:47 +01:00
Bob McWhirter
44056c2e75
Less allowy.
2021-11-02 15:32:20 -04:00
Bob McWhirter
076c795ebb
Even more allowed unused.
2021-11-02 15:28:14 -04:00
Bob McWhirter
6bbf450478
Allow unused macros temporarily until U5 supports DMA.
2021-11-02 15:20:42 -04:00
Tobias Pisani
091e7e1f98
Generate USART pin definitions for stm32f1
2021-10-11 22:57:21 +02:00
Tobias Pisani
39880de958
partial alternate function configuration on STM32f1
2021-10-11 22:57:10 +02:00
Mariusz Ryndzionek
bce909ec1e
Initial STM32F1 family support with two examples for STM32F103C8 (Blue Pill)
2021-09-28 18:31:04 +02:00
Mariusz Ryndzionek
e4b37c40c9
Code review request - moving OutputType
to mod sealed
2021-09-24 19:56:48 +02:00
Mariusz Ryndzionek
d371298a27
Small adjustment to 'set_as_af' interface
...
Small adjustment to 'set_as_af' interface - v2
2021-09-24 18:39:07 +02:00
Dario Nieuwenhuis
ead987245d
embassy: Refactor module structure to remove kitchen-sink util
.
2021-09-11 02:35:35 +02:00
Ulf Lilleengen
cbff0398bb
Add IRQ-driven buffered USART implementation for STM32 v2 usart ( #356 )
...
* Add IRQ-driven buffered USART implementation for STM32 v2 usart
* Implementation based on nRF UARTE, but simplified to not use DMA to
avoid complex interaction between DMA and USART.
* Implementation of AsyncBufRead and AsyncWrite traits
* Some unit tests to ring buffer
* Update polyfill version
* Update sub module to get usart IRQ fix
2021-08-16 17:16:49 +02:00
Dario Nieuwenhuis
9bd34429f3
stm32: add missing + 'a
bounds on trait GATs
2021-08-04 19:39:54 +02:00
Ulf Lilleengen
0d02342b2d
Rename bread -> read_blocking
2021-08-04 08:34:30 +02:00
Ulf Lilleengen
6ff0614cb6
Add uart::Read DMA-based implementation
...
* Rename existing read() to bread() (blocking)
2021-08-03 15:31:24 +02:00
Dario Nieuwenhuis
7bfb763e09
Rename embassy-extras to embassy-hal-common
2021-07-29 13:44:51 +02:00
Dario Nieuwenhuis
3655048e0f
stm32/dma: add MuxChannel trait to distinguish DMAMUX1 and DMAMUX2 channels.
2021-07-17 07:54:16 +02:00
Dario Nieuwenhuis
54b5012c56
stm32/dma: update codegen+macrotables for new stm32-data
2021-07-17 07:35:59 +02:00
Dario Nieuwenhuis
d0f2dc3abd
Fix rustfmt
2021-07-16 14:41:20 -04:00
Dario Nieuwenhuis
3d1391ef2d
stm32/dma: impl all variants
2021-07-16 14:41:20 -04:00
Dario Nieuwenhuis
4361cb15f1
stm32/usart: merge v2 and v3 (they're identical)
2021-07-15 00:52:37 +02:00
Bob McWhirter
43cb8de434
Remove gratuitous NoDmaMarker.
2021-07-14 14:37:42 -04:00
Bob McWhirter
38b1359c40
Remove pub and cfg's, since they will be implied by the existance of TxDma<T> in theory.
2021-07-14 14:35:03 -04:00
Bob McWhirter
a88f0028ef
First shot at async dma usart for stm32.
2021-07-14 14:14:14 -04:00
Bob McWhirter
f01ddd5f5c
Mix dmamux into bdma_v1.
2021-07-13 10:09:35 -04:00
Bob McWhirter
043f0ea508
Checkpoint DMAMUX channel setup.
2021-07-13 10:08:43 -04:00
Thales Fragoso
91521a86a0
F0: usart + DMA working
2021-07-13 10:08:43 -04:00
Thales Fragoso
a56ddfdc04
STM: Add usart v2
2021-07-13 10:08:43 -04:00
Bob McWhirter
8f94123ca4
argh, intellij.
2021-07-01 11:37:01 -04:00
Bob McWhirter
0920c0cb1d
Make UART pins Rx/Tx/etc in addition to USART.
2021-07-01 11:30:54 -04:00
Bob McWhirter
54ada5bae1
Stub in the DMA bits that aren't yet there.
2021-07-01 11:30:54 -04:00
Bob McWhirter
bf3bc92525
Re-enable because intellij.
2021-07-01 11:30:54 -04:00
Bob McWhirter
497d3aa153
Add USARTv3 support.
2021-07-01 11:30:54 -04:00
Bob McWhirter
cf5b7dc943
Because IntelliJ makes life hard.
2021-06-30 10:03:18 -04:00
Bob McWhirter
6a0b0f3162
Enable RCC within the USART itself.
2021-06-30 09:57:27 -04:00
Bob McWhirter
07a6686879
Protect DMA-related things with cfg.
2021-06-29 13:00:52 -04:00
Bob McWhirter
c53ab325c1
Wire up DMA with USART v1.
2021-06-29 11:01:57 -04:00
Bob McWhirter
b88fc2847a
Checkpoint with lifetime issues.
2021-06-29 11:01:57 -04:00
Bob McWhirter
00892c7362
Migrate USART to macro tables.
2021-06-03 13:12:38 -04:00
Dario Nieuwenhuis
d8e4421fc6
Add stm32-metapac crate, with codegen in rust
2021-05-31 02:40:58 +02:00
Lucas Kent
82f9242df2
Fix warnings for embassy-stm32 and embassy-stm32-examples
2021-05-20 22:25:12 +10:00
Dario Nieuwenhuis
f7858631d8
stm32: fix build, add ci
2021-05-17 03:16:58 +02:00
Dario Nieuwenhuis
2303364322
Standardize module structure, fix some build failures
2021-05-17 02:04:51 +02:00
Dario Nieuwenhuis
bdc3ada4b2
WIP: dma
2021-05-17 01:08:30 +02:00
Dario Nieuwenhuis
befc052cba
stm32/usart_v1: add read
2021-05-17 01:04:51 +02:00
Dario Nieuwenhuis
852ca5a1c5
stm32/usart_v1: implement tx
2021-05-17 01:04:51 +02:00