Ultra Low Power STM32L0x1 Advanced ARM® Based 32 Bit MCUs STM32L071 Referencni Manual
User Manual:
Open the PDF directly: View PDF
Page Count: 882 [warning: Documents this large are best viewed by clicking the View PDF Link!]
- 1 Documentation conventions
- 2 System and memory overview
- 3 Flash program memory and data EEPROM (FLASH)
- 3.1 Introduction
- 3.2 NVM main features
- 3.3 NVM functional description
- 3.4 Memory protection
- 3.5 NVM interrupts
- 3.6 Memory interface management
- 3.7 Flash register description
- 3.7.1 Access control register (FLASH_ACR)
- 3.7.2 Program and erase control register (FLASH_PECR)
- 3.7.3 Power-down key register (FLASH_PDKEYR)
- 3.7.4 PECR unlock key register (FLASH_PEKEYR)
- 3.7.5 Program and erase key register (FLASH_PRGKEYR)
- 3.7.6 Option bytes unlock key register (FLASH_OPTKEYR)
- 3.7.7 Status register (FLASH_SR)
- 3.7.8 Option bytes register (FLASH_OPTR)
- 3.7.9 Write protection register 1 (FLASH_WRPROT1)
- 3.7.10 Write protection register 2 (FLASH_WRPROT2)
- 3.7.11 Flash register map
- 3.8 Option bytes
- 4 Cyclic redundancy check calculation unit (CRC)
- 5 Firewall (FW)
- 5.1 Introduction
- 5.2 Firewall main features
- 5.3 Firewall functional description
- 5.4 Firewall registers
- 5.4.1 Code segment start address (FW_CSSA)
- 5.4.2 Code segment length (FW_CSL)
- 5.4.3 Non-volatile data segment start address (FW_NVDSSA)
- 5.4.4 Non-volatile data segment length (FW_NVDSL)
- 5.4.5 Volatile data segment start address (FW_VDSSA)
- 5.4.6 Volatile data segment length (FW_VDSL)
- 5.4.7 Configuration register (FW_CR)
- 5.4.8 Firewall register map
- 6 Power control (PWR)
- 6.1 Power supplies
- 6.1.1 Independent A/D converter supply and reference voltage
- 6.1.2 RTC and RTC backup registers
- 6.1.3 Voltage regulator
- 6.1.4 Dynamic voltage scaling management
- 6.1.5 Dynamic voltage scaling configuration
- 6.1.6 Voltage regulator and clock management when VDD drops below 1.71 V
- 6.1.7 Voltage regulator and clock management when modifying the VCORE range
- 6.1.8 Voltage range and limitations when VDD ranges from 1.71 V to 2.0 V
- 6.2 Power supply supervisor
- 6.3 Low-power modes
- 6.3.1 Behavior of clocks in low-power modes
- 6.3.2 Slowing down system clocks
- 6.3.3 Peripheral clock gating
- 6.3.4 Low-power run mode (LP run)
- 6.3.5 Entering low-power mode
- 6.3.6 Exiting low-power mode
- 6.3.7 Sleep mode
- 6.3.8 Low-power sleep mode (LP sleep)
- 6.3.9 Stop mode
- 6.3.10 Standby mode
- 6.3.11 Waking up the device from Stop and Standby modes using the RTC and comparators
- 6.4 Power control registers
- 6.1 Power supplies
- 7 Reset and clock control (RCC)
- 7.1 Reset
- 7.2 Clocks
- 7.2.1 HSE clock
- 7.2.2 HSI16 clock
- 7.2.3 MSI clock
- 7.2.4 PLL
- 7.2.5 LSE clock
- 7.2.6 LSI clock
- 7.2.7 System clock (SYSCLK) selection
- 7.2.8 System clock source frequency versus voltage range
- 7.2.9 HSE clock security system (CSS)
- 7.2.10 LSE Clock Security System
- 7.2.11 RTC clock
- 7.2.12 Watchdog clock
- 7.2.13 Clock-out capability
- 7.2.14 Internal/external clock measurement using TIM21
- 7.2.15 Clock-independent system clock sources for TIM2/TIM21/TIM22
- 7.3 RCC registers
- 7.3.1 Clock control register (RCC_CR)
- 7.3.2 Internal clock sources calibration register (RCC_ICSCR)
- 7.3.3 Clock configuration register (RCC_CFGR)
- 7.3.4 Clock interrupt enable register (RCC_CIER)
- 7.3.5 Clock interrupt flag register (RCC_CIFR)
- 7.3.6 Clock interrupt clear register (RCC_CICR)
- 7.3.7 GPIO reset register (RCC_IOPRSTR)
- 7.3.8 AHB peripheral reset register (RCC_AHBRSTR)
- 7.3.9 APB2 peripheral reset register (RCC_APB2RSTR)
- 7.3.10 APB1 peripheral reset register (RCC_APB1RSTR)
- 7.3.11 GPIO clock enable register (RCC_IOPENR)
- 7.3.12 AHB peripheral clock enable register (RCC_AHBENR)
- 7.3.13 APB2 peripheral clock enable register (RCC_APB2ENR)
- 7.3.14 APB1 peripheral clock enable register (RCC_APB1ENR)
- 7.3.15 GPIO clock enable in Sleep mode register (RCC_IOPSMENR)
- 7.3.16 AHB peripheral clock enable in Sleep mode register (RCC_AHBSMENR)
- 7.3.17 APB2 peripheral clock enable in Sleep mode register (RCC_APB2SMENR)
- 7.3.18 APB1 peripheral clock enable in Sleep mode register (RCC_APB1SMENR)
- 7.3.19 Clock configuration register (RCC_CCIPR)
- 7.3.20 Control/status register (RCC_CSR)
- 7.3.21 RCC register map
- 8 General-purpose I/Os (GPIO)
- 8.1 Introduction
- 8.2 GPIO main features
- 8.3 GPIO functional description
- 8.3.1 General-purpose I/O (GPIO)
- 8.3.2 I/O pin alternate function multiplexer and mapping
- 8.3.3 I/O port control registers
- 8.3.4 I/O port data registers
- 8.3.5 I/O data bitwise handling
- 8.3.6 GPIO locking mechanism
- 8.3.7 I/O alternate function input/output
- 8.3.8 External interrupt/wakeup lines
- 8.3.9 Input configuration
- 8.3.10 Output configuration
- 8.3.11 Alternate function configuration
- 8.3.12 Analog configuration
- 8.3.13 Using the HSE or LSE oscillator pins as GPIOs
- 8.3.14 Using the GPIO pins in the RTC supply domain
- 8.3.15 BOOT0/GPIO pin sharing
- 8.4 GPIO registers
- 8.4.1 GPIO port mode register (GPIOx_MODER) (x =A..E and H)
- 8.4.2 GPIO port output type register (GPIOx_OTYPER) (x = A..E and H)
- 8.4.3 GPIO port output speed register (GPIOx_OSPEEDR) (x = A..E and H)
- 8.4.4 GPIO port pull-up/pull-down register (GPIOx_PUPDR) (x = A..E and H)
- 8.4.5 GPIO port input data register (GPIOx_IDR) (x = A..E and H)
- 8.4.6 GPIO port output data register (GPIOx_ODR) (x = A..E and H)
- 8.4.7 GPIO port bit set/reset register (GPIOx_BSRR) (x = A..E and H)
- 8.4.8 GPIO port configuration lock register (GPIOx_LCKR) (x = A..E and H)
- 8.4.9 GPIO alternate function low register (GPIOx_AFRL) (x = A..E and H)
- 8.4.10 GPIO alternate function high register (GPIOx_AFRH) (x = A..E and H)
- 8.4.11 GPIO port bit reset register (GPIOx_BRR) (x =A..E and H)
- 8.4.12 GPIO register map
- 9 System configuration controller (SYSCFG)
- 9.1 Introduction
- 9.2 SYSCFG registers
- 9.2.1 SYSCFG memory remap register (SYSCFG_CFGR1)
- 9.2.2 SYSCFG peripheral mode configuration register (SYSCFG_CFGR2)
- 9.2.3 Reference control and status register (SYSCFG_CFGR3)
- 9.2.4 SYSCFG external interrupt configuration register 1 (SYSCFG_EXTICR1)
- 9.2.5 SYSCFG external interrupt configuration register 2 (SYSCFG_EXTICR2)
- 9.2.6 SYSCFG external interrupt configuration register 3 (SYSCFG_EXTICR3)
- 9.2.7 SYSCFG external interrupt configuration register 4 (SYSCFG_EXTICR4)
- 9.2.8 SYSCFG register map
- 10 Direct memory access controller (DMA)
- 10.1 Introduction
- 10.2 DMA main features
- 10.3 DMA functional description
- 10.4 DMA registers
- 10.4.1 DMA interrupt status register (DMA_ISR)
- 10.4.2 DMA interrupt flag clear register (DMA_IFCR)
- 10.4.3 DMA channel x configuration register (DMA_CCRx) (x = 1..7 , where x = channel number)
- 10.4.4 DMA channel x number of data register (DMA_CNDTRx) (x = 1..7, where x = channel number)
- 10.4.5 DMA channel x peripheral address register (DMA_CPARx) (x = 1..7, where x = channel number)
- 10.4.6 DMA channel x memory address register (DMA_CMARx) (x = 1..7, where x = channel number)
- 10.4.7 DMA channel selection register (DMA_CSELR)
- 10.4.8 DMA register map
- 11 Nested vectored interrupt controller (NVIC)
- 12 Extended interrupt and event controller (EXTI)
- 12.1 Introduction
- 12.2 EXTI main features
- 12.3 EXTI functional description
- 12.4 EXTI interrupt/event line mapping
- 12.5 EXTI registers
- 12.5.1 EXTI interrupt mask register (EXTI_IMR)
- 12.5.2 EXTI event mask register (EXTI_EMR)
- 12.5.3 EXTI rising edge trigger selection register (EXTI_RTSR)
- 12.5.4 Falling edge trigger selection register (EXTI_FTSR)
- 12.5.5 EXTI software interrupt event register (EXTI_SWIER)
- 12.5.6 EXTI pending register (EXTI_PR)
- 12.5.7 EXTI register map
- 13 Analog-to-digital converter (ADC)
- 13.1 Introduction
- 13.2 ADC main features
- 13.3 ADC pins and internal signals
- 13.4 ADC functional description
- 13.4.1 ADC voltage regulator (ADVREGEN)
- 13.4.2 Calibration (ADCAL)
- 13.4.3 ADC on-off control (ADEN, ADDIS, ADRDY)
- 13.4.4 ADC clock (CKMODE, PRESC[3:0], LFMEN)
- 13.4.5 Configuring the ADC
- 13.4.6 Channel selection (CHSEL, SCANDIR)
- 13.4.7 Programmable sampling time (SMP)
- 13.4.8 Single conversion mode (CONT=0)
- 13.4.9 Continuous conversion mode (CONT=1)
- 13.4.10 Starting conversions (ADSTART)
- 13.4.11 Timings
- 13.4.12 Stopping an ongoing conversion (ADSTP)
- 13.5 Conversion on external trigger and trigger polarity (EXTSEL, EXTEN)
- 13.6 Data management
- 13.7 Low-power features
- 13.8 Analog window watchdog (AWDEN, AWDSGL, AWDCH, AWD_HTR/LTR, AWD)
- 13.9 Oversampler
- 13.10 Temperature sensor and internal reference voltage
- 13.11 ADC interrupts
- 13.12 ADC registers
- 13.12.1 ADC interrupt and status register (ADC_ISR)
- 13.12.2 ADC interrupt enable register (ADC_IER)
- 13.12.3 ADC control register (ADC_CR)
- 13.12.4 ADC configuration register 1 (ADC_CFGR1)
- 13.12.5 ADC configuration register 2 (ADC_CFGR2)
- 13.12.6 ADC sampling time register (ADC_SMPR)
- 13.12.7 ADC watchdog threshold register (ADC_TR)
- 13.12.8 ADC channel selection register (ADC_CHSELR)
- 13.12.9 ADC data register (ADC_DR)
- 13.12.10 ADC Calibration factor (ADC_CALFACT)
- 13.12.11 ADC common configuration register (ADC_CCR)
- 13.12.12 ADC register map
- 14 Comparator (COMP)
- 15 Advanced encryption standard hardware accelerator (AES)
- 15.1 Introduction
- 15.2 AES main features
- 15.3 AES functional description
- 15.4 Encryption and derivation keys
- 15.5 AES chaining algorithms
- 15.6 Data type
- 15.7 Operating modes
- 15.8 AES DMA interface
- 15.9 Error flags
- 15.10 Processing time
- 15.11 AES interrupts
- 15.12 AES registers
- 15.12.1 AES control register (AES_CR)
- 15.12.2 AES status register (AES_SR)
- 15.12.3 AES data input register (AES_DINR)
- 15.12.4 AES data output register (AES_DOUTR)
- 15.12.5 AES key register 0(AES_KEYR0) (LSB: key [31:0])
- 15.12.6 AES key register 1 (AES_KEYR1) (Key[63:32])
- 15.12.7 AES key register 2 (AES_KEYR2) (Key [95:64])
- 15.12.8 AES key register 3 (AES_KEYR3) (MSB: key[127:96])
- 15.12.9 AES initialization vector register 0 (AES_IVR0) (LSB: IVR[31:0])
- 15.12.10 AES initialization vector register 1 (AES_IVR1) (IVR[63:32])
- 15.12.11 AES initialization vector register 2 (AES_IVR2) (IVR[95:64])
- 15.12.12 AES initialization vector register 3 (AES_IVR3) (MSB: IVR[127:96])
- 15.12.13 AES register map
- 16 General-purpose timers (TIM2/TIM3)
- 16.1 TIM2/TIM3 introduction
- 16.2 TIM2/TIM3 main features
- 16.3 TIM2/TIM3 functional description
- 16.3.1 Time-base unit
- 16.3.2 Counter modes
- 16.3.3 Clock selection
- 16.3.4 Capture/compare channels
- 16.3.5 Input capture mode
- 16.3.6 PWM input mode
- 16.3.7 Forced output mode
- 16.3.8 Output compare mode
- 16.3.9 PWM mode
- 16.3.10 One-pulse mode
- 16.3.11 Clearing the OCxREF signal on an external event
- 16.3.12 Encoder interface mode
- 16.3.13 Timer input XOR function
- 16.3.14 Timers and external trigger synchronization
- 16.3.15 Timer synchronization
- 16.3.16 Debug mode
- 16.4 TIM2/TIM3 registers
- 16.4.1 TIMx control register 1 (TIMx_CR1)
- 16.4.2 TIMx control register 2 (TIMx_CR2)
- 16.4.3 TIMx slave mode control register (TIMx_SMCR)
- 16.4.4 TIMx DMA/Interrupt enable register (TIMx_DIER)
- 16.4.5 TIMx status register (TIMx_SR)
- 16.4.6 TIMx event generation register (TIMx_EGR)
- 16.4.7 TIMx capture/compare mode register 1 (TIMx_CCMR1)
- 16.4.8 TIMx capture/compare mode register 2 (TIMx_CCMR2)
- 16.4.9 TIMx capture/compare enable register (TIMx_CCER)
- 16.4.10 TIMx counter (TIMx_CNT)
- 16.4.11 TIMx prescaler (TIMx_PSC)
- 16.4.12 TIMx auto-reload register (TIMx_ARR)
- 16.4.13 TIMx capture/compare register 1 (TIMx_CCR1)
- 16.4.14 TIMx capture/compare register 2 (TIMx_CCR2)
- 16.4.15 TIMx capture/compare register 3 (TIMx_CCR3)
- 16.4.16 TIMx capture/compare register 4 (TIMx_CCR4)
- 16.4.17 TIMx DMA control register (TIMx_DCR)
- 16.4.18 TIMx DMA address for full transfer (TIMx_DMAR)
- 16.4.19 TIM2 option register (TIM2_OR)
- 16.4.20 TIM3 option register (TIM3_OR)
- 16.5 TIMx register map
- 17 General-purpose timers (TIM21/22)
- 17.1 Introduction
- 17.2 TIM21/22 main features
- 17.3 TIM21/22 functional description
- 17.3.1 Time-base unit
- 17.3.2 Counter modes
- 17.3.3 Clock selection
- 17.3.4 Capture/compare channels
- 17.3.5 Input capture mode
- 17.3.6 PWM input mode
- 17.3.7 Forced output mode
- 17.3.8 Output compare mode
- 17.3.9 PWM mode
- 17.3.10 Clearing the OCxREF signal on an external event
- 17.3.11 One-pulse mode
- 17.3.12 Encoder interface mode
- 17.3.13 TIM21/22 external trigger synchronization
- 17.3.14 Timer synchronization (TIM21/22)
- 17.3.15 Debug mode
- 17.4 TIM21/22 registers
- 17.4.1 TIM21/22 control register 1 (TIMx_CR1)
- 17.4.2 TIM21/22 control register 2 (TIMx_CR2)
- 17.4.3 TIM21/22 slave mode control register (TIMx_SMCR)
- 17.4.4 TIM21/22 Interrupt enable register (TIMx_DIER)
- 17.4.5 TIM21/22 status register (TIMx_SR)
- 17.4.6 TIM21/22 event generation register (TIMx_EGR)
- 17.4.7 TIM21/22 capture/compare mode register 1 (TIMx_CCMR1)
- 17.4.8 TIM21/22 capture/compare enable register (TIMx_CCER)
- 17.4.9 TIM21/22 counter (TIMx_CNT)
- 17.4.10 TIM21/22 prescaler (TIMx_PSC)
- 17.4.11 TIM21/22 auto-reload register (TIMx_ARR)
- 17.4.12 TIM21/22 capture/compare register 1 (TIMx_CCR1)
- 17.4.13 TIM21/22 capture/compare register 2 (TIMx_CCR2)
- 17.4.14 TIM21 option register (TIM21_OR)
- 17.4.15 TIM22 option register (TIM22_OR)
- 17.4.16 TIM21/22 register map
- 18 Basic timers (TIM6/7)
- 18.1 Introduction
- 18.2 TIM6/7 main features
- 18.3 TIM6/7 functional description
- 18.4 TIM6/7 registers
- 18.4.1 TIM6/7 control register 1 (TIMx_CR1)
- 18.4.2 TIM6/7 control register 2 (TIMx_CR2)
- 18.4.3 TIM6/7 DMA/Interrupt enable register (TIMx_DIER)
- 18.4.4 TIM6/7 status register (TIMx_SR)
- 18.4.5 TIM6/7 event generation register (TIMx_EGR)
- 18.4.6 TIM6/7 counter (TIMx_CNT)
- 18.4.7 TIM6/7 prescaler (TIMx_PSC)
- 18.4.8 TIM6/7 auto-reload register (TIMx_ARR)
- 18.4.9 TIM6/7 register map
- 19 Low-power timer (LPTIM)
- 19.1 Introduction
- 19.2 LPTIM main features
- 19.3 LPTIM implementation
- 19.4 LPTIM functional description
- 19.5 LPTIM interrupts
- 19.6 LPTIM registers
- 19.6.1 LPTIM interrupt and status register (LPTIM_ISR)
- 19.6.2 LPTIM interrupt clear register (LPTIM_ICR)
- 19.6.3 LPTIM interrupt enable register (LPTIM_IER)
- 19.6.4 LPTIM configuration register (LPTIM_CFGR)
- 19.6.5 LPTIM control register (LPTIM_CR)
- 19.6.6 LPTIM compare register (LPTIM_CMP)
- 19.6.7 LPTIM autoreload register (LPTIM_ARR)
- 19.6.8 LPTIM counter register (LPTIM_CNT)
- 19.6.9 LPTIM register map
- 20 Independent watchdog (IWDG)
- 21 System window watchdog (WWDG)
- 22 Real-time clock (RTC)
- 22.1 Introduction
- 22.2 RTC main features
- 22.3 RTC implementation
- 22.4 RTC functional description
- 22.4.1 RTC block diagram
- 22.4.2 GPIOs controlled by the RTC
- 22.4.3 Clock and prescalers
- 22.4.4 Real-time clock and calendar
- 22.4.5 Programmable alarms
- 22.4.6 Periodic auto-wakeup
- 22.4.7 RTC initialization and configuration
- 22.4.8 Reading the calendar
- 22.4.9 Resetting the RTC
- 22.4.10 RTC synchronization
- 22.4.11 RTC reference clock detection
- 22.4.12 RTC smooth digital calibration
- 22.4.13 Time-stamp function
- 22.4.14 Tamper detection
- 22.4.15 Calibration clock output
- 22.4.16 Alarm output
- 22.5 RTC low-power modes
- 22.6 RTC interrupts
- 22.7 RTC registers
- 22.7.1 RTC time register (RTC_TR)
- 22.7.2 RTC date register (RTC_DR)
- 22.7.3 RTC control register (RTC_CR)
- 22.7.4 RTC initialization and status register (RTC_ISR)
- 22.7.5 RTC prescaler register (RTC_PRER)
- 22.7.6 RTC wakeup timer register (RTC_WUTR)
- 22.7.7 RTC alarm A register (RTC_ALRMAR)
- 22.7.8 RTC alarm B register (RTC_ALRMBR)
- 22.7.9 RTC write protection register (RTC_WPR)
- 22.7.10 RTC sub second register (RTC_SSR)
- 22.7.11 RTC shift control register (RTC_SHIFTR)
- 22.7.12 RTC timestamp time register (RTC_TSTR)
- 22.7.13 RTC timestamp date register (RTC_TSDR)
- 22.7.14 RTC time-stamp sub second register (RTC_TSSSR)
- 22.7.15 RTC calibration register (RTC_CALR)
- 22.7.16 RTC tamper configuration register (RTC_TAMPCR)
- 22.7.17 RTC alarm A sub second register (RTC_ALRMASSR)
- 22.7.18 RTC alarm B sub second register (RTC_ALRMBSSR)
- 22.7.19 RTC option register (RTC_OR)
- 22.7.20 RTC backup registers (RTC_BKPxR)
- 22.7.21 RTC register map
- 23 Inter-integrated circuit (I2C) interface
- 23.1 Introduction
- 23.2 I2C main features
- 23.3 I2C implementation
- 23.4 I2C functional description
- 23.4.1 I2C1/3 block diagram
- 23.4.2 I2C2 block diagram
- 23.4.3 I2C clock requirements
- 23.4.4 Mode selection
- 23.4.5 I2C initialization
- 23.4.6 Software reset
- 23.4.7 Data transfer
- 23.4.8 I2C slave mode
- 23.4.9 I2C master mode
- 23.4.10 I2C_TIMINGR register configuration examples
- 23.4.11 SMBus specific features
- 23.4.12 SMBus initialization
- 23.4.13 SMBus: I2C_TIMEOUTR register configuration examples
- 23.4.14 SMBus slave mode
- 23.4.15 Wakeup from Stop mode on address match
- 23.4.16 Error conditions
- 23.4.17 DMA requests
- 23.4.18 Debug mode
- 23.5 I2C low-power modes
- 23.6 I2C interrupts
- 23.7 I2C registers
- 23.7.1 Control register 1 (I2C_CR1)
- 23.7.2 Control register 2 (I2C_CR2)
- 23.7.3 Own address 1 register (I2C_OAR1)
- 23.7.4 Own address 2 register (I2C_OAR2)
- 23.7.5 Timing register (I2C_TIMINGR)
- 23.7.6 Timeout register (I2C_TIMEOUTR)
- 23.7.7 Interrupt and status register (I2C_ISR)
- 23.7.8 Interrupt clear register (I2C_ICR)
- 23.7.9 PEC register (I2C_PECR)
- 23.7.10 Receive data register (I2C_RXDR)
- 23.7.11 Transmit data register (I2C_TXDR)
- 23.7.12 I2C register map
- 24 Universal synchronous asynchronous receiver transmitter (USART)
- 24.1 Introduction
- 24.2 USART main features
- 24.3 USART extended features
- 24.4 USART implementation
- 24.5 USART functional description
- 24.5.1 USART character description
- 24.5.2 USART transmitter
- 24.5.3 USART receiver
- 24.5.4 USART baud rate generation
- 24.5.5 Tolerance of the USART receiver to clock deviation
- 24.5.6 USART auto baud rate detection
- 24.5.7 Multiprocessor communication using USART
- 24.5.8 Modbus communication using USART
- 24.5.9 USART parity control
- 24.5.10 USART LIN (local interconnection network) mode
- 24.5.11 USART synchronous mode
- 24.5.12 USART Single-wire Half-duplex communication
- 24.5.13 USART Smartcard mode
- 24.5.14 USART IrDA SIR ENDEC block
- 24.5.15 USART continuous communication in DMA mode
- 24.5.16 RS232 hardware flow control and RS485 driver enable using USART
- 24.5.17 Wakeup from Stop mode using USART
- 24.6 USART low-power modes
- 24.7 USART interrupts
- 24.8 USART registers
- 24.8.1 Control register 1 (USART_CR1)
- 24.8.2 Control register 2 (USART_CR2)
- 24.8.3 Control register 3 (USART_CR3)
- 24.8.4 Baud rate register (USART_BRR)
- 24.8.5 Guard time and prescaler register (USART_GTPR)
- 24.8.6 Receiver timeout register (USART_RTOR)
- 24.8.7 Request register (USART_RQR)
- 24.8.8 Interrupt and status register (USART_ISR)
- 24.8.9 Interrupt flag clear register (USART_ICR)
- 24.8.10 Receive data register (USART_RDR)
- 24.8.11 Transmit data register (USART_TDR)
- 24.8.12 USART register map
- 25 Low-power universal asynchronous receiver transmitter (LPUART)
- 25.1 Introduction
- 25.2 LPUART main features
- 25.3 LPUART implementation
- 25.4 LPUART functional description
- 25.4.1 LPUART character description
- 25.4.2 LPUART transmitter
- 25.4.3 LPUART receiver
- 25.4.4 LPUART baud rate generation
- 25.4.5 Tolerance of the LPUART receiver to clock deviation
- 25.4.6 Multiprocessor communication using LPUART
- 25.4.7 LPUART parity control
- 25.4.8 Single-wire Half-duplex communication using LPUART
- 25.4.9 Continuous communication in DMA mode using LPUART
- 25.4.10 RS232 Hardware flow control and RS485 Driver Enable using LPUART
- 25.4.11 Wakeup from Stop mode using LPUART
- 25.5 LPUART low-power mode
- 25.6 LPUART interrupts
- 25.7 LPUART registers
- 25.7.1 Control register 1 (LPUART_CR1)
- 25.7.2 Control register 2 (LPUART_CR2)
- 25.7.3 Control register 3 (LPUART_CR3)
- 25.7.4 Baud rate register (LPUART_BRR)
- 25.7.5 Request register (LPUART_RQR)
- 25.7.6 Interrupt & status register (LPUART_ISR)
- 25.7.7 Interrupt flag clear register (LPUART_ICR)
- 25.7.8 Receive data register (LPUART_RDR)
- 25.7.9 Transmit data register (LPUART_TDR)
- 25.7.10 LPUART register map
- 26 Serial peripheral interface/ inter-IC sound (SPI/I2S)
- 26.1 Introduction
- 26.2 SPI/I2S implementation
- 26.3 SPI functional description
- 26.3.1 General description
- 26.3.2 Communications between one master and one slave
- 26.3.3 Standard multi-slave communication
- 26.3.4 Multi-master communication
- 26.3.5 Slave select (NSS) pin management
- 26.3.6 Communication formats
- 26.3.7 SPI configuration
- 26.3.8 Procedure for enabling SPI
- 26.3.9 Data transmission and reception procedures
- 26.3.10 Procedure for disabling the SPI
- 26.3.11 Communication using DMA (direct memory addressing)
- 26.3.12 SPI status flags
- 26.3.13 SPI error flags
- 26.4 SPI special features
- 26.5 SPI interrupts
- 26.6 I2S functional description
- 26.7 SPI and I2S registers
- 26.7.1 SPI control register 1 (SPI_CR1) (not used in I2S mode)
- 26.7.2 SPI control register 2 (SPI_CR2)
- 26.7.3 SPI status register (SPI_SR)
- 26.7.4 SPI data register (SPI_DR)
- 26.7.5 SPI CRC polynomial register (SPI_CRCPR) (not used in I2S mode)
- 26.7.6 SPI RX CRC register (SPI_RXCRCR) (not used in I2S mode)
- 26.7.7 SPI TX CRC register (SPI_TXCRCR) (not used in I2S mode)
- 26.7.8 SPI_I2S configuration register (SPI_I2SCFGR)
- 26.7.9 SPI_I2S prescaler register (SPI_I2SPR)
- 26.7.10 SPI register map
- 27 Debug support (DBG)
- 28 Device electronic signature
- Appendix A Code examples
- A.1 Introduction
- A.2 NVM/RCC Operation code example
- A.3 NVM Operation code example
- A.3.1 Unlocking the data EEPROM and FLASH_PECR register code example
- A.3.2 Locking data EEPROM and FLASH_PECR register code example
- A.3.3 Unlocking the NVM program memory code example
- A.3.4 Unlocking the option bytes area code example
- A.3.5 Write to data EEPROM code example
- A.3.6 Erase to data EEPROM code example
- A.3.7 Program Option byte code example
- A.3.8 Erase Option byte code example
- A.3.9 Program a single word to Flash program memory code example
- A.3.10 Program half-page to Flash program memory code example
- A.3.11 Erase a page in Flash program memory code example
- A.3.12 Mass erase code example
- A.4 Clock Controller
- A.5 GPIOs
- A.6 DMA
- A.7 Interrupts and event
- A.8 ADC
- A.8.1 Calibration code example
- A.8.2 ADC enable sequence code example
- A.8.3 ADC disable sequence code example
- A.8.4 ADC clock selection code example
- A.8.5 Single conversion sequence code example - Software trigger
- A.8.6 Continuous conversion sequence code example - Software trigger
- A.8.7 Single conversion sequence code example - Hardware trigger
- A.8.8 Continuous conversion sequence code example - Hardware trigger
- A.8.9 DMA one shot mode sequence code example
- A.8.10 DMA circular mode sequence code example
- A.8.11 Wait mode sequence code example
- A.8.12 Auto off and no wait mode sequence code example
- A.8.13 Auto off and wait mode sequence code example
- A.8.14 Analog watchdog code example
- A.8.15 Oversampling code example
- A.8.16 Temperature configuration code example
- A.8.17 Temperature computation code example
- A.9 Timers
- A.9.1 Upcounter on TI2 rising edge code example
- A.9.2 Up counter on each 2 ETR rising edges code example
- A.9.3 Input capture configuration code example
- A.9.4 Input capture data management code example
- A.9.5 PWM input configuration code example
- A.9.6 PWM input with DMA configuration code example
- A.9.7 Output compare configuration code example
- A.9.8 Edge-aligned PWM configuration example
- A.9.9 Center-aligned PWM configuration example
- A.9.10 ETR configuration to clear OCxREF code example
- A.9.11 Encoder interface code example
- A.9.12 Reset mode code example
- A.9.13 Gated mode code example
- A.9.14 Trigger mode code example
- A.9.15 External clock mode 2 + trigger mode code example
- A.9.16 One-Pulse mode code example
- A.9.17 Timer prescaling another timer code example
- A.9.18 Timer enabling another timer code example
- A.9.19 Master and slave synchronization code example
- A.9.20 Two timers synchronized by an external trigger code example
- A.9.21 DMA burst feature code example
- A.10 Low-power timer (LPTIM)
- A.11 IWDG code example
- A.12 WWDG code example
- A.13 RTC code example
- A.13.1 RTC calendar configuration code example
- A.13.2 RTC alarm configuration code example
- A.13.3 RTC WUT configuration code example
- A.13.4 RTC read calendar code example
- A.13.5 RTC calibration code example
- A.13.6 RTC tamper and time stamp configuration code example
- A.13.7 RTC tamper and time stamp code example
- A.13.8 RTC clock output code example
- A.14 I2C code example
- A.14.1 I2C configured in slave mode code example
- A.14.2 I2C slave transmitter code example
- A.14.3 I2C slave receiver code example
- A.14.4 I2C configured in master mode to receive code example
- A.14.5 I2C configured in master mode to transmit code example
- A.14.6 I2C master transmitter code example
- A.14.7 I2C master receiver code example
- A.14.8 I2C configured in master mode to transmit with DMA code example
- A.14.9 I2C configured in slave mode to receive with DMA code example
- A.15 USART code example
- A.15.1 USART transmitter configuration code example
- A.15.2 USART transmit byte code example
- A.15.3 USART transfer complete code example
- A.15.4 USART receiver configuration code example
- A.15.5 USART receive byte code example
- A.15.6 USART LIN mode code example
- A.15.7 USART synchronous mode code example
- A.15.8 USART single-wire half-duplex code example
- A.15.9 USART smartcard mode code example
- A.15.10 USART IrDA mode code example
- A.15.11 USART DMA code example
- A.15.12 USART hardware flow control code example
- A.16 LPUART code example
- A.17 SPI code example
- A.18 DBG code example
- Revision history