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
Need help? Is it possible to disable RDP2 and return to AA mode when I did not set a password before setting up RDP2? Is there a default STM password? Thanks
Hello, I have a Nucleo-H723ZG that I am trying to setup a Continuous running ADC that fills a buffer VIA DMA. I have read tutorials, watched videos, looked at the data sheets and still can't get it working.Tools: CubeMX to generate code VScode to compile and debug code Hardware: NUCLEO-H723ZGGoal: I am trying to have the ADC Continuously trigger and fill the DMA buffer overwriting the old values. I'm not attempting to trigger from a timer or any external means. I just want to start the ADC and it be free running. Then I'll handle the data in the buffer else where. Currently: I can't get anything to happen. The ADC works fine if I set it up for polling and I get correct ADC values. If I set it up for DMA continuous the buffer never gets any values and the ISR HAL_ADC_ConvCpltCallback() never fires. (I used a debug break point inside the isr) Update: I found that if I check the ADC_HandleTypeDef hadc1 while de
I am developing a project based on the STM32WL5MOC, using the B-WL5M-SUBG1 board as my reference platform.My development environment uses STM32CubeMX and STM32CubeIDE (both version 2.x). I am having difficulty determining which documentation and examples are current and compatible with the STM32CubeWL v1.4 library.My objective is to build a LoRaWAN end-node product using the STM32CubeWL v1.4 stack. However, I am encountering several issues:• CubeMX appears to lock or restrict LoRaWAN region selection, preventing reliable configuration changes (specifically US915 for Canada)• CubeMX hides or auto-generates LoRaWAN configuration files, making it unclear where parameters should be edited• The stack structure and project organization generated by CubeMX differ from what is described in the available documentation• As a result, I have been unable to produce a stable standalone CubeIDE project with fully editable LoRaWAN configurationGiven these inconsistencies, I would appreciate clarificat
Searching through the forum it seems like there are tens of posts regarding this topic. I read many of them, but I struggle to find a solution that applies to me.First of, I use an STM32H743VIT.My goal: Use ADC1 and ADC2, one channel each. The two ADCs should be tied together. The whole conversion should be triggered by TIM4 update event and the data should be moved via DMA.What works: If I just use TIM4 and two DMA streams that move the data for each ADC individually, it works. As soon as I try to use the dual mode, it does nothing.When I'm in dual mode I have confirmed that the timer is still running. TIM4->CNT is changing. I've spent almost two hours with the debugger in the SFR and checked the registers. I'm not sure if I'm close to the issue, but there is something that seems suspicious based on the research I did: DMA1->S0NDTR->NDT does not change, indicating that the DMA stream does nothing. However ADC1->CR->ADSTART is at 0x1, indicating that it tries to do somet
Hello,I implemented the How to use SNTP over LwIP and RTC with an STM32 - STMicroelectronics Community example (not using FreeTOS) in the suggested STM32H723ZG NUCLEO-144 board. The app runs, but when it tries to allocate memory for DHCP with the mem_memalloc() function in dhcp:start (dhc.c lib file) it always returns null pointer. I t can't allocate memory for DHCP structure, the dhcp pointer is always 0 and dhcp_start() always returns with ERR_MEM error.dhcp_start(struct netif *netif) { struct dhcp *dhcp; ... /* no DHCP client attached yet? */ if (dhcp == NULL) { dhcp = (struct dhcp *)mem_malloc(sizeof(struct dhcp)); if (dhcp == NULL) { return ERR_MEM; } ... }In STM32H723ZGTX_FLASH.ld I have:MEMORY { ITCMRAM (xrw) : ORIGIN = 0x00000000, LENGTH = 64K DTCMRAM (xrw) : ORIGIN = 0x20000000, LENGTH = 128K FLASH (rx) : ORIGIN = 0x08000000, LENGTH = 1024K RAM_D1 (xrw) : ORIGIN = 0x24000000, LENGTH = 320K RAM_D2 (xrw) : ORIG
I have a STM32MP257F custom board with a MT53E1G32D2FW-046 WT:C (4GB) memory.But when I'm booting the TF-A, then I get this message. Notice that this processor passes the DDR data(stm32mp_ddr_test_data_bus(void)) and DDR rw(stm32mp_ddr_test_rw_access(void)) test! So I don't think that the assembly was bad.ERROR: DDR addr bus test: can't access memory @ 0x100000000 BACKTRACE: START: stm32mp2_ddr_setupThis means that my CPU cannot access the address 0x100000000. This limit is exactly 4GB.If we looking at the code. That means that the offset variable must be 0x80000000, which is 2GB. The function stm32mp_ddr_test_addr_bus(size_t size) is beging called with size = 4294967296 = 4GB.uintptr_t stm32mp_ddr_test_addr_bus(size_t size) { size_t addressmask = size - 1U; size_t offset; size_t testoffset = 0U; /* Write the default pattern at each of the power-of-two offsets. */ for (offset = sizeof(u_register_t); (offset & addressmask) != 0
Hello AllI'm working in STMCubeIDE 2.0.0 Windows.I have downloaded STM32Cube_FW_F4_V1.28.0 package and saved it here: C:\Users\marin\STM32Cube\Repository\STM32Cube_FW_F4_V1.28.0I want to use an example and build a project from the example.This LCD example: C:\Users\marin\STM32Cube\Repository\STM32Cube_FW_F4_V1.28.0\Projects\STM32F429I-Discovery\Applications\Display\LTDC_Paint.I don't want to change the original example code, I want to put the example into a new folder and do my changes there.I saw using "Copy to workspace" when importing is a mess and don't compile: No rule to make target 'C:/Middlewares/ST/STM32_USB_Host_Library/Core/Src/usbh_core.c' Do I have to copy the whole directory to a new location? C:\Users\marin\STM32Cube\Repository\STM32Cube_FW_F4_V1.28.0\Projects\STM32F429I-Discovery\Applications\Display\LTDC_Paint. Please show me a way to copy the example code (Only LTDC_Paint project) to a new location and successfully compile. Ma
As my project has morphed I have started from a STM32F103, moved up to a G431, then a F446.With a few #defines and tweaks I have a shared main app code base with identical project structures for each of the processor types (that makes it easy to switch between MCU boards as when whilst doing code tests).All theseSTM32CubeIDE projects have Runtime library = Reduced C, and "do not use default libraries" is ticked. All build fine.All used CubeMX to generate the appropriate sources etc.., all have 99.9% identical CubeIDE project structures.As a stepping stone to a STM32F723 I am bodging up a port to an STM32H723, but so far have been unsuccessful in getting it to link. It seems to be having a problem related to the c library area.(.text._getpid_r+0x0): undefined reference to `_getpid'/home/main/.eclipse/com.st.stm32cube.ide.mcu.rcp.product_2.0.0_1934254364_linux_gtk_x86_64/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.14.3.rel1.linux64_1.0.0.202510151430/tools/bin/../l
code running ok with 1 second delay in stm32f103c8t6 bluepill board. but, after power off when i do power on, delay is 0.56 second. I am using 72 MHz timer2 clock. #include "stm32f1xx.h" void TIM2_Init_ms(uint16_t delay_ms);void clock_setup(); int main(void){clock_setup(); TIM2_Init_ms(1000);while(1){}} void TIM2_IRQHandler(void) { if (TIM2->SR & TIM_SR_UIF) { TIM2->SR &= ~TIM_SR_UIF; // Clear update flag GPIOC->ODR ^= GPIO_ODR_ODR13; // set and reset Bit 13 of ODR //togglr bit and so LED } } void TIM2_Init_ms(uint16_t delay_ms){ RCC->APB1ENR |= RCC_APB1ENR_TIM2EN; TIM2->PSC = 7199; // 0.1 ms t
Hi We have a old PCBA design with a TDK IMU sensor. When I look at the footprint and pinout it seems like it actually drop-in-replaceable and we should need no new PCBA design, only change the BOM list and replace the TDK sensor with LSM6DSV320XBut the LSM6DSV320X datasheet says that pin 10 and pin 11:Leave pin electrically unconnected and soldered to PCB.But in our design thay are connected to GND signal ground.What would happen if we replace it, will the LSM6DSV320X not work if the pins 10 and 11 are grounded? krrØystein
CubeProgrammer doesn't work with OpenJFX 11, but OpenJFX 8 cannot handle HiDPI screen, which makes Cube Programmer almost illegible.Since you were able to release several new versions in the past months, could you please also update to Java 11, or fix the HiDPI issues yourself?
Isn't TrustZone something which started to be only since Cortex-M33?JW
Hi everyone, I'm designing a board with an STM32H7[STM32H757XI] and two MT48LC16M8A2P SDRAM chips to get 16MB (16-bit wide). I'd appreciate a schematic review before PCB fabrication. Hardware:- MCU: STM32H757XI- SDRAM: 2x Micron MT48LC16M8A2P (4Mx8, 4 banks)- Target speed: 100-110MHz Key Connections:- Data: Chip1 DQ[0:7] → FMC_D[0:7], Chip2 DQ[0:7] → FMC_D[8:15]- Address: A[0:11] from FMC to both chips in parallel- Control: CAS/RAS/WE/CKE/CS shared, separate DQM signals [DQM0 & DQM1]- Chip select: Both using same FMC_SDNE0 Specific concerns:1. Have I connected the DQM pins correctly for byte access?2. Is my clock termination appropriate or do i need a separate termination resistors for each SDRAM?3. Do I need to add series resistors on any lines? Schematic image attached. Thanks in advance for any feedback!
Where to start...I have mave made a bootloader (done this before), which is placed in the low end of the flash memory. The application is in the subsequent flash.My board has a USB port and a DIP switch for forcing the BOOT input pin high. When I flip the DIP switch on, and power the board, I can connect STM32CubeProgrammer to the internal DFU bootloader via the USB port. I can also upload my application through the USB port. But when I try to upload my own bootloader, it fails. This is the output from STM32CubeProgrammer:However, if I connect an ST-LINK programmer to the board, I can upload the very same file with no issues. Output from STM32CubeProgrammer:Clearly, something starts to go wrong at "Not flash Memory: No erase done"Just now, I upgraded STM32CubeProgrammer to the latest version (2.21.0), but this made no difference.But why does it work with the ST-LINK programmer, and not through the USB port? And why can I upload the application through the USB port, but not the bootload
I am new to ThreadX. I have had experience with FreeRTOS generated with CubeMX.However, I have been starting over repeatedly with CubeMX. Just trying to create a base project with Nucleo-F767Zi.I need to find some documentation for starting this process. I am missing something.Thanks,Greg
I am working on STM32MP157F-EV1 and would like your assistance in enabling SPI-NAND support within the OpenSTLinux (Yocto) environment.Overview:Development Board: STM32MP157F-EV1Storage Target: SPI-NAND (Serial NAND)Flash Part Number: GD5F4GM8UEYJGR (GigaDevice, 4 Gbit)Operating System: OpenSTLinux / Yocto-based BSPBoot Objective: Generate a complete bootable image for SPI-NAND (TF-A, U-Boot, Kernel, and RootFS)Currently, the official OpenSTLinux images support eMMC, SD card, NOR, and parallel NAND. However, our design requires SPI-NAND as the primary non-volatile memory. We would like to build and flash the image to SPI-NAND and eventually boot directly from it.Support Requested:Image Generation:How to configure Yocto (OpenSTLinux) to build an image for SPI-NAND on STM32MP157F-EV1?
I've been trying for days to find a MIPI CSI-2 thermal camera for use with the STM32N6570-dk.I even looked in the STM store.I even found a company that seems to have one, but their communication system doesn't accept any of my emails.Does anyone have any suggestions to help me?Thank you.
Hi,I haven’t used SWO functionality before, but I now need it to stream real-time data.I’m using VS Code with the STM32CubeIDE extension, but I haven’t found any options to configure and display real-time data (via SWO) in a VS Code window. How can this be done?If this isn’t possible in VS Code, what alternatives would you recommend? Ideally, I’d like to output both text messages and real-time numeric data, with the data automatically plotted on a chart. What is the best way to achieve this?Thank you
This does not happen in CubeIDE 1.15.1 and the solution suggested in this post does not work either.How can I fix this issue?Thanks in advance,Gaston
ST moderator: Edited the tile to add "ADC" I want to extract data at high sampling frequency ~10KHz at STM32N6570-DK, Is it possible with USART for three channels or we have any other mode for this purpose. I want to continuously stream data at 10KHz sampling frequency.
STM32N6570-DK Custom AI Model Flashing Error Background / Official Requirements According to the official documentation for flashing the AI model onto the DK, three key .HEX files are required: ai_fsbl.hex STM32N6570-DK_network_data.hex STM32N6570-DK_GettingStarted_ObjectDetection.hex Steps I Have Taken to Integrate My Custom Model Model Conversion: I successfully imported my custom model(st_yolo_x_nano_480_1.0_0.25_3_st_int8.tflite-STM32N6570-DK-code) into the ST Edge AI Developer Cloud. After quantization, I obtained a folder containing the three necessary files for the network data: network.c, network_ecblobs.h, and network_atonbuf.xSPI2.raw. Following the official guide, I used PowerShell to convert these three files into the single STM32N6570-DK_network_data.hex file. This file was designated to be flashed at the correct memory address: 0x70380000 Application Code Modification: I modified the application configuration file: Inc/app_config
Using STM32TRUSTEE-SM framework, the non-secure application is built by the project.py script which in turn callsSTM32TrustedPackageCreator_CLI.exe -pb SM_Code_Image_bin.xmlto generate the application .bin file in MCUboot format.The xml file has <Param> <Name>Security Counter</Name> <Value>auto</Value> <Type>Data</Type> <Command>-s</Command> <Hidden>1</Hidden> <Default>auto</Default> </Param>It is my understanding that with this setting, an incrementing counter should be placed in the image header's ih_ver.iv_build_num field. But this field stays 0 no matter what I put under <Value>, auto or direct number.There is a command "-s" which according to the documentation would be passed on to the imgtool executable, which, however, is described as thisand therefore would have nothing to do with any counter.Could anybody shed some light on it, please? I am using the latest version 2.20.
Hello ST Community,I am working on K-Line communication using an STM32H723ZGT6 controller (EVK board) with a TJA1021T/10/C/118 LIN transceiver. The goal is to communicate with an ECU using ISO-14230 K-line fast initialization.The hardware path appears to be working correctly. We verified using an oscilloscope that:1.TXD from STM32H723ZGT6 is switching correctly2.LIN bus shows dominant pulses during fast-init and UART transmission3.RXD reflects the LIN signal4.SLP_N LOW-to-HIGH transition is implemented after power-upNXP support confirmed that the TJA1021T transceiver operation looks correct based on the waveform captures.However, the ECU does not respond — only the transmitted request echo is observed.Important observations:1.The same STM32H723ZGT6 controller, ECU, and firmware work correctly when using a dedicated K-Line transceiver IC.2.The UART configuration is 10400 baud, 8N1, and the same firmware and fast-init implementation are used.3.The fast-init sequence used is 300 ms
Hi, I am struggling with TIM2 to restart its CNT from zero without using hal. I am using nucleo-f446 TIM2 clock frequency is 21MHz (no prescaler, 1/4clock division) CNT set for upcounting. I want to use TIM2 to write a simple us_delay function, so I need to restart its CNT whenever us_delay is called. No matter what I do, I can't make it work, here is the code I am using: TMR2_Start = 1; //start counter TMR2_URS = 1; //Only counter overflow/underflow sets UIF bit TMR2_UDIS = 1; //disable update event generation TIM2->ARR = 2100; //set 100us delay (tim2 clock frequency = 21MHz) TMR2_UDIS = 0; //enable update event generation TMR2_UG = 0x1; //restart counter while (TMR2_UIF == 0){ //wait until TMR2_UIF is set } I put a breakpoint right before while loop is executed, I can see that CNT is enabled, URS set, delay value loaded to ARR. However CNT is not reset to zero, it has a random value, sometimes as high as 0x1A9C, plus the UIF and the Capture/Compare flags are all set for unkn
While installing the program for my windows 10 it hangs at step 8 which is shortcuts set ups. So I have been reaserching the internet and forums for a while still didn't manage to find a solution
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.