Регистры STM32F3
Регистры периферии STM32F303xB/xC/xD/xE, F303x6/x8, F328, F358 и F398: адреса блоков, битовые поля с назначением, значения после сброса по RM0316 и конструктор значения с кодом на C.
Источник — заголовки CMSIS STMicroelectronics (репозиторий cmsis-device-f3, Apache-2.0): структуры периферии со смещениями, адреса экземпляров и макросы полей. В этой волне — шесть заголовков, которые описывает справочное руководство RM0316: stm32f303x8.h, f303xc, f303xe, f328xx, f358xx и f398xx. STM32F301, F302 и F318 (RM0365), F334 (RM0364) и F373/F378 (RM0313) описаны в своих руководствах и появятся следующими.
Значения после сброса, назначение полей и смысл значений — по RM0316. Поля, которых нет у части линеек, отмечены; биты, которые заголовок объявляет, а руководство оставляет зарезервированными, на страницах не показаны. Таймер высокого разрешения HRTIM есть только у STM32F334 и в эту волну не входит; компараторы, ОУ, TSC, USB и FMC пока без страниц.
Блоки периферии
- RCC — тактирование и сбросRCC_CR, RCC_CFGR, RCC_CIR, RCC_APB2RSTR, RCC_APB1RSTR, RCC_AHBENR, RCC_APB2ENR, RCC_APB1ENR, RCC_BDCR, RCC_CSR, RCC_AHBRSTR, RCC_CFGR2, RCC_CFGR3
- 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_RCR, SYSCFG_EXTICR1, SYSCFG_EXTICR2, SYSCFG_EXTICR3, SYSCFG_EXTICR4, SYSCFG_CFGR2, SYSCFG_CFGR4, SYSCFG_CFGR3
- EXTI — внешние прерыванияEXTI_IMR1, EXTI_EMR1, EXTI_RTSR1, EXTI_FTSR1, EXTI_SWIER1, EXTI_PR1, EXTI_IMR2, EXTI_EMR2, EXTI_RTSR2, EXTI_FTSR2, EXTI_SWIER2, EXTI_PR2
- USART — последовательные порты USARTUSART_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_RCR, TIMx_CCR1, TIMx_CCR2, TIMx_CCR3, TIMx_CCR4, TIMx_BDTR, TIMx_DCR, TIMx_DMAR, TIMx_CCMR3, TIMx_CCR5, TIMx_CCR6
- DMA — прямой доступ к памятиDMA_ISR, DMA_IFCR, DMA_CCR, DMA_CNDTR, DMA_CPAR, DMA_CMAR
- АЦП — аналого-цифровые преобразователиADC_ISR, ADC_IER, ADC_CR, ADC_CFGR, ADC_SMPR1, ADC_SMPR2, ADC_TR1, ADC_TR2, ADC_TR3, ADC_SQR1, ADC_SQR2, ADC_SQR3, ADC_SQR4, ADC_DR, ADC_JSQR, ADC_OFR1, ADC_OFR2, ADC_OFR3, ADC_OFR4, ADC_JDR1, ADC_JDR2, ADC_JDR3, ADC_JDR4, ADC_AWD2CR, ADC_AWD3CR, ADC_DIFSEL, ADC_CALFACT, ADC_CSR, ADC_CCR, ADC_CDR
- 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
- DBGMCU — отладкаDBGMCU_IDCODE, DBGMCU_CR, DBGMCU_APB1_FZ, DBGMCU_APB2_FZ
- PWR — управление питаниемPWR_CR, PWR_CSR
- FLASH — флеш-памятьFLASH_ACR, FLASH_KEYR, FLASH_OPTKEYR, FLASH_SR, FLASH_CR, FLASH_AR, FLASH_OBR, FLASH_WRPR
- 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_TAFCR, RTC_ALRMASSR, RTC_ALRMBSSR, RTC_BKP0R, RTC_BKP1R, RTC_BKP2R, RTC_BKP3R, RTC_BKP4R, RTC_BKP5R, RTC_BKP6R, RTC_BKP7R, RTC_BKP8R, RTC_BKP9R, RTC_BKP10R, RTC_BKP11R, RTC_BKP12R, RTC_BKP13R, RTC_BKP14R, RTC_BKP15R
- ЦАП — цифро-аналоговый преобразователь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
- CAN — контроллер CANCAN_MCR, CAN_MSR, CAN_TSR, CAN_RF0R, CAN_RF1R, CAN_IER, CAN_ESR, CAN_BTR, CAN_TI0R, CAN_TDT0R, CAN_TDL0R, CAN_TDH0R, CAN_TI1R, CAN_TDT1R, CAN_TDL1R, CAN_TDH1R, CAN_TI2R, CAN_TDT2R, CAN_TDL2R, CAN_TDH2R, CAN_RI0R, CAN_RDT0R, CAN_RDL0R, CAN_RDH0R, CAN_RI1R, CAN_RDT1R, CAN_RDL1R, CAN_RDH1R, CAN_FMR, CAN_FM1R, CAN_FS1R, CAN_FFA1R, CAN_FA1R, CAN_F0R1, CAN_F0R2, CAN_F1R1, CAN_F1R2, CAN_F2R1, CAN_F2R2, CAN_F3R1, CAN_F3R2, CAN_F4R1, CAN_F4R2, CAN_F5R1, CAN_F5R2, CAN_F6R1, CAN_F6R2, CAN_F7R1, CAN_F7R2, CAN_F8R1, CAN_F8R2, CAN_F9R1, CAN_F9R2, CAN_F10R1, CAN_F10R2, CAN_F11R1, CAN_F11R2, CAN_F12R1, CAN_F12R2, CAN_F13R1, CAN_F13R2
Заголовки CMSIS и микроконтроллеры
| Заголовок | Микроконтроллеры |
|---|---|
| stm32f303x8.h | STM32F303C6, STM32F303C8, STM32F303K6, STM32F303K8, STM32F303R6, STM32F303R8 |
| stm32f303xc.h | STM32F303CB, STM32F303CC, STM32F303RB, STM32F303RC, STM32F303VB, STM32F303VC |
| stm32f303xe.h | STM32F303RD, STM32F303RE, STM32F303VD, STM32F303VE, STM32F303ZD, STM32F303ZE |
| stm32f328xx.h | STM32F328C8, STM32F328R8, STM32F328xx, STM32F334x8 |
| stm32f358xx.h | STM32F303xC, STM32F358CC, STM32F358RC, STM32F358VC, STM32F358xx |
| stm32f398xx.h | STM32F303xE, STM32F398VE, STM32F398xx |
Карта микроконтроллеров семейства с распиновками — на странице STM32F3.
Частые вопросы
Какой заголовок CMSIS нужен для STM32F303CCT6?
stm32f303xc.h: в STM32F3 заголовок один на линейку и объём памяти — x8 для 32 и 64 КБ, xc для 128 и 256 КБ, xe для 384 и 512 КБ. Подключают его через stm32f3xx.h с макросом STM32F303xC.
Чем периферия STM32F303 отличается от STM32F103?
Порты устроены как у STM32F4 (MODER, AFR), USART и I2C — нового поколения с регистрами ISR и ICR и TIMINGR, АЦП — совсем другой блок с инжектированной очередью и дифференциальными входами, у таймеров четырёхбитные режимы каналов и каналы 5 и 6.
Источники
- STMicroelectronics. RM0316: Reference manual (Rev 10) — описания регистров, назначение полей и значения после сброса
- STMicroelectronics. cmsis-device-f3 v2.3.9: заголовки CMSIS stm32f303x8.h, stm32f303xc.h, stm32f303xe.h, stm32f328xx.h, stm32f358xx.h, stm32f398xx.h — структуры периферии, смещения, адреса экземпляров и макросы полей; лицензия Apache-2.0
Нашли ошибку в регистрах?