tinyboot_ch32_hal/rcc/
v0.rs1pub fn enable_gpio(port_index: usize) {
2 ch32_metapac::RCC
4 .apb2pcenr()
5 .modify(|w| w.0 |= 1 << (2 + port_index));
6}
7
8pub fn enable_afio() {
9 ch32_metapac::RCC.apb2pcenr().modify(|w| w.set_afioen(true));
10}
11
12const USART1EN: u32 = 1 << 14;
13
14pub const fn usart_apb2_bit(n: u8) -> u32 {
16 match n {
17 1 => USART1EN,
18 _ => 0,
19 }
20}
21
22pub fn enable_usart(n: u8) {
24 let bit = usart_apb2_bit(n);
25 if bit != 0 {
26 ch32_metapac::RCC.apb2pcenr().modify(|w| w.0 |= bit);
27 }
28}
29
30#[inline(always)]
33pub fn enable_apb2(bits: u32) {
34 ch32_metapac::RCC.apb2pcenr().write(|w| w.0 = bits);
35}
36
37#[inline(always)]
40pub fn reset_apb2() {
41 let rcc = ch32_metapac::RCC;
42 let enabled = rcc.apb2pcenr().read().0;
43 rcc.apb2prstr().write(|w| w.0 = enabled);
44 rcc.apb2prstr().write(|w| w.0 = 0);
45 rcc.apb2pcenr().write(|w| w.0 = 0);
46}