Join conversations with your peers and ST experts. Explore the full potential of STM32 microcontrollers for your embedded design.
Most recent activity
Hello everyone,I am currently working with an STM32G4 series MCU using multiple FDCAN peripherals and would like to hear about other developers' experiences regarding CAN communication reliability and synchronization.In projects where both FDCAN1 and FDCAN2 are active, have you encountered any challenges related to:Clock configuration and synchronization Bit timing calculations Bus load handling Message filtering across multiple instances Error recovery and bus-off situationsI'm particularly interested in best practices for configuring multiple FDCAN instances to ensure stable communication in automotive and industrial applications.Any recommendations, examples, or lessons learned from real-world deployments would be greatly appreciated.Thank you in advance for sharing your experience
Hello everyone,I am trying to built a communication through SPI between two stm32g474 mircontrollers in two seperate projects. One should act as a Master and the other as slave. The Master succesfully reads ADC values out and sends it. But unfortunately, the Slave does not Receive it. Here is my Code for Master:/* 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. * ****************************************************************************** */ /* USER CODE END Header */ /* Includes -----------
@ ST engineers: This is a feature request for the firmware of the STLINK-V3MINIE and related debuggers/programmers: pipelined data transfers over the existing USB High-Speed link.In my pursuit to greatly improve the STLINK-V3MINIE's performance for large continuous reads from MCU memory, I discovered there is huge room for improvement: SWD's full potential (~2038 KB/s = 24M [cycles/s] * 4 [bytes/transfer] / (46 [cycles/transfer])) is not yet used at all. (Note that USB shouldn't be the bottleneck, judging from the maximum clock speed the STLINK-V3MINIE's STM32F723's USB IP can support.) I only achieve ~549 KB/s when using an STM32H7S3 MCU with ST's programming SW (v2.20.0) using STLINK-V3MINIE (FW V3J17M10):STM32_Programmer_CLI --connect port=SWD freq=24000 ap=1 mode=HOTPLUG -halt --read 0x24000000 0x60000 /tmp/dmp.binA simplified sequence diagram of the communication used here is shown:Read memory region; current situationI measured the SWD clock line with an oscilloscope to verify 24
Hello, I am using the RTC wakeup from the power standby example provided in the STM32C5 repository. The example starts the RTC wake-up timer and places the device in standby mode. The device does go to standby, and it does wake up due to the RTC wakeup interrupt; however, the RTC initialization fails after wakeup. It is worth mentioning that the only way I can get rid of this error is to power cycle the board.The failure happens in HAL_RTC_WAKEUP_SetConfig due to RTC_WaitSyncrhroWUTW() returning an error due to RTC_CR_WUTE being set.static hal_status_t RTC_WaitSynchro_WUTW(void) { uint32_t tickstart; if (LL_RTC_IsActiveFlag_INIT() == 0U) { if (LL_RTC_WAKEUP_IsEnabled() == 1U) { return HAL_ERROR; // Code returns this error } tickstart = HAL_GetTick(); while (LL_RTC_IsActiveFlag_WUTW() == 0U) { if ((HAL_GetTick() - tickstart) > RTC_TIMEOUT_VALUE) { if (LL_RTC_IsActiveFlag_WUTW() == 0U) { return HAL_ERROR; } } } } return HAL_OK; }To make the examp
Hello, I am trying to make the lpuart1+dma_linked_list transferring data in stop1 mode.My setup is like this: SPI1 + GPDMA: // SPI clocked from HSI Start transfer Enter STOP SCK continues toggling DMA continues Transfer completes DMA irq wakes from stopLPUART1 + GPDMA: // LPUART clocked from LSE Start transfer Enter STOP TX line freezes DMA stops progressing Exit STOP TX resumes Both peripherals are using dma in linked list mode in a similar manner.My understanding is that since both peripherals are “autonomous” they should work in a similar way. I have no problem with the SPI1 working during stop1 mode but the LPUART seems to behave differently.This is my LPUART1 init code: void bsp_lpuart_init(void){ bsp_lpuart1_reset_hard(); LL_LPUART_SetPrescaler(LPUART1, LL_LPUART_PRESCALER_DIV1); // Disable before configuration LL_LPUART_Disable(LPUART1); while (LL_LPUART_IsEnabled(LPUART1)); LPUART1->BRR = 3495; //419430 LL_LPUAR
Hi,I am using an STM32G0B1VET6. All power rails in my design, including VDDIO2/VDDUSB, are supplied from 3.0 V (2.95 min).I would like to use the USB interface and the built-in USB DFU bootloader for firmware updates.AN2606 states that VDDUSB must be connected to 3.3 V. However, AN4879 appears to specify a USB supply operating range down to 2.7 V, with 3.0 V as the minimum recommended operating voltage in some cases. Based on that, I would expect USB to operate correctly with VDDUSB supplied from 3.0 V.Could you please confirm whether USB DFU is supported on the STM32G0B1 when VDDUSB/VDDIO2 is powered from 3.0 V rather than 3.3 V?The board will be powered from its own 3.0 V supply. For the USB programming connection, I am planning to bring out only three wires:USB D+ USB D− GNDThe USB 5 V VBUS line will not be used to power the board.Are these three connections sufficient for entering the system bootloader and performing a firmware update through USB DFU, or is the USB VBUS line or a s
I am using the STM32WB5MMG processor with SDK version 1.20.0. The basic operation involves periodically reading sensor data in response to interrupts generated by the sensor, and then transmitting this data via BLE. To reduce power consumption, we are utilizing low-power mode. With this setup, the overall functionality worked well.However, when we tried to further reduce power consumption by changing CFG_DEBUGGER_SUPPORTED = 0, the device no longer seems to recognize interrupts from the sensor. Of course, reverting CFG_DEBUGGER_SUPPORTED = 1 resolves the issue, and the device operates without problems.Have there been any reported instances of this kind of behavior? I'd appreciate any information you can provide regarding what to check or if there are any known solutions.Best regards,
Heyy, I'm using an STM32u545 (on a Nucleo board), and I'm trying to wake up my MCU from stop 2 mode using wake-up pin 2. Wake-up pin 2 is connected to LPTIM3 (via a jumper wire), and LPTIM3 works. Besides trying to wake up the CPU. An LPBAM application is collecting data using the ADC4 and LPDMA with LPTIM1. Also, it does work. But now I don't know how to wake the CPU using LPTIM3. Did I miss something, or is this not the way to go/ is there an easier way to do this? The program should: - read data on a specific frequency - wake up every two seconds to write the data to an SD card (eventually) Thanks in advance :) 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 Power */ SystemPower_Config(); /* Configure the sys
Hello,I am working with the official USBX CDC ACM example for the NUCLEO-C071RB:https://github.com/STMicroelectronics/STM32CubeC0/tree/main/Projects/NUCLEO-C071RB/Applications/USBX/Ux_Device_CDC_ACMHardware: STM32C071RBT (128 KB Flash, 24 KB RAM)Firmware: STM32Cube FW_C0 V1.4.0Toolchain: STM32CubeIDE 2.1.1The example runs successfully on the NUCLEO-C071RB board. However, after analyzing the RAM usage I am concerned about available headroom for my application.Current RAM usage (from .map file):- .data: 116 B- .bss: 23628 B (including ux_device_byte_pool_buffer: 8192 B, tx_byte_pool_buffer: 1024 B, three RTOS threads: 3x176 B)- ThreadX heap (._threadx_heap in .ld): 4096 B- Stack + Heap: 1536 B- Total: 23744 B- Free: 832 B (out of 24576 B)Current configuration:- UX_DEVICE_APP_MEM_POOL_SIZE = 8192 (app_azure_rtos_config.h)- USBX_DEVICE_MEMORY_STACK_SIZE = 4096 (app_usbx_device.h)- TX_APP_MEM_POOL_SIZE = 1024- ThreadX heap in .ld = 4096 BI need to add additional peripherals (UART, I2C,
Using a custom board with the stm32l412 chip, after entering stop 2 mode, it measures 380uA instead of about 0.72uA without RTC as stated in datasheet.I know using custom board would get the current consumption to get a bit higher but this is almost ridiculous difference, so I expect that something is off, but not sure where to check.Thanks in advance.
Hello Community For some reason, my post from yesterday did not go through and was marked as spam. I'm not interested in moaning about it right now, as I have managed to brick my custom board, designed with STM32H743XI and would be more interested in finding a way to unbrick it. Before jumping to any conclusion, please read the post as it contains crucial info and things I have already tried, which you would like to suggest. Some info about my setup, as mentioned earlier, it's a custom board with BOOT0 and RESET pins exposed using a switch, and there is a JTAG interface for debugging purposes, along with a SEGGER JLink. The way I managed to brick is that I accidentally pulled the RESET line while flashing a FW using Jlink, and since then, it seems memory is in locked mode, and neither Jlink nor ST-vLink is helpful in the rescue mission. Things I have already tried and did not work... maybe I am missing something. I have been in this situation before, and was able to recover from it us
I'm seeing a filesystem corruption issue on an STM32H7 when using FatFs with SDMMC DMA. Hardware / Software STM32H7 SDMMC1 DMA (and MDMA support enabled) FatFs generated by CubeMX D-Cache enabled 8 GB Swissbit industrial SD card Generated sd_diskio.c based on: /* Note: code generation based on sd_diskio_dma_rtos_template_bspv1.c v2.1.4 */ ProblemsThe SD card works normally while mounted: Files can be created Data can be written Data can be read back f_write(), f_sync(), and f_close() all return success However, after: Removing and reinserting the SD card, or Power cycling the system the SD card is detected by Windows as:RAW / Unformattedand must be reformatted before it can be used again.Important observationIf I only perform read operations:Mount cardRead filesPower cycle / reinsert cardthe filesystem remains valid. The corruption only occurs after write operations.Initial investigationBecause the STM32H7 uses D-Cache, I initially suspected cache coherency issues.I
Can you open source your STLINK-V3MINIE? All hardware and codes, Your design is not easy to use.
Hi,I already tried to search for previous threads that could help me (like this one), sadly without success.I'm currently studying the ADC peripheral on STM32F3DISCOVERY from the reference manual. I started writing a simple program to measure a tension on PA0. It all works flawlessly until the ADC samples the value on PA0, stores it in the Data Register and raises EOC. From the manual:"The ADC sets the EOC flag as soon as a new regular conversion data is available in theADCx_DR register. An interrupt can be generated if bit EOCIE is set. EOC flag is cleared bythe software either by writing 1 to it or by reading ADCx_DR." (page 347, Section 15.3.23).The loop part of my code is the following (I already configured the ADC for single conversion mode, L[3:0] = 0000, DIFSEL=0 and so on... to rule out any problem with configuration):unsigned int ADC_value = 0; while(1){ ADC1->CR |= ADSTART; //wait for EOC=1 while((ADC1->ISR&EOC) != EOC); //Data register read ADC_value = (ADC1
Hi, I cannot manage to receive the bytes on UART protocol on an STM32U0 when using the STLINK-V3MINIE.The RX works properly (I can send data to the PC), so the pins are not swapped. The Vref of STLINK is 3V3, and the STLINK measures it correctly. Moreover, I can successfully program the U0 using the STLINK so I think both devices are in good shape.The UART baud rate is 115200 b/s. I have attached an oscilloscope to observe the signal. When NOT connected to the MCU, the TX signal is clear as expected (0V as low and 3V3 as high). If I connect it the MCU, the signal is still very clear and sharp but reduced (the "low" level is about 1.65V and the high level is 3V3). The schematic is the most straightforward: no components between the STLINK and the MCU.The firmware on STLINK is the V3J17M10.Currently, I have solved it using another USB-serial converter (CP2102) and it works flawlessly in both directions, using interrupts, DMA and whatever firmware tricks, but I would unders
Hi,I have developed an application for the STM32C562RET microcontroller that wakes up from standby mode, initially based on an example provided by ST. The non-FreeRTOS version of this application works fine (though there is a minor wake-up issue that is fixable). Subsequently, I created a FreeRTOS version of the same application that starts a task, and when the user presses a button, the vTaskEndScheduler() function is called to terminate FreeRTOS, which in turn calls void vPortEndScheduler(void) where the wake-up code is implemented. void vPortEndScheduler(void) { HAL_RTC_WAKEUP_Start(HAL_RTC_WAKEUP_IT_ENABLE); LL_PWR_ClearFlag_SB(); HAL_PWR_EnterStandbyMode(); } Despite the fact that FreeRTOS is no longer running, the MCU goes to standby and wakes up immediately.Do you have any suggestions on how to make this work?Thanks,-Gil
As I understand, the TSSOP20 version needs an external oscillator instead of a 8MHz crystal connected directly to the MCU pins. Is that correct?I'm asking because I have seen a board on AliExpress using this same processor with a 8MHz crystal.
Hi, I have bought STM32H743VGT6 and want to make bootloader and application. The issue is that its memory layout is confusing. In documentation and generated application I see/assume flash memory is:0x8000000 size 0x80000 (512kb bank1?) // bootloader 0x8100000 size 0x80000 (512kb bank2?) // applicationBut when I try to write to 0x8100000 I get "Error occured during memory writing!". Instead I can write to0x8000000 size 0x100000 (1024kb)Does this mean I have only Bank1, but no Bank2? Can I still do bootloader which is on Bank1 and writes to flash on same Bank in different sector? How can it be that I have only one Bank?..
I am currently using TouchGFX to develop a project. How can I independently control GPU2D to draw graphics on a dynamic bitmap without affecting the TouchGFX display? I have already obtained the NeoChromSDK, but the examples in the NeoChromSDK all use GPU2D independently as well. I can draw with GPU2D if touchgfx not in use,But once I display them both, screen got glitched.
Hello everyone, I am new to STM32 development and I am working with the STM32H7A3ZIT6 microcontroller. I need to interface it with a BiSS-C encoder/sensor. I would like to know: Is there any ready-made or full BiSS-C communication library available for STM32? Does STM32CubeMX / HAL provide any support for BiSS-C? If no full library is available, what is the recommended way to implement BiSS-C on STM32H7A3ZIT6? Can BiSS-C be implemented using SPI, timer, DMA, or GPIO bit-banging on this MCU? Any example code, application note, or guidance would be very helpful. Thank you.
Is there a standard list of SB's? I cannot for the life of me figure out the SB's on the STM32F723E-DISCO, and none of the manuals mention anything about them other than if open is on or off. I am specifically trying to use the debugger for my custom PCB based off the same MCU. Any help would be greatly appreciated!
Hello Everyone,During the operation of my program, there will be an issue of address inversion on stm32f030c8.It occurs approximately every 4 hours, and then it transitions to a "hard fault".For example, I was trying to read from address 0x20000940, the register R0 returns 0x20400940, 1 bit was flipped, and it is out of the range of ram address(0x20000000-0x20002000), runs into hardfault in the end.I measured the surface temperature of the chip, and when the problem occurred, the surface temperature of the chip was 65 degrees.I suspect it's a problem caused by excessive temperature, so I used a fan to blow on it. It has been running for a whole day and is still functioning normally.The vcc of the MCU is 3.3V. I used external crystal oscillator 8M, the PLL Clock is 48MHZ, configuration like follow: RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_HSE;/** 使用外部晶振(8mhz) */ RCC_OscInitStruct.HSEState= RCC_HSE_ON;/** 打开高速外部时钟 */ RCC_OscI
Hello ST team,we are trying to evaluate the simple GPIO pinouts on STM32N6 Nucelo & in our custom board,we noticed that Port P & O pinouts are not functioning as expected. we just configured as simple GPIO output and tested the pin state always low. other GPIO ports look normal, but we will come to know when we do the complete testing. We've cross checked this Port P &O functionality in the Nucleo EVK as well in custom board, but No luck, it is not working in both, could you please suggest, is there any special configurations required to make port P& O functional?Regards,Madhu S
Hi Technical Support team,Platform: STM32H7B3I-EVAL board (MB1331-H7B3LIQ-D04)I want to understand memory and flash usage when we build and run any application using TouchGFX Designer on STM32H7B3I-EVAL board. How to choose memory size and type for customized board based on STM32H7 Platform. ? How to choose specific SOC form STM32H7 family suitable for project requirements? Please refer below details. On‑Chip (SoC: STM32H7B3LIH6Q)Flash: 2 MB internal FlashRAM (SRAM): 1.4 MB internal SRAM (split across multiple banks: DTCM, AXI SRAM, SRAM1/2/3):package: On‑Board External MemoriesOcto‑SPI NOR Flash: 512 Mbit (64 MB)SDRAM: 8 Mbit × 32‑bit = 32 MBSRAM: 1 Mbit × 16‑bit = 2 MBNOR Flash: 8 Mbit × 16‑bit = 16 MBmicroSD card slots: 2 × (expandable storage)Memory used as per blow log while compiling and flashing code from Touch GFX. :desktop_computer:️ On‑Chip (STM32H7B3
I set ETH to be working on RMII_PTP_SYNCHRO, However HAL_ETH_USE_PTP is still not defined by default.
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.