Join conversations with your peers and ST experts. Explore the full potential of STM32 microcontrollers for your embedded design.
Most recent activity
Hi,I am not able to output per I2S properly.1. I changed from a properly working driver for STM32F407 to this STM32H7A3VGTI had to learn, that the master clock is different as for the 407; here is always running (?) and the DMA did not work properly anymore.2. I made a testsetup with CubeMX (6.14.1):- I2S Philips- 48 kS- 16 bit- I2S clock = 49,152MHz- no MasterclockI simply use HAL_I2S_Transmit() for a 4 word buffer to send. The buffer is 32bit aligned and is in "normal" ram since DTCMRAM does not work for the DMA (lateron).The function generates proper output for BCK, Data and LRCK, but it never stops. It sends the last word from buffer over and over again. I can switch of i2s, than it stopps. Is this to be expected (?)3. Next approach:- Same configuration as (2), but using DMA, Half-Word(16bit) for per and mem, no fifo- The callback HAL_I2S_TxCpltCallback() is called with the right SPI-> inside I call HAL_I2S_DMAStop() to stop the DMAResult: No output at all4. Next approach:-
hi,I am currently using stm32h723zgt6 with LTDC display & earlier i use have everything by "C" for small GUI but i need move to TouchGFX for bigger GUI ( without RTOS) . Currently LTDC display working with C generated image & font .As a TouchGFX beginner i need make simple picture in display So, Made GFX setting as follows : i gone through following documentation but it's little confusing https://support.touchgfx.com/docs/development/touchgfx-hal-development/scenarios/scenarios-ltdc-parallel-rgb 1.for single layer display which code i need copy to ""TouchGFXGeneratedHAL.cpp"" ? .2.I need to anything in main C ? .3.How to make manual update touch pin interrupt handler ?.4. Any examples using h7 series + ltdc display + touch GFX (without RTOS).
Dear Gfx Team,1. Please consider adding 'Collapse/Expand All' options to Text View Groups.2. Please do not expand all Groups upon Designer start. Remember thier state before exit.Thank you
Hello everyone, I am using the STM32F042K6 for a small project where I don't have much space. Therefore, I rely on the small package and the "crystal-less USB" function. The hardware arrived today, but unfortunately, I had to realize that the USB library seems to be too large for the chip. I created a new, empty project in CUBE IDE, with only I2C and USB (COM PORT) enabled, and I get the following error message: "c:\st\stm32cubeide_.2.0\stm32cubeide\plugins\com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.10.3-2021.10.win32_1.0.200.202301161003\tools\arm-none-eabi\bin\ld.exe: Test_Project.elf section .data' will not fit in region FLASH' c:\st\stm32cubeide_1.2.0\stm32cubeide\plugins\com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.10.3-2021.10.win32_1.0.200.202301161003\tools\arm-none-eabi\bin\ld.exe: region `FLASH' overflowed by 12 bytes" This is quite frustrating when it is advertised and then doesn't work "out of the box."
Hi,I'm trying to do 3-WIRE SPI communication with DAC60501,but no matter what I do, the output value doesn't change.I checked the waveform with a scope and it all was OK.The first falling edge of SYNC starts the operation cycle --> CPHA= 1 Edge uint8_t aTxBuffer[3] = { 0x08, 0x7F, 0xAA }; --> command = DAC_DATA, value = 0x7FA (12bit) I set up CUBE MX as above.Is there anyone who can tell me why it doesn't work? Thank you in advance.
"C5" typo corrected in title to "C0"Does have the STM32C5 and STM32U5 microcontroller documents e.g hardware user manual?Could you please help me to confirm this?
Hi, I don't understand why CubeMX is limiting me through their IOC file to select an ADC clock below 2MHz. The datasheet says 140 kHz is the minimum ADC clock frequency for the STM32G07. Anyone has any answers or help ?.
Hello,I had two related questions to clarify - 1. Can multiple Op-Amps be used in the differential mode simultaneously and their output fed to ADC for measuring input DC voltage?2. Also, since the Op-Amps inside the STM32G4 MCU are not rail-to-rail, they only output 0-3.3V for the given input. I am only interested in measuring DC input. Connecting the Op-Amp GND to system ground (0V) would give me the full range of output for DC (NOT 1.65-3.3V, but 0-3.3V), right? Thanks.
Hi,I,m looking for a way to remove or hide the keychar of the keyboard's keys or button, i'm using the custom keyboard from TouchGFX demo or examples, and i have a new asset that already have the keychar or key label. For this reason, i need to remove the keychar and prevent the keyboard class from drawing them.How i can do that?Best regards.
[PN]: Customer Board (Very similiar IHM08M1 and STM32G431RB)[VERSION]: 6.3.1[TOOL]: Motor Pilot[DETAILS]: at heavy load step the motor turns suddenly in wrong direction with full speed (see plot below)[EXPECTED BEHAVIOR]: stable speed or motor stops with speed feedback error or over current error[HOW TO REPRODUCE]: Use PMSM Motor with FOC (STO+PLL as primary Sensor, 3shunt), STM32CubeMX 6.12.1, Target Toolchain ST STM32CubeIDE, Firmware Package Version STM32 FW V1.6.0, Drive Type: LL
Hi all,Board: STM32H745I-DISCOIDE: 1.16.1 I am facing some issues with trying to execute code on the SDRAM. I have a 2nd stage bootloader that loads the user application onto QSPI located at 0x9000 0000. After that, I copy the user application code to the SDRAM 0xD0000000. This part works as verified in the debugger. However when I try to jump to the SDRAM address, my program is not executing. And it seems like the SDRAM has lost connection? Attached below is the image(sdram_becomes_unreadable.PNG) where my bootloader jumped to the SDRAM address but unable to read from the SDRAM. There is no hard fault.. Background: I have tried to load the user application onto QSPI and jump to the QSPI address, my program executes successfully. I have checked my MPU configuration to make sure that SDRAM is MPU_INSTRUCTION_ACCESS_ENABLE. Below is my MPU configuration void MPU_Config(void) { MPU_Region_InitTypeDef MPU_InitStruct = {0}; /* Disables the MPU */
Hi, I am reaching out to kindly request NUCLEO-C051C8 project files ( It seems that ST uses Altium).Altium files would greatly facilitate my development.Please help me.
Hi,I am using LPUART and LPDMA on STM32U575. But I am getting Data Transfer Error.I have tried LPUART with GPDMA it works fine but LPUART with LPDMA giving Data Transfer Error.So I have two questions:1. Can we use LPUART & LPDMA together?2. What will be the cause of Data transfer error and how to configure LPDMA ?Can you please guide me on this?
I was going through the reference manual of STM32G4 series MCU. I saw information on using Op-Amps inside the STM32G4 as Inverting and Non-inverting amplifiers. There was no mention of them used as differential amplifiers, can they be used as differential amplifiers?
Heyho,how can I put a constant at the end of the STM32's used flash? (using: STM32CubeIDE)Not at a specific address (that's not a problem), but I'd like to have a constant always at the end of the used internal flash, independent of any other source code changes.I just find that there's some ASCII characters = "ASCII" (twice) and lots of 0x00 at the end of my H7 and F7 bin files - that from my sources or placed by CubeIDE? Thanks!
I have the following code trying to turn 5 pixels of the LED strip to red. The setup I have is the LED strip is connected to PC6.#include <stdint.h> // STM32F103C8 is a medium density device, hence we use the xB header #include <stm32f103xb.h> #if !defined(__SOFT_FP__) && defined(__ARM_FP) #warning \ "FPU is not initialized, but the project is compiling for an FPU. Please initialize the FPU before use." #endif void enable_clock() { RCC->CR |= RCC_CR_HSION; while ((RCC->CR & RCC_CR_HSIRDY) == 0); } // @formatter:off #define HI 6 #define LO 3 uint32_t buffer[] = { LO, LO, LO, LO, LO, LO, LO, LO, HI, HI, HI, HI, HI, HI, HI, HI, LO, LO, LO, LO, LO, LO, LO, LO, LO, LO, LO, LO, LO, LO, LO, LO, HI, HI, HI, HI, HI, HI, HI, HI, LO, LO, LO, LO, LO, LO, LO, LO, LO, LO, LO, LO, LO, LO, LO, LO, HI, HI, HI, HI, HI, HI, HI, HI, LO, LO, LO, LO, LO, LO, LO, LO, LO, LO, LO, LO, LO, LO, LO, LO, HI, HI, HI, HI, HI, HI, HI, HI, LO, LO, LO, LO, LO, LO, LO, LO,
Moved from 'Feedback' forum. The 'Feedback' forum is not for product questions.Hello everyone,I’m currently working with the EVSPIN32G4 Rev.1 development board and the STM32 Motor Control SDK (MCSDK) using Motor Workbench, STM32CubeMX, and STM32CubeIDE.My goal is to control a brushless motor in closed loop using a quadrature encoder as the main speed/position feedback sensor.Setup:Software:Motor Control SDK: v6.3.2STM32CubeMX: v6.14.1STM32CubeIDE: v1.15.1Motor Pilot: v6.3.2Hardware:Board: EVSPIN32G4 Rev.1 (with STSPIN32G4 MCU)Motor: SM23165D (brushless) - ( datasheet link https://www.animatics.com/wp-content/uploads/2023/03/19_SM23165D.pdf )Encoder: 4000 counts/rev → 1000 PPR (Quadrature)Config 1: Sensorless + Encoder as AuxiliaryMain Sensor: Observer + PLL (sensorless)Auxiliary Sensor: Quadrature EncoderIn this configuration, the motor spins correctly and responds to speed commands (even if there's a ~500 RPM deviation).The speed measured by the encoder matches the
Hi, I have problem config LTDC for 1280x720 @60Hz. Without caching it works no problem, but slow. We are using 32MB SDRAM 16bit, config at 100MHz. When we use MPU to cache SDRAM, code as below: ``` MPU_Region_InitTypeDef MPU_InitStruct; /* Disable the MPU */ HAL_MPU_Disable(); // Region 0: All 32MB cached MPU_InitStruct.Enable = MPU_REGION_ENABLE; MPU_InitStruct.BaseAddress = 0x60000000; MPU_InitStruct.Size = MPU_REGION_SIZE_32MB; MPU_InitStruct.AccessPermission = MPU_REGION_FULL_ACCESS; MPU_InitStruct.IsBufferable = MPU_ACCESS_NOT_BUFFERABLE; MPU_InitStruct.IsCacheable = MPU_ACCESS_CACHEABLE; MPU_InitStruct.IsShareable = MPU_ACCESS_NOT_SHAREABLE; MPU_InitStruct.Number = MPU_REGION_NUMBER0; MPU_InitStruct.TypeExtField = MPU_TEX_LEVEL0; MPU_InitStruct.SubRegionDisable = 0x00; MPU_InitStruct.DisableExec = MPU_INSTRUCTION_ACCESS_ENABLE; HAL_MPU_ConfigRegion(&MPU_InitStruct); // Region 1: Last 4MB as non-cacheable for LTDC MPU_InitStruct.Enable = MPU_REGION_ENABLE; MPU_InitStruct.B
Is there any publicly available info on how the profiler works?
I'm a USB newbie and am trying to use the STM32F411CEU6 as a USB mic. I'm currently using FreeRTOS (cmsisV1) and the Cubemax USB library. My device currently enumerates normally, but when the host sends a URB_ISOCHRONOUS_IN request, my MCU won't handle it properly (according to SWD and serial port debugging, I found that the MCU won't even enter the OTG_FS_IRQHandler interrupt when the host sends this request). This has been bothering me for a long time. Here are my descriptors and some configuration code:__ALIGN_BEGIN static uint8_t USBD_AUDIO_CfgDesc[] __ALIGN_END = { /* Configuration Descriptor Head */ 0x09, // bLength 0x02, // bDescriptorType = CONFIGURATION 0x6D, 0x00, // wTotalLength = 109 bytes 0x02, // bNumInterfaces = 2 (Audio Control + Audio Streaming) 0x01, // bConfigurationValue 0x00, // iConfiguration 0x80, // bmAttributes: Bus powered 0x32, // bMaxPower: 100mA /* -------- Audio Control Interface (Interface 0) -------- */ 0x09, // bLength 0x04, // bDescriptorT
Hi community, I'm having struggles with EXTI in WBA55CG. I want to implement a function, when the button is clicked, a message is sent via BLE. I have found the stm32wbaxx_hal_exti.c file. Can I follow exactly the same as the instructions or what i add more? Thank you.
I’m encountering an issue with XSPI1 in my application. I boot the application via XSPI2 in an LRUN configuration, and this part works perfectly. However, within the application, I need to use XSPI1 to write data to a different flash.During MX_XSPI1_Init(), the code crashes at this line:if (HAL_XSPIM_Config(&hxspi1, &sXspiManagerCfg, HAL_XSPI_TIMEOUT_DEFAULT_VALUE) != HAL_OK){Error_Handler();}I traced the crash to the exact line:IOM_cfg[0].IOPort = pCfg->IOPort;The initialization code for XSPI1 was generated using CubeMX. Interestingly, if I initialize XSPI1 in the boot project, everything works fine.I’ve already spent a week trying to solve this issue, but so far nothing has worked.I would really appreciate suggestions to help solve my problem.
Hello,I am trying to set up a UPD communication with a nucleo-H755ZI-Q board.Now I have the effect, that the lwip stack sends out an arp request for its own IP address.I double-checked the IP address and destination address to make sure they were correct. Does anyone have any idea, what could be causing this?Thank you.HiSt
Hello,I am trying to configure the secure memory in Secure Protection Bank 1 of options bytes section and for this I have followed the STM32 MOOC tutorial to understand the concept of using secure boot code. But I am facing issues as the base address for Bank 1 is expected be 0x08000000 as mentioned in STM32 G4 system memory protection document and also in tutorial whereas its showing as 0x00000000 Below is the screenshot from STMCube Programmer Option Byte settings from G474RE Board for your reference.I have also checked the similar settings with G071 board and I am able to get the base address as 0x08000000 as below and implement the secure boot code but unable to do in G474.Are there any other settings that I am missing out to configure in G474 to add the SEC_SIZE1 value?Can you please help me with this?Thanks
Dear STMicroelectronics Support Team,I previously submitted a request on [ Auguest 26, 2025] (case #[00242096]) and have not received a reply.I am evaluating STM32 MCUs for an LwM2M client implementation and need clarification on ST’s official support.Questions:Does ST offer any MCU models with an official LwM2M stack or pre-integrated middleware?Please provide package names, download links, and any long-term support information.Please update the status of my open case and provide the requested technical references.Best regards,Name : Wilfred.kim (JongSeong.Kim)Company : TeladinEmail/Phone : wilfred@teladin.com/+821054147096
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.