Join conversations with your peers and ST experts. Explore the full potential of STM32 microcontrollers for your embedded design.
Most recent activity
Hi,I'm currently working on STM32H733 MCU powered by Azure RTOS (Threadx + NetxDuo), My application is divided into two parts: custom bootloader[For Firmware Updates] and application[Business logic Implementation]. I was able to update the application from the bootloader. After a successful download of the application, the bootloader Soft Resets the device. The device boots into the bootloader again and checks if there is a valid application, then jumps to the application.Everything was working as expected until I updated ld file(to move .tcp_sec and .nx_data sections to start of D1_RAM) from .tcp_sec (NOLOAD) : { . = ABSOLUTE(0x24036C00); *(.RxDescripSection) . = ABSOLUTE(0x24036C60); *(.TxDescripSection) } >RAM_D1 AT> FLASH .nx_data 0x24000100 (NOLOAD): { . = ABSOLUTE(0x24036D00); *(.NetXPoolSection) } >RAM_D1 AT >FLASHto ... .tcp_sec (NOLOAD) : { . = ABSOLUTE(0x24000000); *(.RxDescripSection) . = ABSOLUTE(0x24000060); *(.TxDescripSection) } >RAM_D1 A
I get errors in many of the headers files in the Drivers, for: unknown type name 'HAL_StatusTypeDef'. All of these files include the file with definitions, in my case #include "stm32u5xx_hal_def.h", so I do not understand why it is a problem to find. I have all necessary include paths. When I searched on the internet I see that others had the same issue but did not get any good solution. Do you have any tips why it happens and how can I solve it?Thanks in advance!
I am trying to make a prototype from a perf-board and a QFN48 adapter using STM32WL55CC MCU based on the wiring in the pics below. I want to connect to the MCU using SWD via an STlink attached to a Nucleo board. I already removed the 2 jumpers on CN2 and made the following connection shown below to CN4 and the MCU. However when i try to connect using the ST-Link utility I am getting the following error. BTW I just started learning embed development and just want to connect via SWD for now. Connection Details:VDD_TARGET(PIN1 on CN4)=>3.3V supply from PIN16 CN7 on the nucleo boardSWCLK(PIN2 on CN4)=>PIN 42 on STM32Wl55CCGND(PIN3 on CN4)=>ground pad on STM32Wl55CCSWDIO(PIN4 on CN4)=>PIN 36 on STM32Wl55CCNRST(PIN5 on CN4)=>NRST on TM32Wl55CCVDD for the MCU is supply from 3.3V CN7 PIN16 of the nucleo board
For PID tuning, from documentation, I understood how to calculate gains for current loop. But how to calculate them for speed loop? How Motor control workbench is auto calculating the gains for speed regulator? Please provide documentation or formulas related to it.
Hi Master:Platform: STM32H743HAL library firmware: STM32Cube FW_H7 V1.12.1Question:As shown in the following code, it takes a long time to update 'sTime', perhaps a few minutes. RTC_TimeTypeDef sTime = { 0 }; RTC_DateTypeDef sDate = { 0 }; ASSERT(HAL_RTC_GetDate(&hrtc, &sDate, RTC_FORMAT_BIN) == HAL_OK); ASSERT(HAL_RTC_GetTime(&hrtc, &sTime, RTC_FORMAT_BIN) == HAL_OK); But when I switch the order of execution, it is updated every secondRTC_TimeTypeDef sTime = { 0 }; RTC_DateTypeDef sDate = { 0 }; ASSERT2(HAL_RTC_GetTime(&hrtc, &sTime, RTC_FORMAT_BIN) == HAL_OK); ASSERT2(HAL_RTC_GetDate(&hrtc, &sDate, RTC_FORMAT_BIN) == HAL_OK);What is the reason for this? Thank you so much
Hi, I flashed the nucleo-stm32wb55RG with the binary BLE_TransparentMode_reference.hex (location: C:\ST\STM32CubeWB_package\STM32CubeWB\Projects\P-NUCLEO-WB55.Nucleo\Applications\BLE\BLE_TransparentMode\Binary) using the STM32CubreProgrammer (version 2.20.0). I followed the instructions of UM2288 Rev 19, section 2 (connection to target). But in STM32cubemonitor-rf, when I click 'connect' button, I get a pop-up message: 'Device under test not responding COM port closed'.Before flashing BLE_TransparentMode_reference.hex, I installed stm32wb5x_FUS_fw.bin and stm32wb5x_BLE_Stack_full_extended_fw.bin using the STM32CubreProgrammer. Here is the screenshot showing the FUS and stack versions:The device manager shows COM3 for the nucleo-wb55:However, I am not able to connect to the nucleo using the cube monitor-rf tool as shown below: Can you please provide further guidance to fix this issue? Thank you
Hi Expert, I wan to use STM32303E-EVAL + STEVAL-IPM15B 3Sh to run the motor profiler 5.4.8.But the error message is shown below.I connect the control board to PC via USB, the LD8 is red. The device manager of PC cannot see com port. I think the STM32303E-EVAL not provide a virtual com port, right?How could I solve this problem?Thanks.
Hello all, I am trying to compile STM32F7xx_HAL_Driver using gcc toolchain in mingw. I am trying to build the example project GPIO_EXTI for the STM32F746ZG-Nucleo. Here's a snip of my console output: Would appreciate any help!
Dear ST Support,I have some questions regarding the STM32WB55 using OpenThread protocol:Is it possible to modify the EUI64? If yes, are there any API interfaces provided for this modification?Currently, we are using the ST-provided EUI64 (otLinkGetFactoryAssignedIeeeEui64, formatA + ST OUI), but we need to change it to formatB + Siemens OUI.After modifying the EUI64, will the extended address (extaddress) be automatically updated accordingly?Thank you for your assistance.Best regards,Junhao
Dear St,I hope this message finds you well.At our company, we are currently in the process of obtaining product certifications. To comply with these requirements, the certification body has requested RoHS documentation for the components we use, including your microcontrollers.Could you please provide us with the RoHS certificates for your microcontrollers or, if available, a general RoHS compliance declaration covering your product line?Thank you in advance for your assistance. Please let me know if you need any additional details from our side.Best regards,Manuel Ibáñez
ST official UI samples are running with external SRAM of STM32H750B-DK, but if use internal SRAM , how to adjust the configuration ??? I try to remove external SRAM configuration inner STM32CUBE MX , but it's fail , anybody have this sample to be released ?
I have placed several Image widgets in my Swipe Container, now I want the image widget to support clicks and call my function, how can I make it?I have tried to inherit from the Image widget and implement handleClickEvent, however it doesn't implement the click event that I want.My code:#include <touchgfx/widgets/Image.hpp> #include <touchgfx/Callback.hpp> #include <touchgfx/Utils.hpp> class ClickableImage : public Image { public: ClickableImage() : Image(), clickAction(0) {} virtual void handleClickEvent(const ClickEvent& event) { touchgfx_printf("img click\n"); // Not run if (event.getType() == ClickEvent::PRESSED) { if (clickAction && clickAction->isValid()) { clickAction->execute(*this, event); } } Image::handleClickEvent(event); } void setClickAction(GenericCallback<const ClickableImage&, const ClickEvent&>& callback) { clickAction = &callback; } private: GenericCallback<const ClickableImage&,
We're currently investigating issues with our scroll list regarding the selection of an element.Scrolling works fine (resistive touch with ~4k points in each direction on an 480x272px screen). But if you want to select an item, on most occasions a drag move is registered instead of a click and the list is scrolled by a few pixels. Unfortunately the setScrollThreshold is only implemented for ScrollContainer, not on ScrollBase level, so it can be used by all Scroll-Widgets. We tried reducing the touch resolution to 4px, it improves the behavior for distinguishing between click and drag, but generates a very coarse scrolling experience (stepping). We'll try to implement a matching behaviour on the TouchController level (report same position while pressed unless moved n pixels), but would appreciate a less hacky solution.Edit: the hacky solution works reliable and well, but has to be implemented on a much lower level with possible unwanted outcomes (e.g. screen calibration for resistive to
Hello,I downloaded a project on the net to write on a 800x480 tft screen with an ssd1963 driver with an STM32F429 ans TouchGFX, I'm starting with the stm32 and I can't get a display on my screen (the screens are created by TouchGFX), I have another code that works and with which I can write on my screen and the ports on the 2 codes are configured in the same way, can someone help me?Attached filesBest regards
Hi, I have a project which uses P-NUCLEO-WB55 as reference design. However, I'm facing some problems after the customization has done on the USB Dongle demo board. Below is the problem scenario.1. After configured M4 CPU to USB HID class eg. Keyboard and downloaded Zigbee stack bin file into M0 CPU, I cannot stop sending keycode 'a' to my laptop after plugged in the dongle into my laptop. The Notepad keep showing character aaaaaaaaaa..... The only way to stop it is to unplug the USB dongle. 2. Once I removed the Zigbee (STM32_WPAN) from the CudeMX via IOC file, the USB HID keyboard works as normal. I can send 'a' when I pressed and released the SW1. Do you have and sample using USB HID class + Zigbee for reference? How to check the Zigbee stack that I have downloaded into dongle is working correctly? The FUS version is v2.0.0.3 but not know how to check the Zigbee stack. Attached is my IOC file for your reference. As for the P-NUCLEO demo board, we
I have some strange results when reading the configuration registers on the APS6408L-3OBMx.MCU: STM32H725IGK6Driver from https://github.com/STMicroelectronics/stm32-aps6408OCTOPSPI init code:static void MX_OCTOSPI2_Init(void) { /* USER CODE BEGIN OCTOSPI2_Init 0 */ /* USER CODE END OCTOSPI2_Init 0 */ OSPIM_CfgTypeDef sOspiManagerCfg = {0}; /* USER CODE BEGIN OCTOSPI2_Init 1 */ /* USER CODE END OCTOSPI2_Init 1 */ /* OCTOSPI2 parameter configuration*/ hospi2.Instance = OCTOSPI2; hospi2.Init.FifoThreshold = 4; hospi2.Init.DualQuad = HAL_OSPI_DUALQUAD_DISABLE; hospi2.Init.MemoryType = HAL_OSPI_MEMTYPE_APMEMORY; hospi2.Init.DeviceSize = 23; hospi2.Init.ChipSelectHighTime = 1; hospi2.Init.FreeRunningClock = HAL_OSPI_FREERUNCLK_DISABLE; hospi2.Init.ClockMode = HAL_OSPI_CLOCK_MODE_0; hospi2.Init.WrapSize = HAL_OSPI_WRAP_NOT_SUPPORTED; hospi2.Init.ClockPrescaler = 2; hospi2.Init.SampleShifting = HAL_OSPI_SAMPLE_SHIFTING_NONE; hospi2.Init.DelayHoldQuarterCycle = HAL_OSPI_D
I saw in a post here that someone blew up their B-G431B-ESC1 with just 5As using the motor profiler. The spec says the mosfets will output up to 120A. I am looking to run motors up to 30A. I'd like to see if there is a prescribed way of adding heat sink & fan to controller board.
Hi everyone, I'm currently working on a custom board based on an STM32 microcontroller, and I’ve developed my GUI using TouchGFX on the STM32F746G Discovery board. Now I want to migrate the same project to my custom hardware. The custom board uses the same MCU (STM32F746) and all the peripheral pins (LTDC, FMC, UART, etc.) are mapped identically to those on the Discovery board. The only difference is that it’s a custom PCB and not the original development board. My questions are: Can I directly use the code generated by TouchGFX (and STM32CubeMX/CubeIDE) from the Discovery board project on the custom board? Are there any specific changes I need to make for hardware initialization or BSP configurations? Has anyone done this kind of migration successfully with minimal modifications? Any tips or guidance from those who have gone through this process would be much appreciated! Thanks in advance.
why don't have GCC file when the stm32cube MX create project of touchGFX, butST official project have this ?
Hi all,I'm working on an STM32F429 project and trying to read quadrature signals from an RS422 encoder (SIKO MSK5000). I'm connecting the encoder to TIM2 pins (PA0/PA1) in encoder mode (using timer input capture), but I can't get any signal detected by the timer. The RS422 output is connected through a differential-to-TTL converter (based on MAX485), and I'm using the STM32's built-in encoder interface. However, the counter stays at zero, and I see no changes at all. MCU: STM32F429 Encoder: SIKO MSK5000 (RS422 differential A/B output) Interface: TIM2 in encoder mode (PA0 = CH1, PA1 = CH2) RS422 to TTL Converter: 2x QYB-998 modules (each handling one channel) MSK5000 A+ / A− → QYB-998 #1 → output → STM32 PA0 (CH1) MSK5000 B+ / B− → QYB-998 #2 → output → STM32 PA1 (CH2) Both converters powered by 5V (shared with STM32) All GNDs connected properly TIM2 initialized in encoder mode (count on both edges) Any advice, especially from those who’ve worked with encoder mode +
Dear ST and Community,We are using STM32L series in a variety of LoRaWAN IoT Devices.We have 10 products and have produced roughly 0.5M units so far.We use the I-CUBE-LRWAN project for a long time. It's a great project, but it looks like the development has stopped. The LoRa Alliance continues improving the LoRaWAN protocol, but it seems like the ST-ICUBE-LRWAN is somewhat stuck in the past. A few examples include lack of FUOTA, Device-to-device communication and more.I know the project is based on another project called LoRaMAC, which I believe is also discontinued.The new open-source implementation of the stack is available by Semtech, it is called LoRa Basics Modem and is to be found here: https://github.com/lora-net/SWL2001/tree/v4.3.0I wonder if ST is planning to continue improving the ST-ICUBE-LRWAN or we should plan migration to the Semtech implementation? Obviously, it'll be better if experienced engineers from ST port the Semtech stack implementation to STM32L, but I don'
Hi, I am using an STM32H7RS3x device with external QSPI flash connected to XSPI2 interface with address = 0x7000_0000.I have noticed that the base address of from the hexfile I have to flash into external XSPI (of course using external loader) is not 0x7000_0000 but 0x2407_1c00, which is, curiously, the address of the NONCACHEABLE RAM. What decides the the base address of the hex file? What comes into play on this decision? To add some information, this is the linker script I am using for the XSPI2 (stm32h7rsxx_ROMxspi2.ld : /* ****************************************************************************** ** ** @file : LinkerScript.ld ** ** @author : STM32CubeIDE ** ** Abstract : Linker script for STM32H7Rxx8 Device ** 64Kbytes FLASH ** 456Kbytes RAM ** ** Set heap size, stack size and stack location according ** to application requirements. ** ** Set memory bank area and size if external memory is used ** ** Target : STMicroelectronics STM32 ** ** Distribution
Hi All,we are evaluating the possibilty to use a BiSS-C encoder in our project. First time using BiSS-C.From the BiSS-C standard it seems to me that BiSS-C can be implemented at STM32 level by mean of an SPI peripheral connected to an Rs422 transceiver.Things that is bugging me is that BiSS-C frame seems to not be aligned to 8-bit boundary (e.g. to transfer 26-bits exactly 26 clock pulses have to be yielded) so SPI cannot be fit for this application.Does anyone already implemented BiSS-C interface with STM32? How to?Thanks in advance for your support,Bucky
Hi,using the graph object is it possible to change the color of the line during creation?Example: I have a line that starts from time 0 and arrives at time 10. From 0 to 5 the color of the line must be red, from 5 to 10 the color of the line must be yellow.Thanks
Hello ST Team,We are designing system based out STM32 controller. The system need to be certified for Functional safety ASIL B or above or IEC 61508.Looking forward to get the FAE contact for Chennai location.
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.