Close

Installing STM32IDE and modifying the HTTP example project

A project log for NTP Clock Based on STM32H735 Discovery Kit

This is an SNTP clock based on the STM32H735 Discovery Kit.

dmoisandmoisan 03/28/2021 at 20:360 Comments

The STM32H735 Discovery Kit was a new board to me.  Normally, for most of ST Microelectronic's other boards, they provide a tool--the STM32CubeMX package--that automatically generates template code based on what modules you require in your project.  The Discovery Kit was recently introduced, and the CubeMX tool doesn't have complete board support for it.  The STM32Cube IDE is the recommended tool to write code for this board. After much time running in circles, I decided to just rip apart, I mean, adapt existing sample code for this.

Amongst the sample projects for the Discovery Kit, there is a HTTP server project, using the FreeRTOS real time OS, and lwIP, the Light-Weight IP Stack.  This was perfect.  All of the elements were present.  All I needed to do was to enable and include the sample SNTP client.

I built this project with the STM32CubeIDE ("CubeIDE")  While I'd much prefer having a toolchain with my favorite software--I already have a multitude of IDE's from Texas Instruments, Microchip and others--I had to go with what STM32 developers are using, and so I will be using CubeIDE.  It, like many other IDE's, is built on Eclipse.  Love it or hate it, it is a known quantity.

I started by installing CubeIDE, accepting the defaults.  During installation, CubeIDE may ask to update the latest firmware for the device.  Don't skip this! When ST refers to "firmware", they mean to say, "all of the libraries and HAL's that are needed by your device!"  (The ST firmware and libraries are also on Github.) and then opening CubeIDE and selecting New/New STM32 Project:

Then, in the following dialog box, select the target board on the left ("STM32H735G-DK") , and when the project list appears, select "LwIP_HTTP_Server_Socket_RTOS".  IClick Next.  Click through the next two dialogs and accept the defaults. 

The project is now loaded into your workspace.  When I repurpose sample code, I rename it to fit the new purpose of the project.  CubeIDE makes this nearly impossible.  I will explain a workaround in the next project log.

Discussions