File tree Expand file tree Collapse file tree 1 file changed +50
-0
lines changed Expand file tree Collapse file tree 1 file changed +50
-0
lines changed Original file line number Diff line number Diff line change 1+ #![ no_main]
2+ #![ no_std]
3+
4+ use panic_halt as _;
5+
6+ use cortex_m;
7+ use cortex_m_rt:: entry;
8+ use stm32f4xx_hal as hal;
9+
10+ use crate :: hal:: { prelude:: * , serial:: config:: Config , serial:: Serial , stm32} ;
11+
12+ use core:: fmt:: Write ; // for pretty formatting of the serial output
13+
14+ #[ entry]
15+ fn main ( ) -> ! {
16+ let dp = stm32:: Peripherals :: take ( ) . unwrap ( ) ;
17+ let cp = cortex_m:: peripheral:: Peripherals :: take ( ) . unwrap ( ) ;
18+
19+ let gpioa = dp. GPIOA . split ( ) ;
20+
21+ let rcc = dp. RCC . constrain ( ) ;
22+
23+ let clocks = rcc. cfgr . use_hse ( 8 . mhz ( ) ) . freeze ( ) ;
24+
25+ let mut delay = hal:: delay:: Delay :: new ( cp. SYST , clocks) ;
26+
27+ // define RX/TX pins
28+ let tx_pin = gpioa. pa2 . into_alternate_af7 ( ) ;
29+ let rx_pin = gpioa. pa3 . into_alternate_af7 ( ) ;
30+
31+ // configure serial
32+ let serial = Serial :: usart2 (
33+ dp. USART2 ,
34+ ( tx_pin, rx_pin) ,
35+ Config :: default ( ) . baudrate ( 9600 . bps ( ) ) ,
36+ clocks,
37+ )
38+ . unwrap ( ) ;
39+
40+ let ( mut tx, mut _rx) = serial. split ( ) ;
41+
42+ let mut value: u8 = 0 ;
43+
44+ loop {
45+ // print some value every 500 ms, value will overflow after 255
46+ writeln ! ( tx, "value: {:02}\r " , value) . unwrap ( ) ;
47+ value += 1 ;
48+ delay. delay_ms ( 500_u32 ) ;
49+ }
50+ }
You can’t perform that action at this time.
0 commit comments