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
I am designing a board with the ST87M01. I am using two separate LDOs (TLV757 series) both connected in parallel to a 5V VBUS source.Rail A: 3.3V for GPIO/UART.Rail B: 2.5V for the Modem PMU.Since both LDOs start simultaneously, there may be a slight millisecond variation in when each rail reaches its target voltage.Questions:Does the ST87M01 have a strict requirement for the 2.5V PMU rail to be stable before 3.3V appears on the GPIO pins?Is there a risk of latch-up or back-powering if the 3.3V rail rises ~100µs faster than the 2.5V rail?Should I implement a hardware delay (e.g., RC delay or Power-Good signal) on the 3.3V LDO Enable pin to ensure it trails the 2.5V rail?PS. add ST87M01 label to choose in forum for topic creation. Greetings,Andreas
Hello, I'm trying to do a quick test with the STM32F412G-Discovery kit and the analogue microphone input.I use this example https://github.com/STMicroelectronics/STM32CubeF4/tree/master/Projects/STM32F412G-Discovery/Examples/BSPwith the menu #### AUDIO REC ANALOG ####.The problem is that the firmware crashes at the line BSP_AUDIO_IN_Record(internal_buffer, AUDIO_BLOCK_SIZE); void AudioRecAnalog_demo (void) { AudioRec_SetHint(); /* Initialize Audio Recorder */ if (BSP_AUDIO_IN_InitEx(INPUT_DEVICE_ANALOG_MIC, DEFAULT_AUDIO_IN_FREQ, DEFAULT_AUDIO_IN_BIT_RESOLUTION, DEFAULT_AUDIO_IN_CHANNEL_NBR) == AUDIO_OK) { BSP_LCD_SetBackColor(LCD_COLOR_WHITE); BSP_LCD_SetTextColor(LCD_COLOR_GREEN); BSP_LCD_DisplayStringAt(0, BSP_LCD_GetYSize() - 95, (uint8_t *)" AUDIO RECORD INIT OK ", CENTER_MODE); } else { BSP_LCD_SetBackColor(LCD_COLOR_WHITE); BSP_LCD_SetTextColor(LCD_COLOR_RED); BSP_LCD_DisplayStringAt(0, BSP_LCD_GetYSize() - 95, (uint8_t *)" AUDIO RECORD INIT FAIL", C
Hello, a while ago I ran into a problem with my system consuming to much power.After searching this forum, I came across this post: https://community.st.com/t5/stm32-mcus-wireless/using-stm32wb55-freertos-osthreadflagswait-can-return/td-p/767777 It describes how osThreadFlagsWait adjusts the timeout and explains that this can cause problems.In the thread i described my problem with this function (see below), but I was asked to post that question in a new thread.No problem, of course, so I did :) I discovered another annoying problem with osThreadFlagsWait.I was measuring the current consumption to check if it was sufficiently low in case the system goes into stop2.To my surprise, I discovered that it wasn't (draining 6mA instead of 30uA).After a long search, I discovered that the high-consuming task state wasn't "suspended", but "blocked"!A little later, I realized this would happen when I called osThreadFlagsWait.I assumed the timout value could be osWaitForever, so the task wo
I'm using a * STM32N6-DK * Brightsense VD56G3 I've made 2 camera drivers so far and the only difference i can see from the cameras is that my first camera module has MIPI short packets start and stop. I'm making this observation from the scope. So i know it's sending the data it's just receiving black messages. Question * Do you need short packets frame start and end for it to grab images. Other info * I'm using Zephyr, but i just want to make sure from the hardware i don't need short packets because i don't think VD56G3 can generate short packets.
Hello everybodyI'm working with USB PD sink on my own board with STM32G071KBT6 microcontroller ad development software: STM32CubeIDE 2.1.1 and STMCubeMX 6.17 (freeRTOS, without TCPP, with my own protection of VBUS and CC lines).I want to set sink to APDO 24 V (if the charger accept it) or otherwise 20 V PDO.Unfortunatelly if the charger, which I use, not accept APDO 24 V, it send hardreset and cut off the Vbus, so I can't use the flag to inform about the status (APDO or PDO).Is there any way to read the PDOs from the source and on based on this choose APDO or PDO?I have no structure DPM_Ports, and USBPD_DPM_GetDataInfo(PortNum, USBPD_CORE_DATATYPE_RCV_SRC_PDO, buffer, &size);returns size = 0;Best regards
Hi everyone,I’m using the B‑U585I‑IOT02A development board for an IoT project. The onboard STSAFE‑A110 secure element comes pre‑provisioned with a default key and certificate, but for my application I need to:Provision my own keypair and certificate, andOptionally add additional keys or certificates into unused STSAFE slots (for testing or multi‑cloud use).I couldn’t find a clear step‑by‑step guide for:Generating and injecting a custom keypairUploading a custom certificate chainAdding extra keys/certificates to new STSAFE slotsWhether CubeProgrammer or Secure Manager scripts support provisioning user keysIs there any official documentation, example project, or provisioning tool that explains how to do this on the B‑U585I‑IOT02A?Any guidance or links would be greatly appreciated.Thank you!
Hi,In GfxDesigner 4.26.1, I created a blank project for STM32U5G9J-DK2.I opened it in CubeMX 6.17 and tried to migrate FreeRTOS. However, when I changed CUBE-FREERTOS version from 1.0.1 to 1.5.0, the freeRTOS version did not change from 10.4.6 to 11.2.0.Why ? Is this expected behaviour ? Thanks for help. X-CUBE-FREERTOS-1.0.1 (FreeRTOS version 10.4.6)I migrate to newer versionX-CUBE-FREERTOS-1.5.0 (FreeRTOS version 11.2.0) But version did not change from 10.4.6 to 11.2.0
Dear STMicroelectronics Support Team, I am working with two ST-LINK/V2 debuggers and have observed a difference in the VTref (VAPP) signal location on the 20-pin connector. I would like to understand whether this is expected behavior. Details of the debuggers: 1. ST-LINK/V2 marked: B2025 162. ST-LINK/V2 marked: A2017 10 Used board to flash : BLUENRG-M2SP Used flasher tool : RF-Flasher utility v4.5.0 Observation: * In the B2025 16 debugger, the target voltage (~3.3 V) is measured on Pin 1 of the 20-pin connector.* In the A2017 10 debugger, the target voltage (~3.3 V) is measured on Pin 19 of the 20-pin connector. Both debuggers are being used under similar conditions with the same target hardware. Could you please clarify: 1. Whether such variation in VTref (VAPP) pin location is expected across different ST-LINK/V2 units?2. If there are any known hardware variations or revisions related to this behavior?3. Any guidance to ensure cor
The development board I am using is stm32h723. Assuming I only configured region 0 and wrote a blacklist, all regions (both privileged and non-privileged) are inaccessible. The remaining 15 regions were not configured. However, in the MPU Control Mode, I configured "Background Region Privileged access only + MPU Disable during hard fault, NMI and FAULTMASK handlers". This means that for unconfigured regions, only the privileged can access them, and the MPU is disabled during hard faults, NMI, and FAULTMASK handlers. What would happen after this configuration? The CPU is in bare-metal mode without an operating system, and it is in privileged mode. Who should it listen to?
STM32CubeIDE 1.14.1I have imported a CubeMX generated makefile project. When I enter the debug configuration dialog, I get an error "Unsupported build configuration. MCU ARM GCC required for debug." I have not found any documentation from ST indicating how to install this. I am also curious why a dependency required to debug an ST MCU does not come with ST's Eclipse debugger. The Eclipse Marketplace returns an error 500 when I search for MCU ARM GCC.The Install New Software dialog just spins forever, not even loading any package data. What I'm looking to do:Debug an MCU application on my target board.I do not actually care about STM32CubeIDE, I am fine using stock Eclipse. But I do need documentation on how to set up the actual ST specific debug tooling, and this information either doesn't exist or is difficult to find. If ST's IDE works, that's fine too, I don't really care.
I don't use this Tx Buffers Nbr. Instead, I use this Tx Fifo Queue Elmts Nbr for sending. The difference between the two is just that one is manually sent and the other is sent by hardware, right? Why does the software give me a pink prompt for Tx Buffers Nbr, stating that the number of Tx Buffers Nbr plus the number of Tx Fifo Queue Elmts Nbr must be 32? What does this mean? Help me, I'm about to cry.I don't use this Tx Buffers Nbr. Instead, I use this Tx Fifo Queue Elmts Nbr for sending. The difference between the two is just that one is manually sent and the other is sent by hardware. Why does the software give me a pink prompt for Tx Buffers Nbr? The number of Tx Buffers Nbr plus the number of Tx Fifo Queue Elmts Nbr must be 32. What does this mean? Help me, I'm about to cry. God!
I upgraded to 6.17 this morning an have already had to roll back due to a bug in how it now generates fiels for FreeRTOS.Under the FreeRTOS (Include parameters) options I have this vTaskDelayUntil set to Enabled. This now changes the define name in the user config file (Core/Inc/FreeRTOSConfig.h) to be #define INCLUDE_xTaskDelayUntil 1which is correct for the updated freeRTOS version, but in the file (Middleware/Thrid Party/FreeRTOS/Source/CMSIS_RTOS_V2/freertos_os2.h) it has not been updated so it now it throws an error stopping my projects from building. There are other places where vTaskDelayUntil has also not been updated to xTaskDelayUntil. This needs to be fixed.
Hello, I got following problem.STM32CubeMX is unable to properly generate .project file for STM32CubeIDE. After clicking "GENERATE CODE", MX is copying library files, generating .h and .c files, but no .project file. Following nullpointer exception can be found in log file. I already tested different versions of JAVA - no change. I attached error messages, MX log, and .ioc file. Anyone managed to fix this? 2026-03-15 10:27:00,707 [ERROR] ToolchainGenerator:531 - java.lang.reflect.InvocationTargetException: null at jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:115) ~[?:?] at java.lang.reflect.Method.invoke(Method.java:580) ~[?:?] at com.st.microxplorer.plugins.projectmanager.model.ToolchainGenerator.CallMethod(ToolchainGenerator.java:406) ~[?:?] at com.st.microxplorer.plugins.projectmanager.model.ToolchainGenerator.generate(ToolchainGenerator.java:506) ~[?:?] at com.st.microxplorer.plugins.projectmanager.engine.Pro
Hello,I tried to install STM32CubeProgrammer, but the installer always gets stuck at Step 8. I searched online and found that some people from my country solved the problem by changing the Windows region and language.However, my Windows 11 license only supports a single language, so I cannot change it.Is there any other solution for this issue?Thanks in advance.
As shown in the figure, I have equipped the MCU with an external FLASH connected via XSPI2. However, it seems that AI Studio is not aware that there is an external FLASH. How should I configure it to solve this problem?As shown in the two pictures above, after I connected the development board via ST-link, I wanted to run it on the target, but it prompted "failed to start running". Why is this happening?
Hello to the STM32 Community, I am trying to connect a fast TI DAC904 to a Nucleo board with H743. I am using it as a single M7 core. I have built a project with CubeMX where:Timer1 -> DMA -> FMC -> DAC904Short sine buffer in RAM-D1 and DMA as circular bufferIt works but I am getting maximum speed of 12.6 MSps.I have tried to modify the timer frequency but I am getting a limit at that speed Is there a way to make if faster?Thank you Benny
Hi ST,I have a STM32H7 project with FW_H7_v1.12.1 and MX v6.16.1, everything is good so far.But after migration to FW_H7_v1.13.0, I can't generate FreeRTOS code any longer.All FreeRTOS-related code are deleted and MX stay loading icon when I click FREERTOS component.I tried uninstall MX and then install latest MX v6.17, but the same.I also tried install X-CUBE-FREERTOS component, but still the same.Please find my ioc file as attachment.Is there anything I can do?Thank you very much.BRs,-Engin
Split from Inconsistent pin naming - this is a separate suggestion.I would like the option to have the define of a particular GPIO port, or all defines, not typecasted to a pointer. So only the base address as an uint32_t (or uintptr_t). This would make using it in C++ in constexpr easier. Because reinterpret_cast and pointer comparison is not allowed in a constant expression. This should be an additional define for backwards compatibility. #define CLK_A_GPIO_PIN GPIO_PIN_0 #define CLK_A_GPIO_PORT GPIOF #define CLK_A_GPIO_PORT_BASE GPIOF_BASE // <- for use in constexpr In C++ it would be much easier to do things at compile time using templates and constexpr this way. Example:you want to create a function at compile time that sets 2 defined pins highif they are the same port they can be combined in one call to GPIO_set()if they are not the same port they need to be separate callsno macros needed in user code, no runtime checks needed, no manual tweaks n
①Fault Phenomenon: The fourth physical output core acquisition pin is faulty. Without any external connections, the voltage at the CPU pin measures around 4.3V, whereas it should normally be 0V. This also causes the operational amplifier chips connected to it to experience overvoltage. After removing the external connected components and chips, the CPU pin still has floating voltage, and the physical output core reads floating values. Replacing the external operational amplifier chips does not resolve the fault. After replacing the CPU chip, the fault is eliminated.②Fault Location: The U8 pin (pin on page 3) is damaged, causing overvoltage to the external op-amps (IC16, IC15) and itself exhibiting floating voltage, which leads to incorrect data acquisition in the physical output core. Meanwhile, the other four physical output core acquisition functions remain normal; only the PA3 channel is damaged.
Hello all, I want to connect a 3.3 V I2C based keypad with STM32U5G9J-DK1 via a carrier board on which the STM32 board sits via expansion connectors CN9 and CN10 present on it. I am using pins PG13, PG14, and PG9 for my I2C SDA, I2C SCL, and INTERRUPT, which are available as Pin No. 4, 2, and 8 respectively on CN10. The signals pass through a level shifter (TXS0104VDR) on the carrier board for conversion between 1.8 V signals at the STM32 end and 3.3 V signals at the keypad end. These lines are also connected with external pull up resistors as indicated in images attached. All the capacitors between the signal lines and GND have been unmounted. Also, 0 Ohm resistors (R27, R28, and R29 have been unmounted). During operation, STM32 can't detect any I2C device connected whereas the keypad seems to work perfectly when used in a different setup. Upon further investigation, it appears that all the three pins have become unresponsive, even when the board is used standalone, disengaged from th
STM32C5 unlock RDP2 need OEM key, How to use STM32CubeProgrammer to set the OEM key and RDP0 to RDP2? Please provide me with a correct operation procedure. Thank you.
Hi, i am a student using the VL53L0X time of flight sensor for a final project. I am having trouble getting the sensor data to settle the measured distance is very jumpy and out by 6 cm when measured with s ruler. how would i calibrate the sensor to stop jumping around and spit out the correct distance?. I am plotting distance vs time in MFC visual studios. the resolution of the sensor is + or - 1mm and i am out by 6cm.
Could you please tell me how many CAN interfaces are there in STM32H723? I asked the AI, and the AI said there are 2. But when I configured it using Cubemx, I found there are 3. Help me, please!
Hi everyone,I have developed a custom USB DFU HOST class, which I use to update other stm over the usb.I was first on the F4 series, but now switched to the G0 series because of this issuehttps://community.st.com/t5/stm32-mcus-embedded-software/usb-writepacket-stuck-in-infinite-loop/td-p/870532I am using external bypass clock, but the update worked also on HSI just fine.These are all the bootloader versions and the chips I was able to update without any issues:14.4 H573I-DK9.2 L562RET69.0 F446ZE-NUCLEO3.3 F207ZG-NUCLEOBut when I try to update the H745I-DISCO or the H743, the update does not work.I checked the bootloader version on the H745I-DISCO and it's 9.0, which is the same version as F446ZE-NUCLEO which I update without any issues.The update process to update H745I-DISCO worked one in 100 or 200 tries.I have tried messing with timings, clocks, adding prints in the interrupt to slow things down (I know that it's a bad practice), an
I'm trying to use the internal CRC calculation unit in the STM32H7 FLASH controller via the HAL_FLASHEx_ComputeCRC() api. I've finally started getting crc32 values returned but can't match them against any common algorithms ... reviewing AN5507 implies it is using poly 0x4c11db7 and maybe initial value 0 ?I had thought it would match the CRC peripheral defaults but this is not the case.Part of my issue may be address bounds, it seems to be inclusive of the start/end addresses so end address is 1 less (though RM indicates bottom 2 bits can't be set so -1,-2,-3 gives the same results). Finally got consistent return values with different burst lengths but still can't matching other algorithms such as those generated by srec_cat with the -STM32 filter.I've seen some comments indicating this may not work at all but the latest errata has nothing about it (STM32H725)It feels like CRC checking of FLASH memory is exactly what this was supposed to be used for but I'm surprised it isn't better do
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.