rtc.rs 610 B

123456789101112131415161718192021222324252627
  1. //! Outputs the current time in seconds to hstdout using the real time clock
  2. #![deny(unsafe_code)]
  3. #![no_std]
  4. #![no_main]
  5. use panic_semihosting as _;
  6. use cortex_m_semihosting::hprintln;
  7. use cortex_m_rt::entry;
  8. use stm32f1xx_hal::{pac, prelude::*, rtc::Rtc};
  9. #[entry]
  10. fn main() -> ! {
  11. let p = pac::Peripherals::take().unwrap();
  12. let mut pwr = p.PWR;
  13. let mut rcc = p.RCC.constrain();
  14. let mut backup_domain = rcc.bkp.constrain(p.BKP, &mut rcc.apb1, &mut pwr);
  15. let rtc = Rtc::rtc(p.RTC, &mut backup_domain);
  16. loop {
  17. hprintln!("time: {}", rtc.current_time()).unwrap();
  18. }
  19. }