rtc.rs 625 B

12345678910111213141516171819202122232425262728293031
  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 stm32f1xx_hal::{
  8. prelude::*,
  9. pac,
  10. rtc::Rtc,
  11. };
  12. use cortex_m_rt::entry;
  13. #[entry]
  14. fn main() -> ! {
  15. let p = pac::Peripherals::take().unwrap();
  16. let mut pwr = p.PWR;
  17. let mut rcc = p.RCC.constrain();
  18. let mut backup_domain = rcc.bkp.constrain(p.BKP, &mut rcc.apb1, &mut pwr);
  19. let rtc = Rtc::rtc(p.RTC, &mut backup_domain);
  20. loop {
  21. hprintln!("time: {}", rtc.current_time()).unwrap();
  22. }
  23. }