Join discussions in the Product Forums. Ask questions, learn from your peers, and share insights on ST solutions to accelerate your design journey.
Most recent activity
When connecting via USB to a STM32 board in DFU mode, it is possible to read a serial number from the instance path.However, in runtime, the serial number exposed via USB must be programed by the user... It would be nice then if ST provided the algorithm they used to create this string.We do have some hints though. When generating a STCube project, by default a `Get_SerialNum` function is generated in usbd_desc.c.However, it does not produce the same string as the bootloader does. Can anyone please tell us what is the algorithm stored in ROM of each type STM32 to generate the USB serial number string based on the 96-bit UID?On STM32F76/STM32F77, I have found that this function outputs a string that matches the one produced in ROM:`static void Get_SerialNum(void){ uint32_t deviceserial0, deviceserial1, deviceserial2; deviceserial0 = *(uint32_t *)DEVICE_ID1; deviceserial1 = *(uint32_t *)DEVICE_ID2; deviceserial2 = *(uint32_t *)DEVI
Hello ST Team,I am hardware design engineer at Grundfos. In our current design we plan to use ST7540 part from power line communication. We would like to know the end of life for this part ST7540.Below are the details for your information:Project name: Power line communication moduleApplication: Pump communicationAnnual volume: 10KYear of production : 2026 Q4Thank you,Regards,Ravi Kumar SutraiSenior Hardware Engineer
Being fairly new to the STM32 architecture I find the following statement in the STM32F103 reference manual really confusing ... "..., this means that only one request must be enabled at a time." (the same also applies to the DMA2 controller). I think this statement should read as follows.... "..., this means that only one request can be serviced at a time." From my understanding (correct me if I am wrong) each DMA channel has its own interrupt vector (and their own addr\counter registers) , so even if every channel on DMA1 was enabled & signaled a request simultaneously the processor would be able to service each request deterministically based on the built-in channel priority order.
have a STM32F429I-DISCO board, start to a new touchgfx project from cubeide,run part file to completed touchgfx setup, cubeide compile project OK, debugging -> white screen! want to konw how to setup LTDC(double buffer -> by address, by allocate single buffer ->by address, by allocate)
I'm using the latest of STM32CubeIDE. to program my STM32H750VBT6 created by WeACT. I've created very simple program that consist of I2C from DS3231 RTC and simple counting with the code below HAL_GPIO_TogglePin(GPIOE, GPIO_PIN_3);statusrtc = HAL_I2C_Mem_Read(&hi2c2, DS3231_ADDRESS, 0x00, 1, get_time, 7, 1000);HAL_Delay(500);count1 = count1+3;HAL_Delay(100); The problem is, the count1 is not counting, but the count goes to statusrtc. I realize the statusrtc give the HAL status (like HAL_BUSY, HAL_TIMEOUT) after the counting is done (>256 because count1 is uint8_t). What actually going on with my device? Or it is the bug of STM32H7 in CubeIDE?
Hi, I am using Touch GFX 4.26.0 and the EWARM9 compiler.It was announced that libcpp support was available from 4.25.0 onwards.I have confirmed that IAR9.x\touch_core_libcpp.a for cortex-m7 is supported. (STM32H7)However, I cannot build touch_core_libcpp.a for other cores, such as cortex-m33(STM32U5).As a temporary measure, I am using cortex-m7\IAR9.x\touch_core_libcpp.a for cortex-m33.Could there be a mistake in the compile switch when generating the library?I had the same issue with 4.25.0, and was hoping it would be fixed in 4.26.0, but it wasn't.エラー[Li009]: runtime model conflict: Module Font.o(touchgfx_core_libcpp.a) specifies that '__CPP_Library' must be 'DLib', but module AnalogInThread.o has the value 'libc++'
Hello All, I am working on the touchgfx project and have an application where I have created some screens and performing the different operations while button pressed.I am writing and reading the data content to external EEPROM, eg, some 10-15 parameters while button is pressed and reading it while other button is pressed. Before adding the Eeprom operation My Screens and operations were working fine and fluently, but after adding the code for writing the parameters to eeprom, the screens started to flicker between screens and the GUI is getting distorted. This is not normal behavior, Can any one suggest how shall I take care of it or what would be the best way to perform external Eeprom read write operations, without interrupting the GUI ? Regards,Shi
Hardware: STM32H743, SPI2, DMA, TFT: 320×320, RGB565, DMA transfer, MX correctly configured SPI2 interface, CRC, MPU, DMA, touchGFX component...When creating a new project in Designer, how do I select a template? Or guide me step-by-step to correctly start a HELLO interface. *This post has been translated from Chinese to comply with the ST Community guidelines.
Hi,I am trying to get USBPD running. I need a simple example code without RTOS. So I used CubeMX. As far as I see it should be easy. All I need to do is:- Turn on the UCPD1 under Connectivity. Here I set "Source". - Turn on the UCPD1 Interrupt- Turn on USART1 - Set the DMA settings of UCPD1 and USART1 (here I have used the settings of the working CubeH5 project)- Turn on USBPD under middlewares- Enable TRACER under utilities- Enable TRACER in USBPD under middlewares- Enable GUI_INTERFACE under utilities This config should work, but it is not working. There is no event handling.Now I need help. The ioc file is included. RegardsRoman
I am migrating my project in CubeMX(6.15) from "FW_H7 V1.11.1" to "FW_H7 V1.12.1"I loose my QSPI configuration.It seems like a dependency to SPI2, but we are already using SPI in the old project. Please see the pictures from before and after upgrade. Also my project file file from before and after.
Post edited by ST moderator to be inline with the community rules for the code sharing. In next time please use </> button to paste your code. Please read this post: How to insert source code. HI ALL: In my project, I use AWD1 to monitor ADC3_CHN1, then set the high and low threshold, it works very well. However, when I switch to AWD2 and AWD3, there is no interrupt triggered, the setting codes are below: The configuration for AWD1: AnalogWDGConfig.WatchdogNumber = ADC_ANALOGWATCHDOG_1; AnalogWDGConfig.WatchdogMode = ADC_ANALOGWATCHDOG_SINGLE_REG; AnalogWDGConfig.Channel = ADC_CHANNEL_1; // output1 current AnalogWDGConfig.HighThreshold = 800; AnalogWDGConfig.LowThreshold = 500; / AnalogWDGConfig.ITMode = DISABLE; HAL_ADC_Stop(&hadc3); if (HAL_ADC_AnalogWDGConfig(&hadc3, &AnalogWDGConfig) != HAL_OK) { Error_Handler(); } HAL_ADC_Start(&hadc3); LL_ADC_ClearFlag_AWD1(hadc3.Instance); LL_ADC_EnableIT_AWD1(hadc3.
hello , i am using lsmds0 sensor with nxp board below is the section of my code int main(void) { /* Write your code here */ Clock_Ip_StatusType clockStatus; clockStatus = Clock_Ip_Init(&Clock_Ip_aClockConfig[0]); Siul2_Port_Ip_Init(NUM_OF_CONFIGURED_PINS0, g_pin_mux_InitConfigArr0); Siul2_Dio_Ip_WritePin(MEMS_CS_DRIVE_ENABLE_PORT ,MEMS_CS_DRIVE_ENABLE_PIN,1); i2c_int(); //i2c_scan_bus(); i2c_bustest(); // I2C_ManualBusRecovery(); dev_ctx.write_reg = accelero_write;//assigning read and write pointers to ST driver context dev_ctx.read_reg = accelero_read; dev_ctx.handle = NULL; uint8_t who_am_i = 0; uint8_t ctrl1; int16_t raw_accel_data[3];// variable to store raw 16 bit accelerometer value volatile float acceleration_mg[3];// converted acceleration in milli-g lsm6dso_status_reg_t reg_status; // structure store the register flags lsm6dso_device_id_get(&dev_ctx, &who_am_i); lsm6dso_reset_set(&dev_ctx, PROPERTY_ENABLE);// starting resetting process uint8_t rst; uint
Hello everyone I am new to the STM boards I had received my board today I had tried the basic LED toggle code and it is working fine but can someone please guide me to see the debug message on the code like I can see the printf statements how can I see those debug messages can someone please help me.
Hi all, I’m working with the STM32MP135DF board and trying to use a fully custom stack including Machine/Device Tree, Kernel, U-Boot, TF-A, and OP-TEE. Here’s my setup: Poky / Yocto version: kirkstone-4.0.27 CubeMX version: openstlinux-6.6-yocto-scarthgap-mpu-v25.06.11 Added CubeMX generated files under: meta-st/meta-st-stm32-Addons/mx/ └── stm32mp135df-comtrol ├── kernel │ ├── Makefile │ └── stm32mp135f-stm32mp135df-comtrol-mx.dts ├── optee-os │ ├── conf.mk │ └── stm32mp135f-stm32mp135df-comtrol-mx.dts ├── tf-a │ ├── stm32mp135f-stm32mp135df-comtrol-mx.dts │ ├── stm32mp135f-stm32mp135df-comtrol-mx-fw-config.dts │ └── stm32mp13-mx.dtsi └── u-boot ├── Makefile ├── stm32mp135f-stm32mp135df-comtrol-mx.dts └── stm32mp135f-stm32mp135df-comtrol-mx-u-boot.dtsi Generated custom machine by copying stm32mp13-disco-mx.conf.sample. Successfully built the image. Problem: When I try to flash using the STM32 flashing tool Using Usb, it gets stuck after
Hello ST Community,I have two NUCLEO-H753ZI boards and I want to use Board 1's on-board ST-Linkto program Board 2's MCU through the CN5 (MIPI-10) connector.My Setup:- Board 1 (Programmer): Connected to PC via USB, will provide ST-Link- Board 2 (Target): Connected via 10-pin ribbon cable to Board 1's CN5- Both boards are NUCLEO-H753ZI (MB1549 or MB1940)My Questions:1. Which jumpers need to be removed on Board 2 to disconnect its on-boardST-Link from the target MCU?- I see several connectors with jumpers in the ST-Link section (CN2, JP4, JP5, etc.)- Which specific jumpers control the SWD connection (SWDIO/SWCLK)?2. Should jumpers remain installed on Board 1 (the programmer board)?3. What is the correct CN5 pinout for the MIPI-10 connector on NUCLEO-H753ZI?- I want to verify my ribbon cable connections are correct4. For power, should I:- Power Board 2 through CN5 Pin 3 (VCC) from Board 1?- Or use separate USB power for Board 2?5. In STM32CubeIDE, I'm getting "Multiple ST-LINKs detected" e
Hi all,I'm training a ST_yolox model to detect car. In my user_config.yaml i tried to use this : pretrained_weights: coco When i launch the training script i got this errorraise ValueError("\nUnknown or unsupported attribute. Received `{}`{}".format(attr, message))ValueError:Unknown or unsupported attribute. Received `pretrained_weights`Please check the 'training.model' section of your configuration file.But if i understand correctly we can use this variablehttps://github.com/STMicroelectronics/stm32ai-modelzoo-services/blob/main/object_detection/docs/README_TRAINING.md#2-7If someone can give me some explanation
Hello,Is there is any board delivered by STM32 with WiFi capabilities?BR
In STM32CubeIDE for Visual Studio Code, it is recommended to add a feature that, when the mouse hovers over a hexadecimal value, the corresponding decimal value can be displayed.
Greetings,There is a post explaining how the aci_gatt_write_char_desc() function should be used to enable notification events for a characteristic that may be notified by the server/peripheral. The opcode, defined asrq.ogf = 0x3f;rq.ocf = 0x121;is the 16 bit opcode 0xFD21. The September 2025 release of AN5270 (revision 32) omits this command.Can we get an update to the AN5270 with an explanation of this command?Cheers
Hello,I'm using STM32H75x and NOR flash e.g. IS29GL064. I get the NOR demo running but I'd like to do modifications in order to get rid of all the polling stuff.According to the demo, the FMC is configured like this hnor1.Init.NSBank = FMC_NORSRAM_BANK3; hnor1.Init.DataAddressMux = FMC_DATA_ADDRESS_MUX_DISABLE; hnor1.Init.MemoryType = FMC_MEMORY_TYPE_NOR; hnor1.Init.MemoryDataWidth = FMC_NORSRAM_MEM_BUS_WIDTH_16; hnor1.Init.BurstAccessMode = FMC_BURST_ACCESS_MODE_DISABLE; hnor1.Init.WaitSignalPolarity = FMC_WAIT_SIGNAL_POLARITY_LOW; hnor1.Init.WaitSignalActive = FMC_WAIT_TIMING_BEFORE_WS; hnor1.Init.WriteOperation = FMC_WRITE_OPERATION_ENABLE; hnor1.Init.WaitSignal = FMC_WAIT_SIGNAL_ENABLE; hnor1.Init.ExtendedMode = FMC_EXTENDED_MODE_DISABLE; hnor1.Init.AsynchronousWait = FMC_ASYNCHRONOUS_WAIT_ENABLE; hnor1.Init.WriteBurst = FMC_WRITE_BURST_DISABLE; hnor1.Init.ContinuousClock = FMC_CONTINUOUS_CLOCK_SYNC_ASYNC; hnor1.Init.WriteFifo = FMC_WRITE_FIFO_ENABLE; hnor1.Init.
some time when I try to import an existing project in file system into workspace every thing looks to work properly it find the project show the project name in the list but when I clic finish it never show in workspace here my information using 1.19 release of cube ide on a windows 11 host
Hello everyone,I'm currently working on a custom board with an STM32H735AGI6, and I'm trying to create the external loader for the MX25LM51245g NOR flash on it. I use the OCTOSPI1 for the communication. I first created a basic project using STM32CubeIDE in version 1.18.1 to validate the OCTOSPI communication and hardware of my board. And I'm able read/write the register of the external flash, as well as erasing block or full chip, and writing data into it.Then I tried to create the external loader fallowing this tutorial : https://controllerstech.com/w25q-flash-series-part-10-qspi-ext-loader-in-h750/ adapting it to my needs.My problem is that when I test my external loader, through the STM32CubeIDE or the STM32CubeProgrammer, by erasing the first block and writing into it, the erase goes well, but I next get the error log 'failed to download sector[0].I debug my external loader project directly from the RAM (0x24000004) address using STM32CubeIDE, and I'm able to erase a
I have a question regarding the absolute maximum ratings of the ASM330LHH.In the datasheet, the Vin rating lists “(including CS, SCL/SPC, SDA/SDI/SDO, SDO/SA0)”.Does this voltage range also include any overshoot and undershoot on these pins?Additionally, if overshoot or undershoot exceeds the absolute maximum ratings,what potential issues could occur (e.g., malfunction, degradation, or damage to internal circuitry)?
Hi, I’m developing a voice-control system on ST’s STEVAL-STWINBX1 evaluation board. I’d like to build on the original “Dual-mode application with STM32Cube.AI and NanoEdge™ AI” by replacing the anomaly-detection function with a binary classifier based on IMP23ABSU microphone data (“xiaobei” vs. “other”). I also plan to replace the original USC model with a 10-class classification model trained on IMP23ABSU microphone data. The intended behavior is: when the MCU recognizes “xiaobei,” it should wake the USC model; otherwise, it should not.My NanoEdge™ AI binary model is already running—when I execute start neai_class, I can see the classification output. However, after “xiaobei” is detected, the USC model fails to wake up and the firmware even falls into HardFault_Handler in some cases. I’m not sure what’s going wrong. Could you please share suggestions? For example, after modifying the USC model parameters, which source files need to be updated so the new model is compatible with t
How can I use VS Code to download only the firmware? I can do it using debug mode, but I don't want to trigger debug. Is it possible to run it automatically after downloading, like CubePRG? I'm not very familiar with CMake. Thank you.-----------------------------------------------------------------Erasing internal memory sectors [0 6]Download in Progress:2File download completeTime elapsed during download operation: 00:00:06.418-------------------------------------------------------------------Just take out this part separately
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.