Join conversations with your peers and ST experts. Explore the full potential of STM32 microcontrollers for your embedded design.
Most recent activity
I am working on a project to drive a door using a PMSM motor in position control mode.When I change the shunt resistor value in the Current Detection step of MCW, the overcurrent protection threshold remains fixed (7A) and does not update accordingly.When the shunt resistance value is modified, isn’t the overcurrent protection threshold expected to update too?Screenshots are attached.Thanks in advance for your help. Details:ST MCW Ver : 6.4.0STM32CubeIDE Ver : 1.19.0Driving algorithm : FOCControl board : Nucleo-G474REPower board : STEVAL-IHM023V3Bridge : X-NUCLEO-IHM09M2
Hello everyone, I am using a STM32H750xx custom board with TouchGFX 4.24.1 and IAR version 9.40.2. I have an external flash memory using QSPI with memory mapped mode. I am encountering an issue after a firmware update is done. Here it is what I have done: 1) My firmware version 1.0.0 has an icf file with read only data located at 0x90000000-0x900FFFFF and Image,text and font located at 0x90100000-0x903FFFFF (as TouchGFX 's documentation says, I am using those keywords section ExtFlashSection, section TextFlashSection , section FontFlashSection in order to put image, text and fonts in external flash memory). It looks like this: place in ROM_TGFX_region { readonly };place in QSPI_TGFX_region { first section ExtFlashSection, section TextFlashSection, section FontFlashSection }; where ROM_TGFX_region is from 0x90000000 - to 0x900FFFFF; QSPI_TGFX_region is from 0x90100000 - to 0x903FFFFF; if I do a
I followed the tutorial from this video: https://www.youtube.com/watch?v=6JPys9B497c to practice setting up BLE.However, after building the project I encountered the following error: crtn.o: missing C:/ST/STM32CubeIDE_1.19.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/bin/ld.exe: warning: C:/ST/STM32CubeIDE_1.19.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/thumb/v8-m.main+fp/hard/crtn.o: missing .note.GNU-stack section implies executable stackC:/ST/STM32CubeIDE_1.19.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/bin/ld.exe: NOTE: This behaviour is deprecated and will be removed in a fu
Dear ST Support Team and Community Experts,I'm developing a BLE application using the STM32WB55 Nucleo board (P-NUCLEO-WB55) and observed unexpectedly low data throughput, requesting guidance on optimization.1. Issue DescriptionCurrent Rate:Modified BLE_p2pServer example to send sensor data via P2PS_Send_notification() in a loop.Measured: ~4.5KB/s (7.5ms connection interval).Comparative Tests:Enabled L2CAP CoC in Data Throughput example (SW2 press): ~40KB/s (still below expectations).Competing device (nRF52840) achieves >100KB/s under identical conditions (2M PHY + DLE).Anomaly:No throughput improvement after forcing 2M PHY via aci_hal_set_phy_parameters().2. Test EnvironmentHardware: STM32WB55CGU6 (Nucleo-68 module).Software:Wireless Stack: v1.18.03 (FUS not upgraded).IDE: STM32CubeIDE v1.15.0.Configurations applied per AN5289 Rev 8 (Sections 7.8 & 8.6.9 for DLE/MTU/CoC).Connection Pa
I am currently using multiple STM32U5 series and STM32L4 series MCUs in a single system.I would like to share a single physical programming port (e.g., SWD or UART) among these MCUs and switch between them to program each one individually.I have already confirmed that ST-LINK cannot program multiple MCUs simultaneously.Based on this premise, is it possible to share a programming port between multiple MCUs and still program them individually?If it is possible, could you please advise on the method?Thank you in advance for your support.
The keil decentralized loading compilation has a warning and the generator bin cannot be run after downloading, and the generated gallery bin can be displayed after downloadingI don't know why the program bin file can't run after downloading with j flash, keil engineering direct download program can run,This is why the production code bin is not availablecode warningtouchgfx
I cannot find any timing requirements for SWDIO or SWCLK in the datasheet, STM32L433. Where can I find this information?I don't think there is any cause for concern since I am only connecting the STLINK. However, in mass production, the wiring tends to be longer and the waveforms tend to be smoothed out as a countermeasure against ringing. Therefore, I would like to check the timing constraints explicitly.Thank you
I have recently taken delviery of a custom board carring the SMT32WB5MMG SiP. This is the first time I have used this specific part in a custom design, but previously have been working with a SMT32WB55 development kit without any issues.In my design I have followed the guidelines in the datasheet to the best of my ability, supplying power to the SiP as shown in the reference schematics provided on page 14.I am trying to program the board via a SWD header (supplying 3V3 power to this header only), but have had difficulty connecting to the board with any combinaton of settings in STM32CubeProgrammer;The reference doesn't explicitly show how the SWD pins should be connected, but I assume a direct connection to the SWDIO and SWCLK pins would be sufficient. Please see my schematic for the controller below;Can someone please review my schematic and provide some advice on what might be going wrong here?Many thanks,Craig
Look at this beauty. In touchgfx\framework\include\touchgfx\hal\Types.hpp:static const float PI = 3.14159265358979323846f; ///< PIIn CMSIS-DSP\Include\dsp\fast_math_functions.h#ifndef PI #define PI 3.14159265358979f #endifFortunately, the conflict is caught at compile time.It’s an exceptionally rare situation when you might need something from TouchGFX (e.g., instrumentation) and CMSIS-DSP at the same time — but when it happens, you get this delightful collision.Just in case anyone is compiling a list of tricky interview questions.
i build a LCD display board with stm32L431 and 320*240 LCD and use touchGFX to develop UI, now i need control and select icon of LCD from external GPIO of STM32L431 , so, how to configure the touchGFX and concerned file ? anybody have similar program to refer ?
I am a new user looking to configure the STEVAL-IPM30B evaluation board to drive a three phase dc motor. I am uncertain which of the many STM32 boards I require. Also, what type of cable is needed to connect the two boards? My application requirements are basic on and off control of the motor at different speeds with open loop operation (I am using a three phase stepping motor).
I am attempting to use the X-CUBE-DISPLAY module generated from STM32CubeMX for a ST7789V display. The configuration requires the selection of the LCD BUS IO driver to be a SPI port in Full-Duplex Master mode. However my display only has a single SDA line for input and output, so the SPI has to be configured in Half-Duplex Master mode. X-CUBE-DISPLAY will not allow this SPI port to be selected, so the code generation fails.Is there a way for the X-CUBE-DISPLAY to work with a half-duplex SPI peripheral?
Hello I have a project that uses the STM32F429 chip.Used the ltdc peripheral and spi-dma peripheral,The data of ltdc and spi both come from sdram.For ltdc peripheral,Because I want to use double buffering,I must know when the frame has completed refreshing.i use LTDC Line Interrupt,like thisHAL_LTDC_ProgramLineEvent(&hltdc, VSW+LCD_HEIGHT+VBP);__HAL_LTDC_ENABLE_IT(&hltdc, LTDC_IT_LI);HAL_NVIC_SetPriority(LTDC_IRQn, 10, 0);HAL_NVIC_EnableIRQ(LTDC_IRQn);The interrupt service function is like thisvoid HAL_LTDC_LineEventCallback(LTDC_HandleTypeDef *hltdc){DebugLED1Toggle();HAL_LTDC_ProgramLineEvent(hltdc, VSW+LCD_HEIGHT+VBP);}The LED light is working properly and its frequency is 30Hz,However, the SPI5 DMA function is not functioning properly.// __HAL_LTDC_DISABLE_IT(&hltdc, LTDC_IT_LI);HAL_SPI_Receive_DMA(&hspi5,pBuffer,NumByteToRead);while(__HAL_DMA_GET_COUNTER(&hdma_spi5_rx)!=0){printf("%d ",__HAL_DMA_GET_COUNTER(&hdma_spi5_rx));} printf("\r\n");HA
Hello,I am experimenting on the STM32H45 Discovery Board (Dual Core) to use some GPIOs from different Core-Context.I initialized few Pins only for the CM7 and few dedicated pins only for the CM4. When I perform a debug session, all the mentioned pins are set to HIGH . I went trhough the internal registers and measured the values on the pins (3,3V). Everything seems to be ok.But when I do a power reset (USB cable off and on) and I measure again, I see that all the output pins wich are controlled by the CM4 are LOW. First I thought it is somehow connected to the synchronization process with the hardware semaphores (generated by MxCube), but I removed those parts in order to be sure I am not missing anyhting. The Power-Down call of the Domain2 on the CM4 at the beginning is commented out. But this doesn't solve the problem after a hardware resetWhy does this even happen? I mean the H7 architecture allows you to access most of the periphericals by CM4 and CM7. But this one seems to be stra
Hello. I have installed Touchgfx to Windows. Am I right that I am generating code with Touchgfx and them import that code to my project on my Mac to CubeIDE ? Or the final upload step is on Windows in the Designer ? Thank you Edit: Moved from old thread I am using cube ide on my Mac OS . how I can use touchgfx with cube ide on Mac OS
Hello everyone, I’m currently experiencing difficulties with setting up CAN communication on my STM32F4 microcontroller. Despite having configured the CAN interface and connecting it to a CAN transceiver, I observe no activity on my designated can_tx and can_rx pins. I have a second node connected for communication testing. /* USER CODE BEGIN Header */ /** ****************************************************************************** * @file : main.c * @brief : Main program body ****************************************************************************** * @attention * * Copyright (c) 2025 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
Moved from this thread. HiI'm experiencing the same issue that others have reported with the STM32H755ZIT6. Despite following all the suggested solutions step by step from various forum threads, I’m still unable to debug or run code on my Nucleo board. Every time I try, the board locks, and I have to manually erase the flash by wiring BOOT0 to VDD to recover it. I'm using the latest version of STM32CubeIDE, and I’ve attached some screenshots of my project setup for reference. I’d appreciate any guidance or additional suggestions you might have.
Hi everybody,I'm trying to set up a communication with a can bus.I'm using a STM32F446. I use PB12 & PB13 (CAN2). I can see RX frames on PB12.I'd like to read frames that I received by using interrupts.I've found this example : https://github.com/STMicroelectronics/STM32CubeL4/blob/master/Projects/STM32L476G-EVAL/Examples/CAN/CAN_Networking/Src/main.cBut, I have put a breakpoint on the interrupt, but it never goes in.static void MX_CAN2_Init(void) { /* USER CODE BEGIN CAN2_Init 0 */ CAN_FilterTypeDef sFilterConfig2; /* USER CODE END CAN2_Init 0 */ /* USER CODE BEGIN CAN2_Init 1 */ /* USER CODE END CAN2_Init 1 */ hcan2.Instance = CAN2; hcan2.Init.Prescaler = 12; hcan2.Init.Mode = CAN_MODE_NORMAL; hcan2.Init.SyncJumpWidth = CAN_SJW_1TQ; hcan2.Init.TimeSeg1 = CAN_BS1_8TQ; hcan2.Init.TimeSeg2 = CAN_BS2_6TQ; hcan2.Init.TimeTriggeredMode = DISABLE; hcan2.Init.AutoBusOff = DISABLE; hcan2.Init.AutoWakeUp = DISABLE; hcan2.Init.AutoRetransmission = DISABLE; hcan2.Init
Hi,couldn't find any STM32 dev kit that has DSI display interface and a demo where it plays video (or at least graphics) directly from SD card using DMA.Which ST dev kit does that? Thank you
Specifically, I require a timer for creating a clock to a peripheral. I chose PH5 (Timer12 Channel 2) because of the allocation capability in CubeMX, however, the datasheet for the STM32H757 does not show that as an alternate function.I have confirmed that both the CubeMX software and datasheets are the latest versions...My question is, which resource is correct and if the Alternate function is available for PH9, which AF code do I use? It is not listed anywhere.
Hello,I'm planning to use the STM32F413VGT3 in my project. It says it has three CAN buses. Can I use these three lines independently? Some of my research (ChatGPT) indicates that the third CAN line is not a standard CAN bus. I'd appreciate any clarification on this matter.Best regards.
Hello everyone,I want to understand to clear my mind about regenerative brake MC library. I dont have ossiloscope.Assume P-NUCLEO IHM03. I am using it with different motor with HALL sensors with load. in speed control -> MC_ProgramSpeedRampMotor1_F(targetspeed, rampduration); TO MC_ProgramSpeedRampMotor1_F(0, rampduration);Now we get energy from Motor to Battery, right?But because of no control of this energy, if Voltage is too high then can gives damage the battery.1-let me know. Can MC library observe the Voltage and if it is too high direct it to Motor coils to consume like low side pwm turn on( as much as I know in this case entire energy consumed in motor), or we gonna do it manual, if it manual how we gonna do that(function name?) 2- assume we have high power resistor parallel to VBus(as much as I know this resistor connect like that ?), In this case ,how we gonna direct the current to Resistor.(function name)Please make my mind clear abou
Hello,I am controlling my motor with the Hall effect sensor first. I am not using any auxiliary sensor. I am able to control my motor correctly, and I can visualize the angle from the Hall sensor. I need to evaluate the number of turns the motor makes and be able to reset this counter to zero at the start. Thank you.
I have been testing the USBPD firmware examples SNK1M1_Sink and DRP1M1_DRP (the board is the NUCLEO-G474RE). When a PD source is connected to the board running either example and then the board is reset, it will then renegotiate the contract with the source.I have my own project (STM32G0B1RE) with two ports, a UFP (sink) and a DRP (sink/source). When I connect a source to either port and then reset the board, it doesn't renegotiate the contract like the firmware examples. I need to get this behaviour so that the board will behave correctly if it has to reset.Can anyone help me to work out why? I have tried resetting the board with the debugger attached, and confirmed that USBPD_DPM_UserCableDetection() gets called with State=USBPD_CAD_EVENT_ATTACHED on the connected port after reset (so the source is detected).For now I am focussing only on the UFP, so please ignore any DRP/tcpp03 code below.Here are the parts that I've changed from the defaults. Please let me know if you need any
Hello,I am using an STM32F777 with FreeRTOS and LwIP. A web server is running in a task, which has been working so far.Now I have updated to the CubeF7 firmware package 1.17.3 and migrated the firmware. Now there are build errors. In STM32CubeMX, the LWIP_SOCKET entry is disabled. It can no longer be activated because, as I have discovered, the entry NO_SYS=OS Not Used is set, even though I am using FreeRTOS. This was activated previously with CubeF7 firmware 1.17.2. However, I can no longer activate it.How can I switch LwIP to OS and activate sockets?I would appreciate some help.
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.