с сериал порта на stm32 🙁
                  
                  
                  
                  
                  
                  rust
                  
                  
                          let mut gpiob: stm32f1xx_hal::gpio::gpiob::Parts = cx.device.GPIOB.split();
                  
                  
                          let tx_pin = gpiob.pb10.into_alternate_push_pull(&mut gpiob.crh);
                  
                  
                          let rx_pin = gpiob.pb11; //.into_pull_down_input(&mut gpiob.crh);
                  
                  
                  
                  
                  
                          let mut afio = cx.device.AFIO.constrain();
                  
                  
                          let serial = Serial::new(
                  
                  
                              cx.device.USART3,
                  
                  
                              (tx_pin, rx_pin),
                  
                  
                              &mut afio.mapr,
                  
                  
                              Config::default()
                  
                  
                                  .baudrate(9600.bps())
                  
                  
                                  .wordlength_8bits()
                  
                  
                                  .stopbits(stm32f1xx_hal::serial::StopBits::STOP1)
                  
                  
                                  .parity_none(),
                  
                  
                              &clocks,
                  
                  
                          );
                  
                  
                  
                  
                  
                          let (tx, rx) = serial.split();
                  
                  
                  
                  
                  
                  // …
                  
                  
                  
                  
                  
                              if rx.is_rx_not_empty() {
                  
                  
                                  let received = rx.read();
                  
                  
                                  match received {
                  
                  
                                      Ok(read) => defmt::debug!("receive: {}", read),
                  
                  
                  
                  
                  
                                      Err(err) => {
                  
                  
                                          defmt::debug!("read err: {:?}", defmt::Debug2Format(&err));
                  
                  
                                      }
                  
                  
                                  }
                  
                  
                              }
                  
                  
                
так если overrun - то ты не у спеваешь читать. выложи весь код на гист или типа того, пока непонятно
вообще лучше всего проект сразу на гитхаб
Обсуждают сегодня