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 faced to a problem and i'm no more able using the FUS in order to update the BLE STACK: i get this error message: "FUS_STATE_ERR_UNKNOWN: Unknown error when i clicked on the START FUS button on the STM32CubeProgrammer tools (V2.13.0)we tried the action severals times and get same issue as shown in the attached screeshot. is it mean that the FUS was erased ? and in this cas how to flash a new one using JTAG ? Please give help to figure out this blocking issue.
Is it possible to DMA DCMI data to external SPI PSRAM (8MB)? I don't have enough pins to place SDRAM and wish to buffer Camera data.
Hello,I have STMCubeIDE version 1.17.0 on my computer.No issue to create a new project with Nucleo board STM32L073. However when trying to create a new project for Nucleo board STMWBA52CG, there is the following error message "Please login to download a software package. Go to Help__>STM32Cube updates --> Connection to my ST".This I did, and some updates were installed. However , even after restarting my computer, I still have the same failure message.Can anyone help me ?
osTimerId_t FreertosTimerHandle; const osTimerAttr_t FreertosTimer_attr = { .name = "FreertosTimer_LED" }; void RPS_print_console_Thread(void *argument) { /* Initialize watchdog Timer */ IWDG_Init(); StartLEDTimer(); while(1) { /* Refresh watchdog periodically */ IWDG_Refresh(); } } void StartLEDTimer(void) { FreertosTimerHandle = osTimerNew(Fire_LED_Toggle, osTimerOnce, NULL, &FreertosTimer_attr); if (FreertosTimerHandle != NULL) { if (osTimerStart(FreertosTimerHandle, 5000) == osOK) { printf("LED timer started\n"); } else { printf("Failed to start LED timer\n"); } } else { printf("Failed to create LED timer\n"); } } void Fire_LED_Toggle(void *argument) { printf("Timer callback fired!\n"); HAL_GPIO_WritePin(LED0_GPIO_Port, LED0_Pin, SET); HAL_GPIO_WritePin(LED1_GPIO_Port, LED1_Pin, SET); HAL_GPIO_WritePin(LED2_GPIO_Port, LED2_Pin, SET); HAL_GPIO_WritePin(LED3_GPIO_Port, LED3_Pin, SET); }
Hello,I wrote a Boot program in flash to initialize sdram and copy the app program to run in sdram. The current state is able to jump and run normally, but the length of jump time seems to be positively correlated with the size of global variables in my app. For example, if I define a 1MB size array in the app and use it, the jump time will be significantly longer for several seconds,May I ask why this is, is there any way to solve this problem? Thanks!
Friends, which algorithm do you use to control the LEDs in this structure? I need your ideas. I have prepared a table of the LEDs' turn on order.
Hello,I am generating firmware using MCSDK 6.4.0 and testing my motor with Motor Pilot. I am using FOC with encoder feedback.Under no-load conditions, the velocity control loop works perfectly with the default PI gains, the motor tracks speed very accurately. However, the motor produces no holding torque and can be stalled easily with just my fingers at all speeds.I assumed this was due to a poorly tuned current loop, so I began increasing the proportional gain of the torque (Iq) PI controller in Motor Pilot while running in torque mode. During testing, I monitored the I_Q_MEAS and I_Q_REF registers while gradually increasing the torque current.There is quite a bit of noise in the I_Q_MEAS signal, but it is still clear that it never steps anywhere near I_Q_REF. Increasing the torque gain has no noticeable effect, the motor still pulls only a small amount of current, and the holding torque remains nonexistent.I have been searching for any hidden current limit or clamp that could explain
I'm using the BLDC motor dev kit (F302R8 + IHM07M1 + BR2804 motor). When I run the Motor Pilot with the SimpleAppMCPV2 to tell the motor to go to a commanded speed, I keep getting a speed feedback fault. Similar thing happens with the MC_FOC UI. The motor starts turning, and runs up to 0.6 amps, then the fault happens and the motor stops turning. I see the feedback speed is in the thousands of RPM instead of the 150RPM I commanded. I've read that the speed feedback fault might be due to needing to lower the cutoff frequency, so I lowered it from 6000 to 2000 rad/s. But I still get the speed feedback fault.I'm not sure if there's something wrong with my current feedback config or speed feedback config? This dev kit should be running in sensorless mode (no hall sensors for speed feedback), with FOC.Here's some of my settings. I'm still new to this, so I don't have a good hunch on what I should be showing. I'm guessing something is the
I'm using the Nucleo-F302R8 and the X-Nucleo-IHM07M1 with the small kit motor it comes with. I'm having trouble getting the motor profiler to connect to the board.The F302R8 seems to have the demo motion program running, since I can hit the blue button to start the motor turning. But if I want to run the profiler windows application and try to connect to the board, I get this error:"Port Open and try to configure the board"I've tried updating STLink, and it's on the latest (v2.j37.m26). I've updated my USB driver. I can connect to the board using ST-Link Utility. But the motor profiler can't connect.What might be preventing motor profiler from connecting?
Hello, Just a quick question as I need confirmation :Using a STM32H7 ADC in a differential input mode, does this circuit work ? The output of the op-amp is Vout = G * (Vin[+] - Vin[-]) + 1.65 .Then the ADC output should be between :[0 - INT16_MAX] when op-amp output is between 1.65V and 3.3V.[INT16_MIN - 0] when op-amp output is between GND and 1.65V.But from the datasheet it says that CMV (average between INP and INN) should be around Vref+/2. I'm not sure that's true here.So can you confirm this wont work and I should do single-ended and substract 1.65V from the result ?Regards, Adrien
I have a project running on my Stm32H7. I imported my ethernetif/lwip settings from the Stm32CubeH7 H723 lwip + freertos http server example, but made some small changes. For the most part in the most basic sense, the driver works and my board at least gets a DHCP lease and responds to ping, but I am getting an assert:"Assertion "pbuf_free: p->ref > 0" failed at line 753 in [......]/LwIP/src/core/pbuf.c"I've read so many topics on the state of Ethernet in the Stm32H7. Because of the ST community manager locking threads where fixes are discussed, I honestly don't know the current state of the drivers, except I can guess that this is an issue having to do with pbufs getting clobbered. I've seen the large zip file from https://community.st.com/t5/embedded-software-mcus/bug-fixes-stm32h7-ethernet/td-p/281420, but I don't know how out of date this is or how many of these issues have truly been fixed now. If the drivers in the CubeH7 drivers are working, what am I doing
Hello,Using the STM32CUBEPROGRAMMER v2.2.0 + the NUCLEO-N657X0-Q :I tried to set the OTP_124 -> HSLV_VDDIO3 bit to 1 but it did not suceed. First, I read the whole otp, put 1 in that field then press Write and it did not work, the OTP_124 stays at default 0x00000 . The nucleo-n6 is is dev mode (BOOT0 = 0, BOOT1 = 1). I would like to understand why it was not writing the new value of 1 and stayed at default value 0x0000 ?I checked the Lock checkbox and pressed Write again and now the OTP124 is greyed-out. Is there a way to revert this (now it says permanent write lock).Thank you.
Hi folks,I am trying to implement a dual bank OTA system on my STM32F429IGT6 using DBM1 and BFB2 in the STMCubeProgrammer, but I'm having trouble booting into the second flash region (which I will call app_b from now on, along with app_a for the first flash region). By my logic, each app will have 512KB of flash memory, so app_a will start at 0x08000000, and app_b will start at 0x08080000. Through some online digging, I saw that having one linker script per app is what I should be doing, with each app's flash being its address that I mentioned before, but then set the app_b vector table offset to 0x00080000, so theoretically app_b can start at 0x08080000 because that's the result from the OR operation of 0x08000000 and 0x00080000. So here is my normal testing routine: Build App_A, note version number --> generate a .bin file through a post build commandFlash App_A with start address 0x08000000 in the CubeProgrammerAppend Version Number to see changeBuild App_B --> generate .
Hi,I am using NCLEO-U385RG-Q running STM32u385. I created a project using the board selector. I configured I2C2 using STM32CubeIDE to run in fastmode at 400khz for PINs PA6/PB2 per schematics described in MB1841. My clock sources are all defaults (see attached) also my calculated timings (attached). I run the code and the timing doesn't match what I programmed. I am seeing an I2C clock at around 13.158 MHz. Can you please assist? Thank you
I have developed software on the Nucleo-L433RC-P development board which uses the STM32L433RCT6P MCU (the P defines it has 2 x VDD12 pins for an external SMPS).However, I have designed a PCB that uses the STM32L433RCT6 (no VDD12 pins) but want to continue developing the software on the development board until my PCB arrives.To retarget the MCU, I edited the .ioc file and changed STM32L433RCTxP to STM32L433RCTx.I flashed the software to the Nucleo-L433RC-P board, but I am getting strange and random issues.It seemed to work to start with, but after several further flashes it stopped working with the error shown below...I'm not sure but it seems to go to a reset handler in "startup_stm32l433rctxp.s"....The console shows the following error...STMicroelectronics ST-LINK GDB server. Version 7.11.0 Copyright (c) 2025, STMicroelectronics. All rights reserved. Starting server with the following options: Persistent Mode : Disabled Logging Level : 1 Listen Port N
Hello,I'm encountering an issue while testing the Standby Mode on my device.Most of the time, the device enters and wakes from Standby Mode successfully. However, after repeated testing, it occasionally fails to enter the mode.What could be the potential causes for this failure?Any suggestions on how to approach debugging this would be greatly appreciated.Thanks.
I am currently facing a critical issue with reading and programming two OBK sectors (current and alternate) from within firmware while using the iCache on the STM32H562. Despite my efforts to disable iCache access to the OBK address range using the MPU, similar to the procedure for the OTP and RO regions, I have not been successful. The use of iCache has resulted in the microcontroller stalling when attempting to read from the OBK address range.I understand that the Reference Manual does not specify the actual physical address range for the two OBK sectors, each of which is 8k in size. Instead, it indicates that both sectors share the same virtual address range, with a base of 0x0BFD0000 (non-secure) or 0x0FFD0000 (secure).Could you please provide the actual physical address range for the two OBK sectors? This information is necessary to adjust the MPU settings for disabling iCache access.
I have 4 screens in my application and I want to change screens from code. For instance, I have a dynamic list of item in a View and, depending on which element is currently selected, at the press of a button it should take to another screen.I generated the methods to change screen by setting Interactions from Designer FX that I know for sure they will not be triggered. So a simple `application().gotoMyScreenNoTransition()` in the same View should work.However, when writing the method inside the View to call from the Presenter, I see that the applications blocks on the function `makeTransition`. I don't even execute that methods that changes screens, simply writing the code to do that seems to block the whole process.This is where I get blocked:Remind that I don't even define the transitions by myself, so I should not edit the FrontendHeap, should I?
Hi,We are using STM32F091VCT6 in our application, however we are observing some instance of RTC losing time. We checked entire datasheet but were unable to figure out how much time the RTC takes to switch to VBAT after VDD falls below given threshold? Can you help us with the specification to rule out any issue related to timing here? In our case VBAT goes to a series diode and is than connected to the controller. Any more insight would be helpful
Hello,I'm working on an adapter USB to Ethernet and it is working only as a DEVICE. Now I would like to do the same but I want my STM to work as HOST.Is ST providing the same code stm32-mw-usb-device but for host?Thanks,G.
Hello.I'm having issues with STM32CubeMX and VScode setup. I have the STM32 VScode extension installed and all the extras that were required as per this page ( https://marketplace.visualstudio.com/items?itemName=bmd.stm32-for-vscode ). I generate a make file for the blue pill based on the STM32F103C8T6 IC. When I open the code in VScode I immediately see errors starting with (main.h: No such file or directory 20 | #include "main.h")There are other errors starting with unknown type name 'RCC_OscInitTypeDef' | RCC_OscInitTypeDef RCC_OscInitStruct = {0};'RCC_CLOCKTYPE_HCLK' undeclared (first use in this function) | RCC_ClkInitStruct.ClockType = RCC_CLOCKTYPE_HCLK|RCC_CLOCKTYPE_SYSCLKAny suggestions on how to set this up so these errors are permanently resolved?
Hi all,I'm working with the STM32F769I-DISCO board and using TouchGFX for GUI development. When I build and flash the project through STM32CubeIDE, everything works fine — the LCD displays as expected.However, when I flash the generated .hex file using STM32CubeProgrammer, the board resets and runs, but the LCD stays blank. I’ve verified that the program is running (e.g., with an LED), but no graphics appear.Here’s what I’ve already done:SDRAM is initialized via MX_FMC_Init(), and it calls BSP_SDRAM_Initialization_Sequence().LCD and DSI are initialized in MX_LTDC_Init() and MX_DSIHOST_DSI_Init().TouchGFX is initialized using MX_TouchGFX_Init().The framebuffer is mapped to SDRAM (0xC0000000).Boot config and option bytes are correct (BOOT from main flash).The .hex and .bin are both generated and tested — same issue.Backlight GPIO is set high manually.It seems like CubeIDE is doing something extra that CubeProgrammer does not — possibly initializing QSPI, DSI, or loading something into RA
Title edited to "STLINK-V3MODS"Hello ST,Do you perhaps have an STEP or IGS file of the STMV3MODS module ?Thank a lot.
I test app on U599. GUI task priority set little low as hw task. After flash all works ok, but after powering start gui glitch on SVG fade animation or other redraw.After swap priority GUI up all works ok. Why this after flash difference occurs?
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.