Регистры STM32G0
Регистры периферии STM32G0x1 — STM32G031, G041, G051, G061, G071, G081, G0B1 и G0C1: адреса блоков, битовые поля с назначением, значения после сброса по RM0444 и конструктор значения с кодом на C.
Источник — заголовки CMSIS пакета STM32CubeG0 (репозиторий cmsis-device-g0, Apache-2.0). В этой волне — восемь заголовков линейки STM32G0x1, которую описывает RM0444; линейка STM32G0x0 (G030, G050, G070, G0B0) описана в RM0454 и появится отдельно. Поля, которых нет у части микроконтроллеров, отмечены.
STM32G0 ближе всего к STM32F0, но у него другие RCC и PWR, мультиплексор запросов DMAMUX, EXTI с раздельными флагами фронтов, таймеры с четырёхбитным режимом OCxM и блок TAMP рядом с RTC. После сброса выводы находятся в аналоговом режиме.
Блоки периферии
- RCC — тактирование и сбросRCC_CR, RCC_ICSCR, RCC_CFGR, RCC_PLLCFGR, RCC_CRRCR, RCC_CIER, RCC_CIFR, RCC_CICR, RCC_IOPRSTR, RCC_AHBRSTR, RCC_APBRSTR1, RCC_APBRSTR2, RCC_IOPENR, RCC_AHBENR, RCC_APBENR1, RCC_APBENR2, RCC_IOPSMENR, RCC_AHBSMENR, RCC_APBSMENR1, RCC_APBSMENR2, RCC_CCIPR, RCC_CCIPR2, RCC_BDCR, RCC_CSR
- GPIO — порты ввода-выводаGPIOx_MODER, GPIOx_OTYPER, GPIOx_OSPEEDR, GPIOx_PUPDR, GPIOx_IDR, GPIOx_ODR, GPIOx_BSRR, GPIOx_LCKR, GPIOx_AFRL, GPIOx_AFRH, GPIOx_BRR
- SYSCFG — системная конфигурацияSYSCFG_CFGR1, SYSCFG_CFGR2
- EXTI — внешние прерыванияEXTI_RTSR1, EXTI_FTSR1, EXTI_SWIER1, EXTI_RPR1, EXTI_FPR1, EXTI_RTSR2, EXTI_FTSR2, EXTI_SWIER2, EXTI_RPR2, EXTI_FPR2, EXTI_EXTICR1, EXTI_EXTICR2, EXTI_EXTICR3, EXTI_EXTICR4, EXTI_IMR1, EXTI_EMR1, EXTI_IMR2, EXTI_EMR2
- USART — последовательные порты USART и LPUARTUSART_CR1, USART_CR2, USART_CR3, USART_BRR, USART_GTPR, USART_RTOR, USART_RQR, USART_ISR, USART_ICR, USART_RDR, USART_TDR, USART_PRESC
- SPI — интерфейсы SPI и I2SSPI_CR1, SPI_CR2, SPI_SR, SPI_DR, SPI_CRCPR, SPI_RXCRCR, SPI_TXCRCR, SPI_I2SCFGR, SPI_I2SPR
- I2C — интерфейс I2CI2C_CR1, I2C_CR2, I2C_OAR1, I2C_OAR2, I2C_TIMINGR, I2C_TIMEOUTR, I2C_ISR, I2C_ICR, I2C_PECR, I2C_RXDR, I2C_TXDR
- TIM — таймерыTIMx_CR1, TIMx_CR2, TIMx_SMCR, TIMx_DIER, TIMx_SR, TIMx_EGR, TIMx_CCMR1, TIMx_CCMR2, TIMx_CCER, TIMx_CNT, TIMx_PSC, TIMx_ARR, TIMx_RCR, TIMx_CCR1, TIMx_CCR2, TIMx_CCR3, TIMx_CCR4, TIMx_BDTR, TIMx_DCR, TIMx_DMAR, TIMx_CCMR3, TIMx_CCR5, TIMx_CCR6, TIMx_TISEL
- LPTIM — маломощные таймерыLPTIM_ISR, LPTIM_ICR, LPTIM_IER, LPTIM_CFGR, LPTIM_CR, LPTIM_CMP, LPTIM_ARR, LPTIM_CNT, LPTIM_CFGR2
- DMA — прямой доступ к памяти и DMAMUXDMA_ISR, DMA_IFCR, DMA_CCR, DMA_CNDTR, DMA_CPAR, DMA_CMAR, DMAMUX_CxCR, DMAMUX_CSR, DMAMUX_CFR, DMAMUX_RGxCR, DMAMUX_RGSR, DMAMUX_RGCFR
- ADC — аналого-цифровой преобразовательADC_ISR, ADC_IER, ADC_CR, ADC_CFGR1, ADC_CFGR2, ADC_SMPR, ADC_AWD1TR, ADC_AWD2TR, ADC_CHSELR, ADC_AWD3TR, ADC_DR, ADC_AWD2CR, ADC_AWD3CR, ADC_CALFACT, ADC_CCR
- IWDG — независимый сторожевой таймерIWDG_KR, IWDG_PR, IWDG_RLR, IWDG_SR, IWDG_WINR
- WWDG — оконный сторожевой таймерWWDG_CR, WWDG_CFR, WWDG_SR
- CRC — вычислитель CRCCRC_DR, CRC_IDR, CRC_CR, CRC_INIT, CRC_POL
- DBG — блок отладкиDBG_IDCODE, DBG_CR, DBG_APB_FZ1, DBG_APB_FZ2
- PWR — управление питаниемPWR_CR1, PWR_CR2, PWR_CR3, PWR_CR4, PWR_SR1, PWR_SR2, PWR_SCR, PWR_PUCRA, PWR_PDCRA, PWR_PUCRB, PWR_PDCRB, PWR_PUCRC, PWR_PDCRC, PWR_PUCRD, PWR_PDCRD, PWR_PUCRE, PWR_PDCRE, PWR_PUCRF, PWR_PDCRF
- FLASH — интерфейс флеш-памятиFLASH_ACR, FLASH_KEYR, FLASH_OPTKEYR, FLASH_SR, FLASH_CR, FLASH_ECCR, FLASH_ECC2R, FLASH_OPTR, FLASH_PCROP1ASR, FLASH_PCROP1AER, FLASH_WRP1AR, FLASH_WRP1BR, FLASH_PCROP1BSR, FLASH_PCROP1BER, FLASH_PCROP2ASR, FLASH_PCROP2AER, FLASH_WRP2AR, FLASH_WRP2BR, FLASH_PCROP2BSR, FLASH_PCROP2BER, FLASH_SECR
- RTC — часы реального времени и защита от вмешательстваRTC_TR, RTC_DR, RTC_SSR, RTC_ICSR, RTC_PRER, RTC_WUTR, RTC_CR, RTC_WPR, RTC_CALR, RTC_SHIFTR, RTC_TSTR, RTC_TSDR, RTC_TSSSR, RTC_ALRMAR, RTC_ALRMASSR, RTC_ALRMBR, RTC_ALRMBSSR, RTC_SR, RTC_MISR, RTC_SCR, TAMP_CR1, TAMP_CR2, TAMP_FLTCR, TAMP_IER, TAMP_SR, TAMP_MISR, TAMP_SCR, TAMP_BKP0R, TAMP_BKP1R, TAMP_BKP2R, TAMP_BKP3R, TAMP_BKP4R
- DAC — цифро-аналоговый преобразовательDAC_CR, DAC_SWTRIGR, DAC_DHR12R1, DAC_DHR12L1, DAC_DHR8R1, DAC_DHR12R2, DAC_DHR12L2, DAC_DHR8R2, DAC_DHR12RD, DAC_DHR12LD, DAC_DHR8RD, DAC_DOR1, DAC_DOR2, DAC_SR, DAC_CCR, DAC_MCR, DAC_SHSR1, DAC_SHSR2, DAC_SHHR, DAC_SHRR
Заголовки CMSIS и микроконтроллеры
| Заголовок | Микроконтроллеры |
|---|---|
| stm32g031xx.h | STM32G031xx |
| stm32g041xx.h | STM32G041xx |
| stm32g051xx.h | STM32G051xx |
| stm32g061xx.h | STM32G061xx |
| stm32g071xx.h | STM32G071xx |
| stm32g081xx.h | STM32G081xx |
| stm32g0b1xx.h | STM32G0B1xx |
| stm32g0c1xx.h | STM32G0C1xx |
Карта микроконтроллеров семейства с распиновками — на странице STM32G0.
Частые вопросы
Какой заголовок CMSIS нужен для STM32G030?
stm32g030xx.h. Линейка G0x0 описана в RM0454; у неё меньше периферии (нет LPTIM, LPUART, DAC), а общие блоки совпадают с блоками STM32G031 на этой странице.
Чем регистры STM32G0 отличаются от STM32F0?
Тактированием (RCC_IOPENR, APBENR1/2, PLL с выходами P, Q, R), питанием (режимы Stop 0/1, Shutdown, подтяжки в Standby), EXTI (выбор порта в самом EXTI, флаги RPR и FPR), DMAMUX и таймерами с расширенными полями OCxM, SMS и TS.
Источники
- STMicroelectronics. RM0444: Reference manual (Rev 6) — описания регистров, назначение полей и значения после сброса
- STMicroelectronics. cmsis-device-g0 v1.4.5: заголовки CMSIS stm32g031xx.h, stm32g041xx.h, stm32g051xx.h, stm32g061xx.h, stm32g071xx.h, stm32g081xx.h, stm32g0b1xx.h, stm32g0c1xx.h — структуры периферии, смещения, адреса экземпляров и макросы полей; лицензия Apache-2.0
Нашли ошибку в регистрах?