1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
use crate::pac::CRC;
use crate::rcc::{Enable, AHB};
pub trait CrcExt {
fn new(self, ahb: &mut AHB) -> Crc;
}
impl CrcExt for CRC {
fn new(self, ahb: &mut AHB) -> Crc {
CRC::enable(ahb);
Crc { crc: self }
}
}
pub struct Crc {
crc: CRC,
}
impl Crc {
pub fn read(&self) -> u32 {
self.crc.dr.read().bits()
}
pub fn write(&mut self, val: u32) {
self.crc.dr.write(|w| w.dr().bits(val))
}
pub fn reset(&self) {
self.crc.cr.write(|w| w.reset().set_bit());
cortex_m::asm::nop();
}
}