 And welcome to this STM32 CubeMX Getting Started video. STM32 CubeMX is a part of the STM32 MCU Development Ecosystem. It is used to configure and generate code, compile and debug, and estimate power consumption. STM32 CubeMX is a PC tool designed to help engineers develop their applications faster and easier on an STM32 platform. It can generate initialization code for STM32 microcontrollers based on your configuration choices. Now we will show you an example of how to use STM32 CubeMX to develop an application with a UART communication interface. First, install the STM32 CubeMX software, then select the correct MCU based on its hardware features, operating modes, and pinout. Select and configure the clocks and peripherals. Use the STM32 CubeMX graphical software configuration tool to generate the C code skeleton. Insert your user card for UART communications. And finally, simulate the power consumption using the calculator tool. Most parts of the development process are supported by STM32 CubeMX. For our exercise, we need a Nucleo L073RZ development board, a PC with STM32 CubeMX installed, a client for serial communications, such as Putty, and a Type A to Mini B USB cable. STM32 will generate a UART message to stlinkv2 in the Circuit Debugger Programmer. And stlinkv2 will send a message to the PC through the USB and virtual COM port. How do you download the STM32 CubeMX install package? Go to www.st.com slash stm32cubemx and log on. If you don't have an account, create one. Click Get Software at the end of the page. Accept the Software License Agreement and install the software. To create a new project and select an MCU, launch STM32 CubeMX, click New Project, select the correct MCU. In our case, it's the STM32L073RZT6 or the Nucleo L073RZ development board. Don't forget to use the filters. You can see how easy it is to create a project. Now let's start configuring the project settings. All the information is clearly presented graphically. We can start configuring the UART communication example. Select Sys and check Serial Wire Debug. Select TIM2 and select Internal Clock for the source clock. Select Usart2 and choose Asynchronous Mode. For PINPA2, ensure that UsartTX is already selected. For PINPA3, ensure that UsartRX is already selected. For PINPA13, ensure that SysSWDIO is selected. For PINPA14, ensure that SysSWCLK is selected. To easily modify clock frequencies, click the Clock Configuration tab. We can change the input frequency. If the value is out of range, the text box is highlighted in red. We can change the system clock MUX selection. PLL dividers and multipliers can also be modified. It is possible to use the tool to change many parameters. In our case, the default settings are the correct one. Now let's look at the peripheral setup. Click the Configuration tab and then easily modify middleware and peripheral settings. Each function selected on the Pinout tab is listed in the left-hand menu. Simply click the corresponding button to access available parameter settings. In this example, TIMER2, middleware functions, are also available if selected, as well as the Usart2 and system functions. Now we will configure the Usart2 interface settings such as Baud Rate, Data Direction, Oversampling, and Auto Baud Rate. To configure the timer, click the TIM2 button. Set Prescaler at 16,000, Counter Period at 1,000, and finally, enable TIM2 Global Interrupt. STM32QBMX is able to generate source code for a lot of development environments and IDEs such as Arm Keel and IARE Warm, for example. Now we will try to generate the code skeleton for the Keel IDE. In the Project menu, select the Settings submenu. Enter the correct values for Project Name, Project Location, and especially, don't forget to select the tool chain. Using the code generator, many options can be customized. For example, the mode for importing libraries or generating files. This one lets us keep our code when we regenerate it. Now we can create the main source code. In the Project menu, click Generate Code and Wait. When generating code for the first time, libraries are imported. Now we can open our project. We insert our C code between User Code Begin and End Tags. The code written here will be preserved upon new generation of code from STM32QBMX, the headers and buffer variables, the timer event generation function, and finally, the UART message generation mechanism. Now we build a target file and download it to the STM32 target. Everything seems OK. Now we open our favorite terminal, in our case, PuTTY, and set the port corresponding to the Nucleo virtual COM port. Push the Reset button on our target board and a message is generated for each timer event. Other tools can also be used to help. For example, PCC can simulate and evaluate the power consumption rates of your future project. Click the PCC tab. We can add a step. Configure Run Mode, CPU at 4 MHz and GPIOA enabled. We can add a new step. Configure Sleep Mode, CPU at 8 MHz and GPIOA enabled. Graphically, we can check consumption rates. Thank you for watching this video.