stm32_rust_template/mcu/stm32g030/
mod.rs1pub const TIM2_BASEADDR: u32 = 0x40000000;
5pub const TIM3_BASEADDR: u32 = 0x40000400;
6pub const TIM14_BASEADDR: u32 = 0x40002000;
7pub const RTC_BASEADDR: u32 = 0x40002800;
8pub const WWDG_BASEADDR: u32 = 0x40002C00;
9pub const IWDG_BASEADDR: u32 = 0x40003000;
10pub const SPI2_BASEADDR: u32 = 0x40003800;
11pub const USART2_BASEADDR: u32 = 0x40004400;
12pub const I2C1_BASEADDR: u32 = 0x40005400;
13pub const I2C2_BASEADDR: u32 = 0x40005800;
14pub const PWR_BASEADDR: u32 = 0x40007000;
15pub const SYSCFG_BASEADDR: u32 = 0x40010000;
16pub const ADC_BASEADDR: u32 = 0x40012400;
17pub const TIM1_BASEADDR: u32 = 0x40012C00;
18pub const SPI1_BASEADDR: u32 = 0x40013000;
19pub const USART1_BASEADDR: u32 = 0x40013800;
20pub const TIM16_BASEADDR: u32 = 0x40014400;
21pub const TIM17_BASEADDR: u32 = 0x40014800;
22pub const GPIOA_BASEADDR: u32 = 0x50000000;
23pub const GPIOB_BASEADDR: u32 = 0x50000400;
24pub const GPIOC_BASEADDR: u32 = 0x50000800;
25pub const GPIOD_BASEADDR: u32 = 0x50000C00;
26pub const GPIOF_BASEADDR: u32 = 0x50001400;
27pub const RCC_BASEADDR: u32 = 0x40021000;
28pub const EXTI_BASEADDR: u32 = 0x40021800;
29pub const FLASH_R_BASEADDR: u32 = 0x40022000;
30pub const CRC_BASEADDR: u32 = 0x40023000;
31pub const DMA_BASEADDR: u32 = 0x40020000;
32
33#[allow(non_camel_case_types)]
37#[repr(u8)]
38pub enum IRQn {
39 WWDG = 0,
40 RTC_TAMP = 2,
41 FLASH = 3,
42 RCC = 4,
43 EXTI0_1 = 5,
44 EXTI2_3 = 6,
45 EXTI4_15 = 7,
46 DMA1_Channel1 = 9,
47 DMA1_Channel2_3 = 10,
48 DMA1_Ch4_5_DMAMUX1_OVR = 11,
49 ADC = 12,
50 TIM1_BRK_UP_TRG_COM = 13,
51 TIM1_CC = 14,
52 TIM2 = 15,
53 TIM3 = 16,
54 TIM14 = 19,
55 TIM16 = 21,
56 TIM17 = 22,
57 I2C1 = 23,
58 I2C2 = 24,
59 SPI1 = 25,
60 SPI2 = 26,
61 USART1 = 27,
62 USART2 = 28,
63 LPTIM1 = 29,
64 LPTIM2 = 30,
65 TIM6_DAC_LPTIM1 = 31,
66 TIM7_LPTIM2 = 32,
67 LPUART1 = 33,
68}
69
70pub trait PeripheralAccess {
71 const BASE_ADDRESS: u32;
72 type RegisterBlock;
73
74 fn ptr() -> *const Self::RegisterBlock {
75 Self::BASE_ADDRESS as *const Self::RegisterBlock
76 }
77
78 fn ptr_mut() -> *mut Self::RegisterBlock {
79 Self::BASE_ADDRESS as *mut Self::RegisterBlock
80 }
81}
82
83pub mod gpio;
85pub mod rcc;
86