Регистры STM32L0
Регистры периферии STM32L0x1 — STM32L011, L021, L031, L041, L051, L071 и L081: адреса блоков, битовые поля с назначением, значения после сброса по RM0377 и конструктор значения с кодом на C.
Источник — заголовки CMSIS STMicroelectronics (репозиторий cmsis-device-l0, Apache-2.0): структуры периферии со смещениями, адреса экземпляров и макросы полей. В этой волне — семь заголовков линейки L0x1, которую описывает справочное руководство RM0377. STM32L0x2 (RM0376), L0x3 с USB и ЖК-индикатором (RM0367) и value line L010 (RM0451) описаны в своих руководствах и появятся следующими.
Значения после сброса, назначение полей и смысл значений — по RM0377 Rev 10. Поля, которых нет у части микроконтроллеров, отмечены; биты, которые заголовок объявляет, а руководство оставляет зарезервированными (линия EXTI 18, ASTRTEN в SPI_I2SCFGR, HALF_ARRAY и NZDISABLE в FLASH_PECR, остановка I2C2 и I2C3 в DBG_APB1_FZ), на страницах не показаны.
Блоки периферии
- RCC — тактирование и сбросRCC_CR, RCC_ICSCR, RCC_CFGR, RCC_CIER, RCC_CIFR, RCC_CICR, RCC_IOPRSTR, RCC_AHBRSTR, RCC_APB2RSTR, RCC_APB1RSTR, RCC_IOPENR, RCC_AHBENR, RCC_APB2ENR, RCC_APB1ENR, RCC_IOPSMENR, RCC_AHBSMENR, RCC_APB2SMENR, RCC_APB1SMENR, RCC_CCIPR, 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, SYSCFG_EXTICR1, SYSCFG_EXTICR2, SYSCFG_EXTICR3, SYSCFG_EXTICR4, SYSCFG_CFGR3
- EXTI — контроллер внешних прерываний и событийEXTI_IMR, EXTI_EMR, EXTI_RTSR, EXTI_FTSR, EXTI_SWIER, EXTI_PR
- USART — последовательные порты USART и LPUARTUSART_CR1, USART_CR2, USART_CR3, USART_BRR, USART_GTPR, USART_RTOR, USART_RQR, USART_ISR, USART_ICR, USART_RDR, USART_TDR
- 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_CCR1, TIMx_CCR2, TIMx_CCR3, TIMx_CCR4, TIMx_DCR, TIMx_DMAR
- LPTIM — малопотребляющий таймерLPTIM_ISR, LPTIM_ICR, LPTIM_IER, LPTIM_CFGR, LPTIM_CR, LPTIM_CMP, LPTIM_ARR, LPTIM_CNT
- DMA — контроллер прямого доступа к памятиDMA_ISR, DMA_IFCR, DMA_CCR, DMA_CNDTR, DMA_CPAR, DMA_CMAR, DMA_CSELR
- АЦП — аналого-цифровой преобразовательADC_ISR, ADC_IER, ADC_CR, ADC_CFGR1, ADC_CFGR2, ADC_SMPR, ADC_TR, ADC_CHSELR, ADC_DR, 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 — поддержка отладкиDBGMCU_IDCODE, DBG_CR, DBG_APB1_FZ, DBG_APB2_FZ
- PWR — управление питаниемPWR_CR, PWR_CSR
- FLASH — интерфейс флеш-памяти и EEPROMFLASH_ACR, FLASH_PECR, FLASH_PDKEYR, FLASH_PEKEYR, FLASH_PRGKEYR, FLASH_OPTKEYR, FLASH_SR, FLASH_OPTR, FLASH_WRPROT1, FLASH_WRPROT2
- RTC — часы реального времениRTC_TR, RTC_DR, RTC_CR, RTC_ISR, RTC_PRER, RTC_WUTR, RTC_ALRMAR, RTC_ALRMBR, RTC_WPR, RTC_SSR, RTC_SHIFTR, RTC_TSTR, RTC_TSDR, RTC_TSSSR, RTC_CALR, RTC_TAMPCR, RTC_ALRMASSR, RTC_ALRMBSSR, RTC_OR, RTC_BKP0R, RTC_BKP1R, RTC_BKP2R, RTC_BKP3R, RTC_BKP4R
Заголовки CMSIS и микроконтроллеры
| Заголовок | Микроконтроллеры |
|---|---|
| stm32l011xx.h | STM32L011D3, STM32L011D4, STM32L011E3, STM32L011E4, STM32L011F3, STM32L011F4, STM32L011G3, STM32L011G4, STM32L011K3, STM32L011K4 |
| stm32l021xx.h | STM32L021D4, STM32L021F4, STM32L021G4, STM32L021K4 |
| stm32l031xx.h | STM32L031C6, STM32L031E6, STM32L031F6, STM32L031G6, STM32L031K6 |
| stm32l041xx.h | STM32L041C6, STM32L041E6, STM32L041F6, STM32L041G6, STM32L041K6 |
| stm32l051xx.h | STM32L051C6, STM32L051C8, STM32L051K6, STM32L051K8, STM32L051R6, STM32L051R8, STM32L051T6, STM32L051T8 |
| stm32l071xx.h | STM32L071C8, STM32L071CB, STM32L071CZ, STM32L071K8, STM32L071KB, STM32L071KZ, STM32L071RB, STM32L071RZ, STM32L071V8, STM32L071VB, STM32L071VZ |
| stm32l081xx.h | STM32L081CB, STM32L081CZ, STM32L081KZ |
Карта микроконтроллеров семейства с распиновками — на странице STM32L0.
Частые вопросы
Какой заголовок CMSIS нужен для STM32L031K6?
stm32l031xx.h: в STM32L0 заголовок один на линейку. Подключают его через stm32l0xx.h с макросом STM32L031xx.
Чем периферия STM32L0 отличается от STM32L1?
STM32L0 — это Cortex-M0+ с периферией поколения STM32F0 и STM32L4: порты с BRR и тактированием через RCC_IOPENR, USART и LPUART с ISR и ICR, I2C с TIMINGR, LPTIM, АЦП с маской каналов и передискретизацией. У STM32L1 (Cortex-M3) — периферия поколения STM32F1/F4.
Источники
- STMicroelectronics. RM0377: Reference manual (Rev 10) — описания регистров, назначение полей и значения после сброса
- STMicroelectronics. cmsis-device-l0 v1.9.4: заголовки CMSIS stm32l011xx.h, stm32l021xx.h, stm32l031xx.h, stm32l041xx.h, stm32l051xx.h, stm32l071xx.h, stm32l081xx.h — структуры периферии, смещения, адреса экземпляров и макросы полей; лицензия Apache-2.0
Нашли ошибку в регистрах?