Select Git revision
get_sign.rs
Forked from
Per Lindgren / klee_tutorial
Source project has a limited visibility.
serial-dma-tx.rs 1.05 KiB
//! Serial interface with dma
#![deny(unsafe_code)]
#![deny(warnings)]
#![no_std]
extern crate cortex_m;
extern crate stm32f4x_hal as f4;
use cortex_m::asm;
use f4::prelude::*;
use f4::serial::Serial;
use f4::stm32f4x;
fn main() {
let p = stm32f4x::Peripherals::take().unwrap();
let mut flash = p.FLASH.constrain();
let mut rcc = p.RCC.constrain();
let mut gpioa = p.GPIOA.split(&mut rcc.ahb1);
let streams = p.DMA1.split(&mut rcc.ahb1);
let tx_stream = streams.1.into_channel4(); // S6<C4>
let clocks = rcc.cfgr.freeze(&mut flash.acr);
let tx = gpioa.pa2.into_af7(&mut gpioa.moder, &mut gpioa.afrl);
let rx = gpioa.pa3.into_af7(&mut gpioa.moder, &mut gpioa.afrl);
let serial = Serial::usart2(p.USART2, (tx, rx), 115_200.bps(), clocks, &mut rcc.apb1);
let (tx, _) = serial.split();
let (_, c, tx) = tx.write_all(tx_stream, b"The quick brown fox").wait();
asm::bkpt();
let (_, c, tx) = tx.write_all(c, b" jumps").wait();
asm::bkpt();
tx.write_all(c, b" over the lazy dog.").wait();
asm::bkpt();
}