[−][src]Module stm32f0xx_hal::serial
API for the integrated USART ports
This only implements the usual asynchronous bidirectional 8-bit transfers.
It's possible to use a read-only/write-only serial implementation with
usartXrx
/usartXtx
.
Examples
Echo
use stm32f0xx_hal as hal; use crate::hal::prelude::*; use crate::hal::serial::Serial; use crate::hal::stm32; use nb::block; cortex_m::interrupt::free(|cs| { let rcc = p.RCC.configure().sysclk(48.mhz()).freeze(); let gpioa = p.GPIOA.split(&mut rcc); let tx = gpioa.pa9.into_alternate_af1(cs); let rx = gpioa.pa10.into_alternate_af1(cs); let mut serial = Serial::usart1(p.USART1, (tx, rx), 115_200.bps(), &mut rcc); loop { let received = block!(serial.read()).unwrap(); block!(serial.write(received)).ok(); } });
Hello World
use stm32f0xx_hal as hal; use crate::hal::prelude::*; use crate::hal::serial::Serial; use crate::hal::stm32; use nb::block; cortex_m::interrupt::free(|cs| { let rcc = p.RCC.configure().sysclk(48.mhz()).freeze(); let gpioa = p.GPIOA.split(&mut rcc); let tx = gpioa.pa9.into_alternate_af1(cs); let mut serial = Serial::usart1tx(p.USART1, tx, 115_200.bps(), &mut rcc); loop { serial.write_str("Hello World!\r\n"); } });
Structs
Rx | Serial receiver |
Serial | Serial abstraction |
Tx | Serial transmitter |
Enums
Error | Serial error |
Event | Interrupt event |
Traits
RxPin | |
TxPin |