Перейти к содержанию

Регистры STM32F0

Регистры периферии STM32F0x1, F0x2 и F0x8 — STM32F031, F038, F042, F048, F051, F058, F071, F072, F078, F091 и F098: адреса блоков, битовые поля с назначением, значения после сброса по RM0091 и конструктор значения с кодом на C.

Источник — заголовки CMSIS пакета STM32CubeF0 (репозиторий cmsis-device-f0, Apache-2.0): структуры периферии, адреса экземпляров и макросы полей. В этой волне — одиннадцать заголовков, которые описывает справочное руководство RM0091; STM32F030 и STM32F070 описаны в RM0360 и появятся отдельно. Поля, которых нет у части линеек, отмечены.

У STM32F0 новые по сравнению с STM32F1 USART, I2C и АЦП: флаги USART сбрасываются через регистр ICR, скорость I2C задаётся одним регистром TIMINGR, а каналы АЦП выбираются маской. Имена в коде совпадают с CMSIS: регистр флагов USART1 — USART1->ISR, флаг готовности к передаче — USART_ISR_TXE.

Блоки периферии

Заголовки CMSIS и микроконтроллеры

ЗаголовокМикроконтроллеры
stm32f031x6.hSTM32F031x4, STM32F031x6
stm32f038xx.hSTM32F038xx
stm32f042x6.hSTM32F042x4, STM32F042x6
stm32f048xx.hSTM32F048xx
stm32f051x8.hSTM32F051x4, STM32F051x6, STM32F051x8
stm32f058xx.hSTM32F058xx
stm32f071xb.hSTM32F071x8, STM32F071xB
stm32f072xb.hSTM32F072x8, STM32F072xB
stm32f078xx.hSTM32F078xx
stm32f091xc.hSTM32F091xB, STM32F091xC
stm32f098xx.hSTM32F098xx

Карта микроконтроллеров семейства с распиновками — на странице STM32F0.

Частые вопросы

Какой заголовок CMSIS нужен для STM32F030F4?

stm32f030x6.h: у STM32F0 заголовки делятся по линейке и объёму памяти. STM32F030 описан в RM0360, его регистры почти совпадают с регистрами STM32F031 на этой странице.

Почему у STM32F0 нет регистра USART_SR?

В STM32F0 стоит USART нового поколения: состояние — в USART_ISR, сброс флагов — записью в USART_ICR, приём и передача — в отдельных регистрах RDR и TDR. Код для STM32F1 и F4 на регистрах USART нужно переписывать.

Источники

  1. STMicroelectronics. RM0091: Reference manual (Rev 10) — описания регистров, назначение полей и значения после сброса
  2. STMicroelectronics. cmsis-device-f0 v2.3.8: заголовки CMSIS stm32f031x6.h, stm32f038xx.h, stm32f042x6.h, stm32f048xx.h, stm32f051x8.h, stm32f058xx.h, stm32f071xb.h, stm32f072xb.h, stm32f078xx.h, stm32f091xc.h, stm32f098xx.h — структуры периферии, смещения, адреса экземпляров и макросы полей; лицензия Apache-2.0

Нашли ошибку в регистрах?