Get ready for the STM32 Summit 2026 | Online, November 3
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
Security:Introduction to STM32H5 security - stm32mcu “Approved version. Approved on: 10:25, 18 May 2026”The following links are broken:In the intro section, the text “For general STM32 security see this article and AN5156.”: The link “this article” is https://wiki.st.com/stm32mcu/wiki/Security:Security_overview which shows a “Page not found” error page. In section 2, in the bullet point about PCROP, the text “Obviously this feature is redundant with the availability of TrustZone® and HDP.”: The link “TrustZone” goes to Security:How to disable TrustZone in STM32L5xx devices during development phase - stm32mcu which is for a different MCU and not very relevant for STM32H5. In section 3, the text “For introduction on these features, refer to this guide.”: The link “this guide” is https://wiki.st.com/stm32mcu/index.php?title=Security:Guide_to_use_specific_security_feature&action=edit&redlink=1 - which does not exist. section 3.2, the text “For broader context follow here.”: The lin
The following object detection models are not appearing on the STM32 Model ZooSSD_Mobilenet_V2(192x192)ST_YOLO_X_NANO(192x192)Have these models been removed or renamed?
Is there any doco or app note on how to save/restore a STM32H7 CRC calculation (e.g. breaking up long CRC calculation into separate segments that requires re-initialization of CRC HW between segments)?
Dear Forum,I'm using a STM32F401 and implemented the I2C as Target transmitter (Slave) answering a I2C question. I'm programming the I2C CR2 (FREQ Bits) Register as follows with correct speed (42 MHz)I2C1->CR2 = ((DRV_RCC_GetPCLK1Freq() / 1000000u) & I2C_CR2_FREQ_Msk); I've noticed some spikes when the STM32 I2C controller generates the answer, see below (yellow markings)Blue: Clock generated by the controller (the clock speed is about 200kHz)Red: Adrdess Byte generated by the controller, Data Bytes generate by STM32 I2C transmitter (answer) with spikesWhen the FREQ Bits of I2C_CR2 Register are zero, this spikes doesn't occur, see belowThe Reference Manual RM0368 Rev 6 for the I2C CR2 writes:It is noticed that this FREQ bits must be configured to generate I2C compliant Signals. Anyhow from EMC perspective this spikes are bad because the radiate a wide spectrum. I've found nowhere information of correct I2C specifiation/behaviour of the Data Signal the be compliant
Thank you for taking the time to review my question.I migrated the Ux_Device_Audio_2.0_Standalone of STM32WBA6 to STM32H503 and successfully enumerated using USB FS. However, out of 1000 entries into the USBD_AUDIO_PlaybackStreamFrameDone function per second, half are 4 bytes long and half are 384 bytes (audio stream). I monitored the data using USBlyzer and did not see any upload data (EP IN) from STM32H503. I don't know where these 4 bytes come from, and this issue has been bothering me for several days.VOID USBD_AUDIO_PlaybackStreamFrameDone(UX_DEVICE_CLASS_AUDIO_STREAM *audio_play_stream, ULONG length){ /* USER CODE BEGIN USBD_AUDIO_PlaybackStreamFrameDone */ UCHAR *frame_buffer; ULONG frame_length; int32_t ret; UNUSED(ret); /* Get access to first audio input frame. */ ux_device_class_audio_read_frame_get(audio_play_stream, &frame_buffer, &frame_length); if (length) { HAL_GPIO_TogglePin(GPIOA, GPIO_PI
Hello, I have connected a sensor to my nucleo board to send data when sensor detects movement.I have introduced an ISR for that.void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin){ if (GPIO_Pin == GPIO_PIN_0) { pirDetected = true; }} unfortunatelly with that approach everytime the sensor was triggered ( I was able to measure 3.3v on the OUT pin using voltmeter) my stm32 is kind a freezing. I have introduced some testcode,extern "C" int main(void){ /* USER CODE BEGIN 1 */ /* USER CODE END 1 */ /* MCU Configuration--------------------------------------------------------*/ /* Reset of all peripherals, Initializes the Flash interface and the Systick. */ HAL_Init(); /* USER CODE BEGIN Init */ /* USER CODE END Init */ /* Configure the system clock */ SystemClock_Config(); /* USER CODE BEGIN SysInit */ /* USER CODE END SysInit */ /* Initialize all configured peripherals */ MX_GPIO_Init(); while (1) { if(HAL_GPIO_ReadPin(GPIOA, GPIO_PIN_0)) { HAL_GPIO_Write
Hello,we have to use the STM32H573 in the 80 Pin WLCSP with temperature Range 3 (to 125°C). So STM32H573MIY3Q was chosen. Due to a mistake we didn't recognized that the internal LDO can't be used. Now we have no space for placing additional components as the inductor to use the SMPS. The STM is on a tiny board which is connected on a baseboard on this is more space for components.So now we have two options: Use an external LDO on the tiny board, we have 1,8V spare to burn down. How much current shall we consider (250 MHz). The maximum IDD ist stated with 125,2 mA, does any additional current has to be added?Use an external DCDC on the baseboard. In both cases the Questions are:How has the pins of SMPS to be configured (by hardware) to shut down the SMPS appropriately?Do we have to use the VCAP as an input?If STM staff is reading this please get in touch with us immediately. Thanks.So longMarwinEdits: Some minor spellings
Hello,I’m using CubeMX 6.18.0. I’m trying to implement a USBX standalone (bare-metal, no RTOS) CDC application. Code within user code sections is overwritten when re-generating the project. As far as I can see this is not a new problem, there are already some older topics about it. @ST: will this ever be fixed?Regards
I am working on an STM32 based IoT project where I want to fetch original quality media files from public Instagram post URLs and display them on a connected TFT screen. The concept is similar to how browser based tools like snapinsta.ink work where a public post URL is parsed to extract the direct media file URL which is then fetched as raw image data. My current implementation uses the STM32 HAL HTTP client library to send a GET request to the public post URL and parse the JSON response to extract the highest resolution media node before downloading the file to external flash storage. The main challenge I am running into is that the response payload size exceeds the STM32 heap allocation when trying to buffer the full response in memory before parsing. Has anyone implemented a similar HTTP response streaming and parsing workflow on STM32 and found a reliable way to handle large JSON payloads without loading the entire response into SRAM.
I'm implementing getQuat() for the BNO055 on both STM32 and Arduino and getting very different times. On STM32H7 (HAL, 400kHz I2C) my equivalent code measures ~394µs typical with frequent spikes up to ~2573µs (mean ~912µs), but on Arduino with the Adafruit library getQuat() I get ~2ms. Is my STM32 HAL code below a fair equivalent of the Adafruit getQuat(), so that the times are actually comparable?adfruit bno055 offical library /* USER CODE BEGIN Header *//** ****************************************************************************** * @file : main.c * @brief : Main program body ****************************************************************************** * @attention * * Copyright (c) 2026 STMicroelectronics. * All rights reserved. * * This software is licensed under terms that can be found in the LICENSE file * in the root directory of this software component. * If no LICENSE file comes with this software, it is provided AS-IS. * ****************
After updating CubeMX to version 6.16.2, we are seeing HRtimer E and F problems which cause our product to fail. Reverting back to 6.15 and regenerating the code allows our device to work. I believe the issue is due to the change in the code database version: MxDb.Version=DB.6.0.161 but I can't be sure as the new version of cubeMX forces values into the HRtimer E and F configurations.Hoping for commiseration and resolution!ThanksRauk
I am using TIM8 to generate a PWM waveform (a /wr signal to an LCD ST7789 controller) and the timer triggers DMA2 to load the next byte onto the PD8-PD15 bus. The 1st byte has to be loaded “manually”.It works, and the ARR CCR3 CCR4 values can be adjusted to get the desired overall period, and data setup and hold times.At 84MHz APB2, I am using ARR=11 to get a 71ns cycle time. So this thing is running pretty fast. The timer resolution is 1/168MHz. The ST7789 can go down to 66ns.The problem is that roughly once in a million writes, bad data is loaded. It shows up as wrong colour pixels. With extensive debugging, AFAICT, the bad data is not present in the source buffer. What I do see on a scope is very rare faint edges on the data, around the /wr +ve edge, on which the data setup/hold time is out of spec. Sometimes the data changes at the same time as the /wr +ve edge!Using ARR=15 or higher, the problem goes away. But then I get too-slow transfers.It looks like there is a very rare huge l
I am using STM32CubeIde version 2.1.1, STM32CubeMX version 6.15.0, Segger JLink, and a STM32G474RB chip.The CubeMX generates a linker file which looks like single bank flash mode, I have uploaded the ioc and ld files.With CubeProgrammer, I set the option bits to DBANK = 0 for single mode or DBANK = 1 for dual mode.In every case the debugger stops flash programming at 0x08010000 (64kB), all beyond 0x08010000 reads 0XFFFFFFFF.That leads to a hard fault right after starting a debugger session.How can I fix this problem?And no, I can’t switch to dual mode as the text section file exceeds 64kB, and I can’t update the CubeMX as all versions 6.16 and 6.17 contain a HRTIM configuration bug.
Hello Sir/Ma’am,I am planning to use two 8-bit DDR3L memory devices with the STM32MP257FAK3. Could you please confirm whether this configuration is compatible with the STM32MP257FAK3?If it is compatible, I would appreciate your guidance on how to implement this configuration. Regards,Shubham
Hi!I have a custom board with STM32MP257F. I have the same electrical setup for HDMI as STM32MP257-DK board have. Hence, the HDMI output is working. But playing sound through HDMI does not work very well. It sounds like the mono .wav files from /etc/share/sound/alsa are recorded under water.I play these sounds by using instructions from https://wiki.st.com/stm32mpu/wiki/How_to_play_audioHere is my sound card. I can play test sounds like pink noise, PWM and sine waves from speaker-test. Here is my hardware setup. I'm using the same HDMI and I2S Device Tree setup as STM32MP257-DK.(No, in mobile view, I cannot post this as a code block because the button "..." is not available)root@watermelon-wine-1aunknown:/usr/share/sounds/alsa# aplay -l**** List of PLAYBACK Hardware Devices ****card 0: STM32MP25DK [STM32MP25-DK], device 0: 400b0000.audio-controller-i2s-hifi i2s-hifi-0 [400b0000.audio-controller-i2s-hifi i2s-hifi-0] Subdevices: 1/1 Subdevice #0: subdevice #0root@watermelon-wine-1aunkn
Hello,After updating (and later performing a full uninstall/reinstall) to STM32CubeIDE 2.2.0, the "Instruction Stepping Mode" toggle command has completely disappeared, and it appears the underlying command is no longer registered at all — not just hidden from the toolbar.Version:STM32CubeIDE Version: 2.2.0Build: 29186_20260626_0934 (UTC)OS: WindowsSteps to reproduce:Start a debug session on an STM32H7 target Open the Disassembly view Try to enable "Instruction Stepping Mode" to step at the assembly instruction levelObserved behavior:The icon is no longer present in the Debug toolbar Giving focus to the Disassembly view does not automatically enable instruction-level stepping (F5/F6 still step at C source line level only) Going to Window > Perspective > Customize Perspective > Toolbar Visibility, the command "Instruction Stepping Mode" is listed in the Debug toolbar structure, but checking its checkbox and clicking "Make Item Visible" throws the error: "'Instruction Stepping M
Is this version do not copy touchgfx_core.a to project folder? ex) Middlewares\ST\touchgfx\lib\core\cortex_m4f\IAR8.xbecause I did generate code in touchGFX so automatelly remove the files in lib/core.and i can't build on IAR because .ipcf file generated from touchGFX desinger need touchgfx_core.a of path above.
Hello Team,I have used STM6824SWY6F Part in one of my Design and I’m performing an de-rating analysis, so could you please share the below details,1. Junction Temperature2. Junction-to Ambient Thermal resistance3. Junction-to-case Thermal resistance4. Maximum power dissipation Thanks,Deva
Download firmware option on ST87Mxx GUI 2.4.3.0 does not work on EVKITST87M01-2, module on board is “ST87M01-1301”.If I let it run then it says: “Please reset board” and nothing happens after reset, only way out is “Cancel” after which it says “Download Aborted”.If I try to reset board before message “Please reset board” it says: “A problem occurs : error: error sending “AT+IPR=460800”: device responded with “OK”.
--incremental uses a 32-bit additive byte-sum, not a CRC — sum-preserving content changes are silently skippedProduct: STM32CubeProgrammer 2.22.0 (Linux x86-64) Interface: SWD / STLINK-V3 Target: STM32F427 (DEV_ID 0x419)DescriptionThe --incremental download mode decides whether to skip a flash sector by comparing a 32-bit additive byte-sum of the sector's current chip content against the same sum of the new image.The on-target .stldr CheckSum export (@ 0x200001e9, verified in two loader binaries) uses additive accumulation.Because addition is commutative and linear, any two images whose bytes differ only in ways that cancel (adjacent-byte swap, +1/−1 pair, any permutation within a sector) produce identical sums. Those sectors are silently skipped — old bytes remain on chip and the tool reports success.ReproductionTest images A and B (64 KB, four 16 KB sectors) are constructed so that:Sector 1: bytes at offsets 0x4100/0x4101 are 0x11,0x22 in A and 0x22,0x11 in B — an adjacent swap. Addi
When using this microcontroller, after entering low-power mode via the HAL_PWREx_EnterSHUTDOWNMode() function, I found that there is a 0.9V voltage on VCAP. But the program indeed did not continue performing the reset operation.Do I need to turn off anything before entering this mode? I have used peripherals such as DMA (linked list in circular mode), SPI, USART, ADC, and GPIO.The following is my function for entering low power mode. static void DevLowerKeyInit(uint8_t *index) { (void)index; osDelay(200); vTaskSuspendAll(); SysTick->CTRL &= ~SysTick_CTRL_TICKINT_Msk; for (uint32_t i = 0; i < 16; i++) { NVIC->ICER[i] = 0xFFFFFFFF; NVIC->ICPR[i] = 0xFFFFFFFF; } HAL_DBGMCU_DisableDBGStandbyMode(); HAL_DBGMCU_DisableDBGStopMode(); extern void MX_GPIO_ALL_ANALOG_Init(void); MX_GPIO_ALL_ANALOG_Init(); __HAL_PWR_CLEAR_FLAG(PWR_WAKEUP_FLAG2); __HAL_PWR_CLEAR_FLAG(PWR_FLAG_STOPF); __HAL_PWR_CLEAR_FLAG(PWR_FLAG_SBF); __DSB();
In STM32CubeIDE 2.1.1, Project Explorer keeps collapsing constantly.This has been a persistent bug for a very long time and is very annoying.Can't ST just fix this since it is based on Eclipse?
I have been developing an application based on the STEVAL-PTOOL1V1_6S_HL. I have managed to successfully get the motor up and running to the expected RPM using the speed potentiometer functionality. I am now developing my own custom hardware using the STSPIN32F0B and I will not be using the speed potentiometer to control the speed of the motor. Instead my intention is to use the commands such as:MC_ProgramSpeedRampMotor1(2000, 1000);MC_StartMotor1();To set the motor speed and start the motor.I am unsure of how to go about removing the speed potentiometer functionality from the generated code In MC Workbench (V6.4.2) after loading in the STEVAL-PTOOL1V1_6S_HL.ioc the Potentiometer option visible can’t be changed
Sensor is LSM6DSV16X.When I use this .h file in my MCU driver. There is no wrist tilt, but “Wrist tilt detection with accelerometer and gyroscope” can.I don’t know why?
Hi ST Team,Can You pls share the Junction temperature of the following Parts.LSM6DSVTR M24M01E-FMN6TP
Already have an account? Login
Enter your E-mail address. We'll send you an e-mail with instructions to reset your password.