Join conversations with your peers and ST experts. Explore the full potential of STM32 microcontrollers for your embedded design.
Most recent activity
Split from What RTOS is used on STM32F429i eval board GUI Demo?Thank you !I have saved the github page. Will try the examples there.Does the STM32429I eval board come with FreeRTOS installed ?
I have a doubt about can a general purpose timer generate dead time like advanced timer without changing the duty and frequency is this is possible i tried with center aligned mode but it changes the duty is there is any possiblities??
The I2C on our board is unclean, at all clock speeds - 1 MHz, 400 kHz and 100 kHz - even without rf circuitry running. Signal traces are about 5 cm long in total. Pullups were set at 1 kOhm to enable Fast Mode Plus, but even the Standard 100 kHz low frequency signal is glitchy. All the modules work most of the time, but eventually they glitch out and quit. This probably has something to do with the I2C signals. All of these chips are supposed to be able to handle a 1 kOhm pullup to 3.3V. They are also supposed to be able to handle up to a 1 MHz I2C clock. Here is my schematic. SDA and SCL are connected to I2C2 on the STM32WL5MOCH. To test the individual performance of each device, we individually enabled / disabled each module and then watched the I2C signal at 100 kHz. Communicating with the OLED:The MCU generates weird little spikes every once in a while, almost like it can't decide whether or not to hold
On nucleo_u575zi_q below observations has been captured.Issue: - when IWDGRSTF flag is cleared by writing to the RMVF bit still watchdog reset occurred.Expected Behavior: - When the IWDGRSTF flag is cleared by writing to the RMVF bit, the watchdog reset should not occur.Please find the below snippet of sample code of STM32cubeIDE.Also find the reference of user Manul and data sheet of nucleo_u575zi_q board.Please provide appropriate solution for the above issue.
Is there any mothod solve this issue If the Friction parameter is not provided by the motor manufacturer ?
Hi,I am using an STM32H753ZIT6 NUCLEO board. While powering the board with an external supply, we faced an overvoltage issue on the board.As the user manual reccomends that the board be supplied between 7 to 12 V, we provided it a constant supply of 9.5 V. After a while, the overvoltage warning LED turned on on the board hence the source was disconnected and we found that the voltage regulator on the board was heating excessively. However, even after replacing the regulator with a new one we are facing the same issue. Any help regarding how this can be fixed would be appreciated.Thank you.
Hello ST Community,I'm currently working with the STEVAL-CTM012V1 evaluation board and have encountered an issue using it with the latest Motor Control SDK (MCSDK) v6.3.0.This board does not appear in the supported hardware list of MCSDK v6.3.0, so I downloaded the firmware package for it from the official ST product page. The package is based on MCSDK v5.4.4, and the PDF with that instructs me to load the configuration file named “STEVAL-M01xV11shunt_FOC.stmcx” using the Motor Control Workbench. The .stmcx file is not detected or listed when I try to import it in MC Workbench v6.3.0 and the provided inverter JSON file (STEVAL-CTM01xV1.json) shows as invalid when I try to import it via the Board Manager, Screenshot attached. As a result, I’m unable to open or upgrade the project for use in the latest SDK.Could you please advise:Is there an updated configuration package (JSON and STMCX) for MCSDK v6.3.0?If not, what is the correct procedure to migrate a v5.4.4 project to MCSDK v6.3.0?Wi
Hi,I have a B-WL5M-SUBG1 board and I built ST's official LoRaWAN_End_Node application that I got from github and deployed to the board successfully. I changed the activation type as ABP (Activation By Personalization) and observed the logs via serial port. Tx operation happens in every 10 sec. for a while then the log says for example "4378s018:Next Tx in : ~2871 second(s)" and stops, after something close to 2871 sec. it starts Tx operation again. It keeps going like this in a stable way.Some Tx operation - stops for 2871 sec. - some Tx operation again - stops for 2871 sec. - ................. I tracked this line in the source code a bit but I couldn't find the place I need to adjust in order to change this time limit or remove it totally. Furthermore why there is such a process? By the way, in the sys_conf.h file it is configured like this "#define LOW_POWER_DISABLE 0", means low power mode is enabled. Any help will be appreciated. &nbs
I have a problem with setting up and flashing the P-NUCLEO-IHM002 using the Motor Profiler and STM Motor Workbench. Kindly help me in setting this up, preferrably run a example folder either six step or foc. Once done, help me integrate with Matlab simulink MBD workflow. Also provide methods for manual code addition in the generated code using STM32CUBEIDE.
Dear Team,I recently purchased the STM32H7S78-DK development kit for evaluating and testing customization options with the STM32H7S7 series microcontroller.Although I have referred to the user manual and datasheet, I am still facing difficulties operating the board independently. I am using an ST-Link V3 programmer, but I am unsure how to properly connect and program the board.I kindly request complete guidance on the following:Power connection method for the STM32H7S78-DKST-Link V3 connection procedureStep-by-step instructions to flash firmwareAny official tutorials or video links for setup and programmingAny relevant documents or application notesPlease share any available resources to help me proceed with development and testing.
Hello,I need counter which should wakeup system from stop2 mode at every sequential time.So currently use below setting and it works fine and wakeup at every ~4.16 minutes. But I want it should wakeup at max time of 30minutes (not fixed but looking for max time it can achieve). So thinking to use Repetition counter so that it can repeat the same counter and once repeat counter complete it will wakeup the system. But it's not affecting with repetition counter value. works same at zero.void MX_LPTIM1_Init(void) { LPTIM_OC_ConfigTypeDef sConfig1 = {0}; // 1. Enable LSI Clock RCC_OscInitTypeDef RCC_OscInitStruct = {0}; RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_LSI; RCC_OscInitStruct.LSIState = RCC_LSI_ON; RCC_OscInitStruct.PLL.PLLState = RCC_PLL_NONE; if (HAL_RCC_OscConfig(&RCC_OscInitStruct) != HAL_OK) { Error_Handler(); } // 2. Select LSI as LPTIM1 clock source __HAL_RCC_LPTIM1_CONFIG(RCC_LPTIM1CLKSOURCE_LSI); // 3. Enable LPTIM1 clock __HAL_RCC_LPTIM1_CL
Hi, What is the frequency of timer2 which is of 32 bit with prescaler value 0 for NUCLEO-H755 board and how to check it ?
当 wb55 启用 BLE 并同时使用 UART1 的 CFG_HW-UART1 时,如何再次使用 UART 进行串口传输? 不使用 APP_SBG_SG 等函数,而是使用 HAL 等函数UART_Transmit
Hi,Is there any way to debug an application launched from external flash memory? I use J-Link and IAR, the application is loaded into flash but I am not able to start debugging. I assume that in order for the microcontroller to even start executing code, XSPI must be configured first and memory mapping must be enabled. Should the debugger do this? Is it even possible?BRArtur
Given that my QSPI driver and external loader for the W25Q128JVSIQ are already working, is there a hidden CubeProgrammer/DFU-descriptor trick that lets the stock USB bootloader read/write my external QSPI flash at 0x90000000, or must I build a custom USB-DFU bootloader that:Initializes QSPI and advertises the 0x90000000 regionHandles read/write/erase transfersso I can flash firmware onto the external flash over USB? If I do go the custom route, can I still use CubeProgrammer for the update, or do I need to write my own host application?
/* USER CODE BEGIN Header */ /** ****************************************************************************** * @file : main.c * @brief : Main program body ****************************************************************************** * @attention * * Copyright (c) 2025 STMicroelectronics. * All rights reserved. * * This software is licensed under terms that can be found in the LICENSE file * in the root directory of this software component. * If no LICENSE file comes with this software, it is provided AS-IS. * ****************************************************************************** */ /* USER CODE END Header */ /* Includes ------------------------------------------------------------------*/ #include "main.h" /* Private includes ----------------------------------------------------------*/ /* USER CODE BEGIN Includes */ #include <stdio.h> #include <string.h> #include "time.h" /* USER CODE END Includes */ /* Private typedef ---------------------------
Hello everyone, I’ve encountered some strange behaviour with my PCB using an STM32H563VGI MCU. The setup includes an array of 10 LEDs, where one additional LED turns on every 2 minutes. Initially, the system worked fine, but after about 10 minutes, I noticed the LED sequence stopped progressing, it got stuck at LED 2. To investigate, I connected a SEGGER J-Link debugger. Surprisingly, as soon as it was connected, the system resumed normal operation: the MCU printed all messages correctly, and the LED array advanced to LED 5, which was the expected state at that moment. It’s as if simply connecting the debugger “unstuck” the MCU. I’m using ThreadX as the RTOS. Has anyone experienced similar behavior? Any ideas what could be causing this? Thanks in advance for your help!
Hi all,I am working with STM32L073CZT6 with LoRaWAN Stack (I-CUBE-LRWAN). While working with Nucleo-L073RZ Everything works fine and I am able to transmit the data. I have designed a PCB with STM32L073CZT6. But here I am getting an error saying MAC txTimeout. Could you please let me know if you have already faced this type of error? can anyone help me where I am doing wrong?Note: I am using same pinout as Nucleo- Board. Thanks,Saishiva Reddy
Hello everyone,I would like to implement a project using TrustZone on the STM32 L562 Discovery board. To get started, I based my work on the STM32Cube_FW_U5_V1.4.0\Projects\NUCLEO-U575ZI-Q\Examples\FLASH\FLASH_EraseProgram_TrustZone\ example, which is often referenced in the forum for similar questions.When I try to write from the secure world to the secure world, everything works fine. However, when I try to write from the secure world to the non-secure world, I encounter an error with the SECWRPERR flag. This is puzzling because I haven't set any write protection on the memory areas I'm trying to access.While trying to understand the cause of this issue, I checked the STM32L562xx Reference Manual and found something interesting. On page 189, it mentions the following: Additionally, if I understand correctly, the table on page 212 states that the secure world cannot perform write-erase operations in the non-secure world. However, this seems to contradict the general principl
Dear ST Community, Dear ST Team.To implement a small USB Device i working with STM32F412 MCU and a Flash Chip mt25ql512.The Good Part is, that the QSPI Communication works absolutly fine and i can read, write the flash and erase the Chip.Next Step is to Implement a small Filesystem with FATFS.After the Standard settings and configure the user_diskio.c, i stuck in the HardFault_Handler after the call f_mkfs() function. So im sitting on a dead end and im glad to hear some ideas or information about that topic.Thanks for your help.Thx RSheetz/********************************************************************************************/void FatFS_USB_init(void){// FATFS_LinkDriver(&Flash_Driver, USERPath);FRESULT res = f_mount(&USERFatFS, USERPath, 1);// If FatFS fails mounting process, create new file systemif (res != FR_OK){f_mkfs(USERPath, FM_FAT32, 0, workBuffer, sizeof(workBuffer));res = f_mount(&USERFatFS, USERPath, 1);}}/***************************************************
Dear ST Experts,I hope this message finds you well.My current requirement is to implement Azure IoT Middleware for FreeRTOS on an STM32F2 series board. As I am relatively new to IoT development, I would appreciate your guidance and support in getting started.I have a few specific questions:Compatibility: Does the STM32F2 series support Azure IoT Middleware for FreeRTOS?Configuration: If supported, what are the key parameters or middleware components that need to be enabled in STM32CubeMX or CubeIDE?Documentation Gaps: I have reviewed the available Azure and ST documentation, but I couldn’t find specific guidance or porting examples for the STM32F2 series. Could you please point me to any relevant resources or examples?Your assistance would be extremely helpful for my development efforts.Thank you for your time and support.Best regards,Amara Rakesh
Use sthm32h7b0 to push 800*480 TFT screen, using internal ram,using RGB565 color space. Run the test function lv_demo_widgets(), it can work normally under lvgl8.2. fter lvgl was upgraded from version 8.2 to version 9.1, after modifying the corresponding driver file, run the lv_theme_default_init function under the lv_demo_widgets function, and hardfault occurs. ```msh />psr: 0x01000000r00: 0x0000000fr01: 0x08084d7fr02: 0x00000000r03: 0x08084d70r04: 0x240c21a4r05: 0x240c21a0r06: 0x240c219cr07: 0xdeadbeefr08: 0xdeadbeefr09: 0xdeadbeefr10: 0xdeadbeefr11: 0xdeadbeefr12: 0x00000000 lr: 0x08029019 pc: 0x08043636hard fault on thread: LVGLrt_thread_ thread pri status sp stack size max used left tick error---------- -------- --- ------- ---------- ---------- ------ ---------- ---0x240cc338 wav_p 15 suspend 0x000000c4 0x00000800 09% 0x0000000a EINT
Hello everyoneI recently bought an STM32H735G-DK Discovery Kit, which has a 480x272 parallel LCD. I got the TouchGFX Demo projects running on the board, so I know all the hardware is working as it should.Eventually I want to use TouchGFX on a custom board, so I am trying to configure a new project 'from scratch'. I am very new to the STM32 ecosystem, so I thought I would keep things simple and try to display something on the LCD with a framebuffer in the internal RAM.So I started a new project in the STM32CubeIDE, from an existing ioc file (the one from one of the TouchGFX examples). I then disabled OCTOSPI1, OCTOSPI2, FREERTOS, LIBJPEG, TOUCHGFX, CRC, in order to have a project which is as bare bones as possible.Following this guide (https://support.touchgfx.com/docs/development/board-bring-up/how-to/02-cpu-running), i was able to access the internal RAM (with some trial and error, I found I could address bytes 0x08000000to 0x08100000.I then continued to this guide (https://support.to
Hi, I am trying to create an external dynamic bitmap to display an image already loaded into Memory Mapped External Flash. uint16_t FrontendApplication::getLogoBitmapId() { if (bitmapId == touchgfx::BITMAP_INVALID) { bitmapId = Bitmap::dynamicBitmapCreateExternal(185, 43,(void const*)0x90FC0000, Bitmap::RGB565); } return bitmapId; } void LandingView::setupScreen() { LandingViewBase::setupScreen(); auto app = static_cast<FrontendApplication*>(Application::getInstance()); uint16_t bmpId = app->getLogoBitmapId(); logo.setBitmap(Bitmap(bmpId)); add(logo); logo.invalidate(); } I keep getting the bitmapId as BITMAP_INVALID. I've tried the external bitmap function with L8 as well.
HiiI am using stm32g0b0cet6, while writing bootloader, i am confused with the page number and the total storage.Its total storage is 512 kb, According to the reference manual, The Main memory is shown like belowQuestion1: If each page is 2kb & total number of pages are 383, then total flash should would be 2x383 = 768 kb. (contradiction ot total flash size)Question2: According to the memory address given of first & last page, the total memory comes up after calculation is 512 kb. here is the calculation:0x0807F800(last page starting address) - 0x08000000 (0th page starting address) = 0x7F800 = 522240 bytesAdd the last page size (2 KB = 2048 bytes):522240 + 2048 = 524288 bytes = 512 KBSo if it is 512 kb, divided by page size 2kb, it should have total number of page as 256. right? but reference manual have mention 383.
ST Community highlights – April to June 2026
Already have an account? Login
No account yet? Create an account
Enter your E-mail address. We'll send you an e-mail with instructions to reset your password.