Arm Keil MDK v6 Essential and Professional editions are now available to buy as monthly or annual subscriptions from our Developer Tools store. Visit the store to get access to the tools suite today!

  1. Packs
  2. STM32F2xx_DFP

Change Log

Version 2.11.0: March 27, 2024

Get Pack
      Updated STM32Cube FW to STM32Cube_FW_F2_V1.9.4 (HAL V1.2.8).
      Device Support:
      - Added STM32F205RGEx device variant.
      - Added STM32F205, STM32F207 SVD files.
      Board Examples:
      - Updated to STM32Cube_FW_F2_V1.9.4
      - Updated to fixed pack versions
      CMSIS-Driver:
      - USART:
      -- Corrected capabilities with CTS change event not supported.
      -- Corrected Uninitialize function to power off the peripheral if it is powered.
      -- Corrected PowerControl function to return error if Initialize was not called
         and clear transfer information when powered off.
      -- Corrected Send function to not start reception in Synchronous Master mode
         and clear Transmission Complete status before starting Tx transfer (in DMA mode).
      -- Corrected GetTxCount to return 0 if send was not activated (in DMA mode).
      -- Corrected GetRxCount to return 0 if receive was not activated (in DMA mode).
      -- Corrected Control function to for abort Send/Transfer wait for already loaded frame to be sent,
         abort also Transmit if Receive in Synchronous Master mode is active,
         enable Tx (implicitly) if Rx is enabled for Synchronous Master mode,
         enable parity error detection if parity usage is configured, use pull-up on Rx pin,
         use pull-up on RTS/CTS pins.
      -- Corrected Tx pin configuration in single-wire mode.
      -- Corrected GetStatus to return all inactive status bits if USART is not powered.
      -- Corrected Interrupt routine with corrected RX Timeout handling, corrected Rx overflow interrupt handling.
         corrected break signal detection, commented that CTS event detection cannot work without flow control,
         corrected Tx Complete signaling.
      -- Corrected Tx DMA Handler Send complete signaling.
      - SPI:
      -- Corrected functionality when using DMA mode.
      -- Corrected PowerControl function to clear transfer info.
      -- Corrected Control function (disable SPI and unconfigure Slave Select pin
         when mode ARM_SPI_MODE_INACTIVE is activated, activate internal pull-up/down on
         SCK pin according to clock/frame format setting, set Slave Select pin to
         inactive state after ARM_SPI_SS_MASTER_SW is activated).
      -- Corrected data lost detection before Reception/Transfer is started.

Version 2.10.0: Jan. 20, 2022

Get Pack
      Updated Pack to STM32Cube_FW_F2 Firmware Package version V1.9.3.
      STM32CubeMX integration:
      - Synchronized versions of generated component ::Device:STM32Cube Framework:STM32CubeMX (in gpdsc) and its bootstrap (in pdsc).
      - Added support for Timebase Source TIMx.
      - Added support for EXTI configurations.
      - Launching STM32CubeMX via "play" button for existing projects overwrites with a new STM32CubeMX project file instead of loading it.
      - MX_Device_h.ftl:
      -- Updated parsing of USART virtual mode.
      -- Updated generation of macros: Added handling for '(' and ')' symbols.
      Package Description (pdsc):
      - Added global define USE_HAL_DRIVER and USE_FULL_LL_DRIVER to the component ::Device:STM32Cube HAL:Common.
      - Changed schemaVersion (1.7.2).
      - Corrected device in board description attribute 'mountedDevice'.
      CMSIS-Driver:
      - CAN:
      -- Corrected SetBitrate function to leave Silent and Loopback mode as they were.
      -- Corrected SetMode function to clear Silent and Loopback mode when NORMAL mode is activated.
      -- Removed macros already provided by cmsis_compiler.h.
      -- Corrected MessageSend function to only access required data for sending.
      - EMAC:
      -- Removed macros already provided by cmsis_compiler.h
      -- ETH DMA initialization is done when MAC transmitter or receiver is enabled (to solve netInitialize/netUnnitialize/netInitialize issue).
      - I2C:
      -- Corrected pins configuration.
      -- Corrected 10-bit addressing mode issues.
      -- Corrected ARM_I2C_EVENT_BUS_CLEAR event signaling.
      -- Replaced dead loop waiting with waiting with timeout.
      - MCI:
      -- Added DMA stream abort when calling PowerControl with ARM_POWER_OFF.
      -- Replaced empty delay loops with _NOP().
      - SPI:
      -- Corrected PowerControl function (to return error if Initialize was
         not called, to abort active transfer if power off was requested).
      -- Updated GetDataCount function to give accurate count in DMA mode.
      -- Corrected Control function (abort in DMA mode,
         software controlled slave select in slave mode, TI Frame Format selection,
         ignore bus speed for slave mode).
      -- Corrected Uninitialize function (to power off the peripheral if it is powered).
      -- Corrected DMA MemDataAlignment configuration.
      -- Added checking if pointer to SPI_PIN is valid, before it is used.
      - USART:
      -- Corrected DMA MemDataAlignment configuration.
      -- Corrected POWER_OFF sequence. DMA is DeInitialized after it is aborted.
      -- Added checking if pointer to USART_PIN is valid, before it is used.
      - USB:
      -- Updated documentation.
      -- Removed macros already provided by cmsis_compiler.h.
      -- HS: OTG_HS ULPI clock disabled in low power if internal PHY is used
         to enable proper operation of OTG_HS port in FS mode during CPU sleep.
      - USB Device:
      -- Updated USBD_EndpointConfigure function to check that maximum packet size requested fits into configured FIFO (compile time configured).
      -- HS Device:
      --- Reduced duration of PowerControl when Power full is activated.
      --- Corrected USBD_PowerControl function not to enable ULPI clock if external PHY is not enabled.
      - USB Host:
      -- Fixed port resume occasionally getting stuck in resume signaling.
      -- Added compile time configuration for reducing Bulk IN NAK rate.
      Examples:
      - Updated Arm Compiler 6 to default compiler.
      - Updated config files to CMSIS 5.8.0.
      - Changed Assembler option to armclang(Auto Select).
      - Overrode default HAL_InitTick function.
      - Terminating app_main thread with osThreadExit() to avoid endless loop.
      - CubeMX:
      -- Migrated CubeMX projects to V6.4.0.
      -- emWin: Changed GUIThread priority from osPriorityIdle to osPriorityNormal.
      - FileSystem, USB: Changed variant selection to "MDK-Plus".
      - Updated all USB Host/Device examples with user templates from MDK-Middleware v7.11.1.
      - Updated MS Windows drivers in USB Device examples.

Version 2.9.0: April 3, 2018

Get Pack
      Increased stm32f2xx_hal_conf.h version to 1.2.1.
      CMSIS-Driver:
      - Added support for Arm Compiler 6.
      - CAN:
      -- Corrected abort message send functionality.
      - SPI:
      -- Made I/O speed configurable.
      -- Corrected data shift register overrun in master mode.
      - USART:
      -- Made I/O speed configurable.
      Board Examples:
      - Updated all examples:
      -- Placing Event Recorder into non-initialized memory area.
      -- Using ARM.CMSIS-Driver.2.2.0.pack and ARM.CMSIS.5.3.0.pack.
      - Added Network SNMP_Agent example.

Version 2.8.0: Feb. 22, 2018

Get Pack
      Updated Pack to STM32Cube_FW_F2 Firmware Package version V1.7.0.
      - Reduced overall pack size by extracting only 'Drivers', 'Documentation' and 'Fonts' from Firmware Library pack.
      - Updated HAL to version V1.2.1.
      - Patching file: stm32f2xx_hal_def.h to support ARM Compiler 6.
      Device Support:
      - Added DBGMCU INI and DBGCONF files.
      - Removed reference to DBGMCU INI files from component startup.
      CMSIS-Driver:
      - CAN:
      -- Corrected comment and code for CubeMX CAN interrupts settings (should be disabled).
      -- Corrected SetBitrate function.
      - EMAC:
      -- Corrected transmit checksum offload for IPv4 fragmented packets.
      - USART:
      -- Corrected ARM_USART_SET_IRDA_PULSE control.
      - USB Device:
      -- Removed CMSIS-RTOS dependency.
      -- Corrected high-bandwidth isochronous endpoint functionality.
      - USB Host:
      -- HS driver: On-chip PHY powered down if external ULPI PHY is used.
      -- Removed CMSIS-RTOS dependency.
      Board Examples:
      - Added USB Device WinUSB_Echo examples.
      - Updated all examples adding release and debug targets, using CMSIS-RTOS2 RTX and enabling the Event Recorder in debug targets.
      - Updated emWin examples to emWin V5.46e.
      - Updated USB Host examples thread stack settings.
      - Updated Board Support LED_*.c files.
      - Removed MCBSTM32F200 board Network examples based on legacy Network API v6.

Version 2.7.0: June 1, 2017

Get Pack
      Based on STMicroelectronics STM32CubeF2 Firmware Package to Version 1.3.0.
      Updated CMSIS drivers:
      - USART: Added "Not Used" support for TX and RX pins
      - SPI:   Added "Not Used" support for MISO and MOSI pins
      - CAN:
      -- Corrected filter setting for adding/removing maskable Standard ID
      -- Corrected clearing of overrun flag in interrupt routine
      -- Corrected CAN2 initialization that was disabling CAN1 filters
      -- Corrected receive overrun signaling
      - I2C:
      -- slave event handling reworked
      -- Corrected rise time setting when using ARM_I2C_BUS_SPEED_FAST
      - USB Device:
      -- HS driver: On-chip PHY powered down if external ULPI PHY is used
      -- Corrected resume event signaling
      -- VBUS sensing enabled by default
      -- VBUS detection is selected automatically based on VBUS sensing pin setting (in RTE_Device.h or by STM32CubeMX)
      -- Corrected initial resume signaling after USB Bus Reset
      -- Corrected device status information
      - USB Host:
      -- HS driver: On-chip PHY powered down if external ULPI PHY is used
      -- Corrected over-current pin configuration
      Updated BSP drivers:
      - Board Touch display: MCBSTM32F200 Touch_STMPE811.c: Corrected occasional incorrect coordinate reading, when touch screen is released.
      Updated examples:
      - Updated emWin examples to emWin V5.36f
      - Updated USB Device CDC ACM VirtualCOM example (corrected initial UART receive size)
      Updated RTE_Device:
      - Added "Not Used" support for SPI MOSI/MISO pins and USART TX/RX pins.

Version 2.6.0: April 14, 2016

Get Pack
      Updated CMSIS drivers:
      - EMAC:
      -- Corrected Ethernet PTP functionality
      - CAN:
      -- Corrected functionality when only one CAN controller is used
      -- Corrected functionality when NULL pointer is provided for one or both signal callbacks in Initialize function call
      - USB Host full-speed:
      -- Removed interrupt priority handling
      - USB Host high-speed:
      -- Added DMA configuration to RTE_Device.h
      -- Corrected wrong result of PipeTransferGetResult for In Pipe transfers in DMA mode
      -- Added check to PipeTransfer function for 4-byte data alignment if DMA is used
      -- Removed interrupt priority handling
      - USART:
      -- Corrected CTS handling and added signal CTS change event.
      Updated examples:
      - Updated emWin examples to emWin V5.32
      - Updated CAN example
      - Updated USB Host examples
      - Updated USB Device CDC ACM VirtualCOM example for Keil MCBSTM32F200 evaluation board

Version 2.5.0: Dec. 8, 2015

Get Pack
      Updated STMicroelectronics STM32CubeF2 Firmware Package to Version 1.3.0.
      - updated affected examples
      MDK-ARM configuration via STM32CubeMX:
      - updated MX_Device.h generation: pin names characters '/', '-', ' ' converted to '_'
      Added examples using Network DualStack (IPv4/IPv6) Middleware targeting MCBSTM32F200 (Keil.MDK-Middleware.7.0.0.pack required)
      Updated all CMSIS drivers:
      - Corrected PowerControl function for Unconditional Power Off
      Updated USB Device CMSIS driver:
      - Updated handling of Isochronous transfer
      Updated USB Host CMSIS drivers:
      - Corrected speed setting in high-speed port for On-chip Full-speed PHY
      - Corrected low-speed device on high-speed port functionality
      - Corrected multiple packet sending and PING functionality
      - Renamed defines for overriding the maximum number of pipes used
      from USBH_MAX_PIPE_NUM to USBH0_MAX_PIPE_NUM in full-speed driver, and
      from USBH_MAX_PIPE_NUM to USBH1_MAX_PIPE_NUM for high-speed driver
      Corrected SPI driver:
      - Corrected 8bit/16bit Data register access, regarding the Data frame size
      Updated CAN driver:
      - added possibility to use only CAN1
      Updated EMAC driver:
      - corrected return value of the ReadFrame function

Version 2.4.0: Sept. 16, 2015

Get Pack
      Introducing MDK-ARM configuration via STM32CubeMX:
      - see documentation for component Device:STM32CubeFramework:STM32CubeMX
      CMSIS driver:
      - added CAN driver and configuration options in RTE_Device.h
      - updated EMAC driver: corrected lockup after long runtime
      - updated MCI driver: corrected clock divider bypass handling
      - updated USART driver: corrected driver incorrectly stopped receiving data when calling the USART_Receive function while the receiver is busy
      - update I2C driver: corrected 3 byte reception and POS bit handling in master mode as well as corrected acknowledge handling in slave mode
      MDK example projects:
      - added examples created using MDK and STM32CubeMX: Blinky and emWin GUI_VNC for Keil MCBSTM32F200
      - added CAN Data and RTR projects for Keil MCBSTM32F200
      - updated FTP_Server example: Heap memory increased

Version 2.3.0: June 12, 2015

Get Pack
      Updated CMSIS drivers:
      - I2C, MCI, EMAC, USB Device, USB Host: Updated initialization, uninitialization and power procedures
      - MCI: Corrected data timeout handling
      - SPI:
      -- Corrected status bit-field handling, to prevent race conditions
      -- Corrected ARM_SPI_EVENT_DATA_LOST event generation in master mode at high bus speeds
      -- Corrected bus speed configuration
      - USART:
      -- Corrected status bit-field handling, to prevent race conditions
      -- Added RX TimeOut handling
      - USB Device: Corrected transferred size during transfer
      - USB Host:
      -- Added pipe bus error signaling of active pipes on port disconnect
      -- Corrected handling on error transfers
      Updated MDK examples:
      - Boards/Keil/MCBSTM32F200/Blinky
      - USB Device Mass Storage Example

Version 2.2.0: March 20, 2015

Get Pack
      Required PACKs: ARM.CMSIS.4.3.0.pack, Keil.MDK-Middleware.6.3.0.pack, Keil.ARM_Compiler.1.0.0.pack
      Updated drivers:
      - USB Host: Corrected signalling of STALL handshake
      - USB Device:
      -- Corrected IN ZLP sending
      -- VBUS sensing disabled if ARM_USBD_VBUS_DETECT is not enabled
      - USART: corrected when configured via STM32CubeMX
      - I2C:
      -- includes corrected when configured with STM32CubeMX
      -- corrected transfer issues after ARM_I2C_EVENT_ADDRESS_NACK
      - MCI:
      -- includes corrected when configured with STM32CubeMX
      -- correction required due to device errata
      -- added support for SD high speed bus mode
      - SPI: corrected spi->info->mode handling
      Updated examples:
      - Compiler I/O software component is now used for I/O retargeting
      - Updated Network examples for MCBSTM32F200 V1.2 board with KSZ8081RNA Ethernet PHY
      Updated dependencies:
      - Ethernet does not require CMSIS:RTOS

Version 2.1.0: Dec. 11, 2014

Get Pack
      Updated drivers:
      - I2C: corrected slave mode and 10-bit addressing mode, I2C2 SDA pin configuration
      - USB Host:
      -- corrected interrupt pipe behaviour, and PING on high-speed driver, init/deinit and power control
      -- added VBUS Power pin active high/low functionality, overcurrent state functionality (without event) added
      - USB Device: prevent simultaneous IN writes to FIFO
      - USART and SPI: corrected DMA transfer abort
      - MCI: corrected setting of bus width
      - EMAC: implemented function 'GetMacAddress'
      - EMAC, I2C, MCI, USART, SPI and USBD: corrected some basic MISRA 2004 compliances like signedness, boolean operation on logical operators
      Updated RTE_Device.h: added Receive and transmit DMA configuration for SDIO peripheral
      Renamed SDIO component in 'Device::STM32Cube HAL' to 'SD' to match HAL component name
      Updated examples:
      - File_Demo and USB Host MassStorage examples updated due to the new fdelete() API in File System Version 6.2
      - MCBSTM32F200 USB Host Keyboard example (removed USB High-speed usage)
      - updated RTE_Device.h to version 2.01

Version 2.0.0: Oct. 16, 2014

Get Pack
      PACK based on STMicroelectronics STM32CubeF2 Firmware Package V1.1.0
      - STD Peripheral Library components removed
      New Device variants introduced matching ST Cube device database
      - e.g. STM32F207IG -> STM32F207IGHx or STM32F207IGTx
      CMSIS Drivers Version 2 (changed Cclass "Drivers" to "CMSIS Driver")
      - Ethernet MAC, I2C, MCI, SPI, USART, USB Device, USB Host
      MDK-ARM Example projects require MDK-Middleware 6.1.1 and CMSIS 4.2.0
      - Board Support uses Board Interface API from MDK-Middleware (header file names changed)
      - Board: Keil MCBSTM32F200

Version 1.0.8

Get Pack
      Device: Startup files for GCC added, conditions extended to reflect toolchain dependencies

Version 1.0.7: April 29, 2014

Get Pack
      Updated I2C driver  (BUG Fix: 2 byte reception)
      Device:StdPeriph Drivers:Framework Version:1.1.1 - added file misc.c

Version 1.0.6

Get Pack
      Added STM Peripheral Driver Library V1.1.0

Version 1.0.5

Get Pack
      Updated I2c driver (corrected register access)
      USB Device drivers update: multiple packet read, EP0 unconfiguration
      Updated SPI driver (IRQ handling corrected)

Version 1.0.4

Get Pack
      Updated drivers (namespace prefix ARM_ added)

Version 1.0.3

Get Pack
      Added STM32F200 Board Support Bundle

Version 1.0.2

Get Pack
      Added emWin Example and GUIDemo for MCBSTM32F200
      Added emWin LCD driver for MCBSTM32F200
      Updated USBH Drivers (improved robustness)

Version 1.0.1

Get Pack
      Generic Drivers moved to "Drivers" Class
      Added UART and I2C Driver
      Updated USBD and USBH Drivers
      Added MCBSTM32F200 Demo example
      Added MCBSTM32F200 USB Host Keyboard example
      Added MCBSTM32F200 BSP Drivers: Joystick, Touchscreen, Accelerometer, Gyroscope, Camera
      Updated MCBSTM32F200 BSP Driver: Keyboard
      Updated all MCBSTM32F200 examples
      Minor corrections:
      - SPI Driver
      - DMA Driver
      - MCI Driver

Version 1.0.0

Get Pack
      First Release version of STM32F2 Device Family Pack.

Version 0.9.0

Get Pack
      Beta version of STM32F2 Device Family Pack.