How to start programming the STM32 Embedded Displays by Riverdi ?
Here are the fundamentals of what a newcomer to the STM32 ecosystem needs to know about designing the STM32 Embedded Displays.
What hardware for STM32?
It is not recommended to start with unknown hardware manufacturers, especially, if you are new to embedded programming. Instead, go for well-established companies.
The Riverdi STM32 series is great to start with and learn, because we offer full documentation and there are free demos, presets and libraries to get your hands on working examples of code.
You could also try the official boards from ST (like Nucleo or Discovery series).
What documentation for STM32?
Documentation is in most cases a technical literature prepared by manufacturer to guide you through the complexity of microcontrollers. Those documents can help you learn all the MCUs features:
Getting Started Guide, which is a go-to for newcomers,
Datasheet, which is a comprehensive technical description of all MCU characteristics,
User Manual (or Guide), which gives in-depth instructions and parameters with helps to solve the most common issues,
Application Note, which gives more specific details on using a component in a specific application
Reference Manual, which gives a more detailed view on MCUs architecture,
Programming Manual, which provides the information required for application and system-level software development.
It is advised, before you actually use a specific MCU in your project, to take at least a brief look at the Datasheet. You should check the peripherals, the GPIOs, and other basic parameters, like the clock. The aim is to make sure that the given hardware meets requirements of your project.
What programming language for STM32?
The recommended programming language in STM32 is C. In case of writing code directly for microcontrollers – C is the best choice. It is also the foundation on which you can further expand your MCU expertise using other programming languages.
What framework for STM32?
To make your work smooth while programming the STM32s you will need the proper framework. Framework is a platform on which you write code and develop your project. Software frameworks may include support programs, compilers, code libraries, toolsets, and application programming interfaces (APIs). What are the available frameworks to choose from?
There is the recommended one, which is the STMicroelectronics ecosystem. It is made of two complementary levels: the Low Layer (LL) libraries and the Hardware Abstraction Layer (HAL). Low-level libraries are well-suited for optimizing hardware and operating on limited resources, but require a bit of know-how (acquirable through documentation). HAL, which is high-level library, might work better for newcomers. Both can be handled by the free STM32CubeIDE software.
There is Mbed by ARM, the online collaborative project for internet connected devices based on ARM Cortex-M. It uses C & C++ programming languages, which is good news for those fluent. A great solution for IoT devices. mBed OS is quite like Arduino. Speaking of Arduino, there are several boards directly supporting STM32. One of them is the STM32Duino project based on Nucleo boards.. Both those frameworks are all about simplicity, but the downside is that there are limited STM32 features in terms of hardware control, and the quality of libraries might not be guaranteed.
Last but not least is the Pure C language, which guarantees well optimized results in terms of performance. Pure C will use less memory and still be super fast. But those advantages come only with knowledge and experience, so it is not recommended for beginners.
What programming tools for STM32?
If you choose the recommended ST ecosystem approach, then you can start using a number of software tools provided by the STMicroelectronics for free. There are development tools, evaluation tools, development environment, embedded software and so on. Here are some of the main tools you should know about:
STM32CubeMX – a graphical tool for MCU configuration and generating initialization code;
STM32CubeIDE – all-in-one tool for advanced C/C++ development in STM32 ecosystem: microcontroller selector, peripheral configurator, code generator, compiler, debugger, and programmer;
STM32CubeProgrammer – all-in-one tool for programming STM32 products;
TouchGFX Designer – advanced graphic software framework for creating GUI in a WYSIWYG method;
STM32CubeMonitor – run-time monitoring tool to fine-tune and diagnose STM32 applications based on variables real-time visualization.
A brief look at TouchGFX Designer
TouchGFX Designer is a GUI-designer optimized for Riverdi products running on STM32 microcontrollers – Riverdi demo projects and presets are embedded in TouchGFX library. TouchGFX tool is an advanced software framework solution to create superb GUI using WYSIWYG method, which makes GUI design user-friendly. Riverdi partnership with STMicroelectronics can reduce prototyping time and cost and improve time-to-market efficiency of the project.