Commit Graph

213 Commits

Author SHA1 Message Date
Dario Nieuwenhuis
609b1b0355
Merge pull request #3286 from trnila/stm32_usart_break
stm32/usart: sending break character
2024-09-10 21:33:27 +00:00
Badr Bouslikhin
ee25f14b20
fix(stm32): reorder dma and idle futures 2024-09-06 18:55:33 +02:00
Daniel Trnka
22f4459ae2 stm32/usart: sending break character in buffered usart 2024-08-28 21:55:08 +02:00
Daniel Trnka
bea1f34440 stm32/usart: sending break character 2024-08-25 21:49:43 +02:00
Karun
bbc06035c1 make half duplex fn private 2024-08-19 12:15:39 -04:00
Karun
fcf9b3239e remove duplication 2024-08-19 11:27:18 -04:00
Karun
446169b2c1 Add gpio version dependency
Add configurable output type for half-duplex
2024-08-06 11:52:16 -04:00
Karun
a725892720 Convert uart half_duplex to use open-drain pull-up 2024-08-05 15:37:03 -04:00
rafael
d9ea5cb015 stm after cargo fix 2024-07-14 17:56:56 +02:00
rafael
c7f775dc20 stm 2024-07-14 16:42:54 +02:00
Роман Кривенков
a862334dae STM32 Half-Duplex: fix sequential reads and writes 2024-07-02 02:45:06 +02:00
Jan Špaček
94007ce6e0 stm32/gpio: refactor AfType 2024-06-16 21:11:55 +02:00
Jan Špaček
f3703ff6bf stm32/usart: set refcount even if initialization failed 2024-06-03 20:12:33 +02:00
Jan Špaček
664e4a5c03 stm32/usart: move init code to function that's not generic in T 2024-06-01 19:46:39 +02:00
Jan Špaček
44e4a2c9e9 stm32/buffered-usart: use new_pin! and disconnect pins on drop 2024-06-01 19:46:39 +02:00
Jan Špaček
ade27b7f21 stm32/usart: disconnect pins of RingBufferedUartRx on drop 2024-06-01 19:46:39 +02:00
Jan Špaček
081afca3f0 stm32/rcc: replace generated enable/disable code with runtime info 2024-05-25 18:44:55 +02:00
Jan Špaček
183f2f6913 stm32/usart: remove instance generic params 2024-05-23 16:32:15 +02:00
Scott Mabin
94e559eba7 Don't teardown during reconfigure 2024-05-22 22:28:03 +01:00
Роман Кривенков
d5f0bceb7c Clear Receiver enable flag before write in Half-Duplex mode 2024-05-02 15:59:42 +04:00
qwerty19106
c929ad226b
Improve Uart::new_half_duplex docs 2024-04-27 12:22:35 +04:00
Dario Nieuwenhuis
5732ee7ca9 Reduce use of the full futures crate. 2024-04-26 23:22:25 +02:00
Dario Nieuwenhuis
a8401ec94e stm32/usart: remove wildcard import. 2024-04-26 22:59:11 +02:00
Michael de Silva
02bb85a791 Add trace logging for USART 2024-04-24 01:59:00 +05:30
qwerty19106
ce58cd0f1c Allow Uart::new_half_duplex for all usart_vx 2024-04-18 10:34:52 +04:00
Dario Nieuwenhuis
d6b1233f16 stm32/usart: remove DMA generic params. 2024-04-16 02:00:55 +02:00
Dario Nieuwenhuis
d597815c9a stm32: remove last few mod sealed's. 2024-04-05 00:48:46 +02:00
Emilie Burgun
e3ef7cd99f Document why embedded_io::Read cannot be implemented for the base Uart 2024-03-27 11:10:16 +01:00
Emilie Burgun
1acc34bfaa Remove the need for TxDma to be a DMA channel in the blocking UartTx impl 2024-03-26 17:45:38 +01:00
Dario Nieuwenhuis
2bca875b5f stm32: use private_bounds for sealed traits. 2024-03-23 01:38:51 +01:00
Ralf
08e2ba9d74 STM32 BufferedUart: wake receive task for each received byte
Fixes https://github.com/embassy-rs/embassy/issues/2719
2024-03-21 08:35:41 +01:00
Dario Nieuwenhuis
eca9aac194 Fix warnings in recent nightly. 2024-03-20 16:39:09 +01:00
Dario Nieuwenhuis
e67dfcb04f stm32/dma: add AnyChannel, add support for BDMA on H7. 2024-02-24 02:41:41 +01:00
Grant Miller
87a52f5ead stm32/usart: Add doc links to buffered uarts 2024-02-03 17:04:20 -06:00
Andres Vahter
ec2e3de0f4 stm32 uart: fix buffered flush for usart_v1, usart_v2
There is one caveat. For some reason with first send using usart_v1/usart_v2 TC flag appears right after first byte from buffer is written to DR. Consecutive transfers work as expected - TC flag appears when last byte is fully transferred to wire.
2024-01-20 00:15:40 +01:00
Andres Vahter
534c53c901 stm32 uart: remove unwrap
unwraps take more space because of panics
2024-01-20 00:15:40 +01:00
Andres Vahter
c936d66934 stm32 uart: fix flush for non usart_v4 variants
Byte was written to TDR and right after that waker was called. This means `flush` would see that `tx_buf` is empty and can return Ready although actually hardware was still writing this last byte to the wire.
With this change non `usart_v4 ` variants would also use TC interrupt to check when last byte was sent out.
2024-01-20 00:15:39 +01:00
Andres Vahter
17d6e4eefe stm32 uart: do not wake after sending each byte
usart_v4 uses TC interrupt to see if all bytes are sent out from the FIFO and waker is called from this interrupt. This minimises unnecessary wakeups during sending.
2024-01-20 00:15:39 +01:00
Andres Vahter
ec47e931ac stm32: fix buffered uart flush
usart_v4 uses internal FIFO and therefore actually all bytes are not yet sent out although state.tx_buf.is_empty()
2024-01-20 00:15:39 +01:00
Harry Brooke
d781e231cd make usart::State private 2024-01-19 23:20:20 +01:00
lights0123
dc295fa1db
stm32: add half duplex USART driver 2023-12-26 16:35:36 -05:00
Barnaby Walters
f97ef61ef8 Documented usart public API 2023-12-19 16:41:00 +01:00
Dario Nieuwenhuis
49534cd405 stm32: more docs. 2023-12-19 00:10:36 +01:00
Dario Nieuwenhuis
80c9d04bbd stm32: add some docs. 2023-12-18 00:53:18 +01:00
lights0123
dfba51d3f2
stm32: usart pin inversion 2023-12-10 18:39:45 -05:00
Dario Nieuwenhuis
c6989dfbca Remove nightly and unstable-traits features in preparation for 1.75. 2023-11-29 17:26:33 +01:00
Andres Vahter
bda99e59ec stm32: fix uart parity, add comment why it is so 2023-10-24 15:57:03 +03:00
Andres Vahter
25c2a9baaa stm32 uart: remove redundant set_fifoen(true) 2023-10-24 10:11:54 +03:00
Andres Vahter
1e362c750b stm32 uart: use ConfigError instead of () as error 2023-10-24 09:54:17 +03:00
Andres Vahter
7f72dbdaf2 stm32: fix set_config for buffered uart
In reconfigure() cr1 register is initialised with write (not modify) which means rxneie and idleneie are disabled after reconfiguration.
2023-10-24 09:09:33 +03:00