Join conversations with your peers and ST experts. Explore the full potential of STM32 microcontrollers for your embedded design.
Most recent activity
Hi,MasterMCU: stm32h743iiQuestion:The scatter file is as follows: The stack and some global variables are allocated in RW_D2SRAM. After the program starts and during the handling of scatter file loading in its __main, it is found that both the stack push operation and the initialization of global variables are ineffective. The memory corresponding to RW_D2SRAM remains 0 all the time and cannot be modified. What is the reason for this? Is it necessary to enable a certain clock switch?LR_IROM1 0x08000000 0x00200000 { ; load region size_region ER_IROM1 0x08000000 0x00200000 { ; load address = execution address *.o (RESET, +First) *(InRoot$$Sections) *(_drv_set_) .ANY (+RO) .ANY (+XO) } RW_ITCM 0x00000000 0x00010000 { ; RW data *.o(fast.lv) } RW_IRAM2 0x24000000 0x00080000 { ; RW data .ANY (+RW +ZI) } RW_DTCM 0x20000000 0x00020000 { ; RW data *(dtcm_data) } RW_D2SRAM 0x30000000 0x00048000 { ; RW data .ANY (+RW +ZI) } RW_D3SRAM 0x38000000 0x00010000 { ; RW
I'm working with an STM32H735 Discovery board. I have DFSDM working via the STMOD+ connector. I'm currently designing a PCB that will plug into the Arduino header to better connectorize our PDM mics, add a few additional parts, etc. and move all DFSDM signals to PC0, PB14, and PC2 (on the Arduino header).But I've discovered that even though I can assign DFSDM1_CKOUT to pin PC2, I'm not seeing the clock signal. I can set the pin as a GPIO out and toggle it just fine, so I've verified it comes to the right pin on the Arduino header. PC2 drives the on-board user LED LD2. Is it the situation that the DFSDM peripheral can't drive the clock signal with the LED and 680R resistor pulling the line high? Thing is, the line stays low; I'd think in DFSDM mode it'd have trouble pulling the line low if it were a situation of the LED+resistor acting as a strong pull-up. I'd considered removing R143 or LD2, but the fact that the line stays low makes me think that's not the issue.
Hello :) i am working with a nucleo-h755zi.my goal is to create the following:1. M7 core running with FreeRTOS and LWIP.2. M4 Core running bare metal. after using the following instructions (https://community.st.com/t5/stm32-mcus/how-to-create-project-for-stm32h7-with-ethernet-and-lwip-stack/ta-p/49308#memory-layout ) i was able to achive (1).unfortenoutly it seems that while the M7 runs fine and i am able to ping it, the M4 Systick is not OK (uwTick is always 0), i also noticed that this problem is fixed when i disable M7 MPU defenitions.i suspect that the LWIP stack is somehow blocking or corrupting M4 Data. Please advise on how to resolve this, perhaps i am missing something? thanks for your help and responses in advance :)
Follow-on from STM32L433RCT6 - Which external interrupt GPIO pin can I used for wakeup ?I am using the STM32L433RCT6 with a WKUP pin (GPIO PC13) to wake the MCU from shutdown mode.Does it matter which edge I used (rising or falling) ?I am currently using a switch to ground (i.e. falling edge)... Also, once the MCU is awake and running, am I still able to read this pin as a digital input ?Because the switch will also be used to put the MCU back into standby, so I need to be able to monitor the state of the WJUP pin.
Hello, I am using a STM32H563ZI with an external PSRAM QSPI device, the APS6404L. I am using Quad-SPI through the OCTOSPI interface and have been successfully able to get into memory mapped mode. However, every time I go to read, I read out only 0 data. Has anyone ran into this same issue? I have pasted my code for transitioning the device to memory mapped mode and a subsequent test write/read. Thanks! 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(); MX_ICACHE_Init(); MX_OCTOSPI1_Init(); /* USER CODE BEGIN 2 */ /* USER CODE END 2 */ /* In
Anyone know exactly where I can find the source code for the demo project that is pre-loaded onto the STM32U5G9J-DK1 board? I've already got the STM32Cube_FW_U5_V1.8.0 and it has 2 DSI projects for the DK1 board (DSI_ULPM_DataClock and DSI_VideoMode_SingleBuffer) but neither appears to be the same as the demo.
We are using STM32H5 for a project with TouchGFX for its LCD UI design. We are using one font for English. This font does not support Chinese. How can I use multiple fonts, one font is for English and the other one is for Chinese in TouchGFX.
Split from STM32f407Vet6 gets stuck in MX_LWIP_Init(); Please provide full details of your setup, what debugging you've done so far, etc - see How to write your question to maximize your chances to find a solution Did you find what was causing this? I am having the same issue it would seem.
I have an STM32CubeIDE project using HAL for a STM32G071RBT6I have Port D bits 0 to 6 set up for GPIO Input, with pull-up enabled.In hardware these are connected to an 8-WAY dip switch, which when each switch is "on" connects the respective pin to GND. (PB3[STOPBITS] is connected to the 8th switch) The issue is that when I read the port usingid = (GPIOD->IDR & 0x7F); /* Lowest 7-bits are from PORT D0-D6 */Bits 0 and 2 are always stuck at 0.With the board powerd off I have tested the board connctions to the chip and the dip switch, all seems OK. There is no short to GND on bits 0 and 2.I checked the resistance on all the bits of port D and bits 0 and 2 have about 500KΩ to ground, whereas the rest of port D has about 7 MΩI have checked through the rest of my code and it's not doing anything else to PORT D, and the alternate-function registers (PORTD->AFR) read all zero immediately before reading from the IDR.I have five of these boards, all made by JLCPCB (including assemb
Good morning, I made a project using stm32f407vet6, configuring the stm32f407vet6 to use ethernet network without freertos, I can ping it and it responds immediately, follow the code:#include "main.h"#include "lwip.h"void SystemClock_Config(void);static void MX_GPIO_Init(void);static void MX_RTC_Init(void);/* USER CODE BEGIN 0 */extern struct netif gnetif;struct pbuf *p;/* USER CODE END 0 *//*** @brief The application entry point.* @retval int*/int main(void){HAL_Init();SystemClock_Config();MX_GPIO_Init(); MX_LWIP_Init();MX_RTC_Init();while (1){ethernet_input(p, &gnetif);sys_check_timeouts();}/* USER CODE END 3 */}but now I want to use freertos and have a UDp server, but when configuring freertos, stm32f407vet6 gets stuck inside MX_LWIP_Init();, the firmware version for STmf4 is 1.28.1, here is the code:#include "main.h"#include "cmsis_os.h"#include "lwip.h"osThreadId_t defaultTaskHandle; const osThreadAttr_t defaultTask_attributes = {.name = "defaultTask",.stack_size = 128 *
Hello All,I'm using VNH707AY motor driver to drive 2 motors separately i want to interface with my STM32Can anyone share the schematic or references for the same which can help me in this.Thanks & Best Regards,Sakshi
I'm programming one of the dual-core STM32s (the STM32H747IGT6) and running into a situation where the CM4 is much slower than I need it to be, and I'm trying to figure out why. I'm using this short piece of code as my test bed: __COMPILER_BARRIER(); start_timer = TIM5->CNT; if ( (loopState == WaitingToStoreValues) && (i < last_i) ) { num_data = 0; loopState = StoringValues; } end_timer = TIM5->CNT; __COMPILER_BARRIER(); start_timer, loopState, i, last_i, and num_data are all stack variables, and TIM5 is set to run at full speed (240 MHz) so it ticks once every 4.1666 nsec. The conditions in the 'if' statement are rarely met, and when I run this code a gazillion times the delta is 56 ticks 99% of the time so I'm assuming that's the "condition not met" situation. The rest of the time the delta is anywhere from 18 to 84 ticks. I tried bracketing with __disable_irq/__enable_irq and it made no difference, so it's not IRQs causing the slowdow
Hello,I have a custom Board based on the evspin32g4 dual, what Values should i put in "Charge Boot Capacitor Time" and "Charge Boot Capacitor Duty" in the motor control workbench?
Hi,I'm trying to get a stm32u073 to wake up from stop mode using an RTC alarm. I previously did the same on a stm32f103 which seemed to work just fine. When trying the same on the stm32u073 the controller either doesn't wake up or wakes up every second depending on which mode is used for the RTC (BCD or binary).In binary mode the controller wakes up every second not using the set time for the alarm, in bcd mode it doesn't wake up at all.Is there something that has to be done differently when using the stm32u73? Or does anyone have a working example for waking up the stm32u073 from stop mode using an RTC alarm?
The single-resistance mode of the current sensor can generate successfully, while the three-resistance mode fails to generate Software version:MCSDK 6.4.0 CUBEMX 6.14.1CUBEFW 1.28.2 log2025-07-04 10:29:20,884 DEBUG [WB_to_MX.lambda$run_gui_mode$0] Arguments: [-mx_timeout, -1, -pack, assets/MotorControlPack/MotorControl.zip, -exp, templates/wb-defines_where_and_what.txt, -ftl, templates/wb_ioc_template.ftl, -xdm, F:\06.Code\FOC\STMC2M\STMC2M.wbdef, -ioc, F:\06.Code\FOC\STMC2M\STMC2M.ioc] 2025-07-04 10:29:20,885 DEBUG [ArgsValue.lambda$retrieve$2] CLI_ARG[ftl]: templates/wb_ioc_template.ftl 2025-07-04 10:29:20,885 DEBUG [ArgsValue.lambda$retrieve$2] CLI_ARG[exp]: templates/wb-defines_where_and_what.txt 2025-07-04 10:29:20,885 DEBUG [ArgsValue.lambda$retrieve$2] CLI_ARG[xdm]: F:\06.Code\FOC\STMC2M\STMC2M.wbdef 2025-07-04 10:29:20,886 DEBUG [ArgsValue.lambda$retrieve$2] CLI_ARG[ioc]: F:\06.Code\FOC\STMC2M\STMC2M.ioc 2025-07-04 10:29:20,887 DEBUG [ArgsValue.lambda$retri
Hello,It seems to me that the wiki page: https://wiki.stmicroelectronics.cn/stm32mcu/wiki/Security:Secure_storage-SAES_key_wrapping_for_STM32N6 is unavailable as I get the message: "Page not found".I tried searching for it, to no avail. Is the related information present somewhere else?Thank you for your time,kradzphsys
I have started for integration of NUCLEO-L476RG board with X-NUCLEO-IKS02A1 expansion board for getting live values from the accelerometer, magnetometer and gyroscope.Started from creating a project on STM32CubeIDE then selected X-CUBE-MEMS1 package, selected Board Extension IKS02A1, motion fusion library, gyroscope calibration, accelerometer calibration and magnetometer calibration libraries.Also, enabled the CRC, SPI, I2C, USART in the configurations. When generated the code, motion_fx.h file generated.So further I want to know what else libraries or header files I need to acheive my final goal, to get tje yaw, pitch, roll values when the board is tilted or moved or to calibrate them.
Hi team,I had made project on Motor control workbench in 5.4.8 where i get serial communication to check the parameter.if i work on 5.Y.4 where serial port is not active, then how to activate the serial port in 5.Y.4?if i import the 5.4.8 project in 5.Y.4 then the API is not matched. if i maually type the code in IDE then also 5.4.8 & 5.Y.4 parameters may changed.can i use same drive_parameters.h and pmsm_parameters.h in 5.Y.4 ? observer & PLL?The API is same for 5.4.8 & 5.Y.4 or different? if different then what to do to checkIf i run the motor in 5.4.8 with same parameter with the debugger in IDE, then debugger gets disconnected and i cannot debug the fault.Please help into thisRegards,Amol S.Email ID : amol.shinde@aplosventures.com
Hi, I got a Steval-ctm010v1 board and using sdk 5.4.8. I have tried to enable its PFC section with eliminating the warning from xml file at the sdk file location. It enabled the PFC in the motor workbench and it shows that pins are assigned at the motor workbench. But After generating the code, the pins aren’t assigned in Stm32cube MX so the PFC isn’t enabled in practice and it just generates the PFC codes (pfc.c and etc…) to be used in the main code. How can I enable PFC the right way? any Help would be appreciated.
I have solved the problem, but I want to know the root cause so I can solve this perfectly.I use STM32C071FBP6. Because STM32CubeIDE won't generate classic CDC VCP anymore, I use STMicroelectronics/stm32c0-classic-coremw-apps: Provides a set of applications for STM32C0xx series based on the STM32 Classic Core Middleware libraries.The problem occurs on both Arduino Serial Monitor and python, but I will mainly use Arduino Serial Monitor here. The problem occurs if SYSCLK is 12Mhz while USB use HSIUSB48. Changing SYSCLK to HSIUSB48 solved the problem.The STM32C071, when configured as a USB CDC Virtual COM Port, exhibits a "ghosting" issue characterized by the device repeatedly transmitting old or zero-length data packets. This problem manifests randomly each time the USB device is enumerated (i.e., when connected to a host or after a software reset).If the STM32 is first boot (no last packet) TxPctSize is 608 until a packet is sent, after that, TxPctSize is equal to last packet
I'm building a USB Audio Class 1.0 full-speed microphone on an STM32L4 (HSI48+CRS clock) using ST's USBD stack. So far I'm just streaming a 1 kHz test tone in 48 kHz/16-bit.Platform support I need - macOS: must use explicit or implicit feedback (Adaptive isn't supported on IN)- Android: restricted to UAC1.0 support which is essential for me so UAC2.0 is out of the question- Linux: adaptive works fine, explicit does not yet work for me- Windows: what's supported here?Hardware & clock- USB FS off HSI48 with CRS locked to SOF- SOF interrupts enabled- ADC sampling not in use yet (sine is generated and sent in `USBD_AUDIO_DataIn` callback)hpcd_USB_FS.Init.Sof_enable = ENABLE;DescriptorsConfiguration Descriptor: bLength 9 bDescriptorType 2 wTotalLength 0x007e bNumInterfaces 2 bConfigurationValue 1 iConfiguration 0 bmAttributes 0xa0 (Bus Powered) Remote Wakeup MaxPower 100mA Interface Association: bLength 8 bDescriptorType 11 bFirstInterface 0 bInterfaceCount 2 bFunc
I am receiving errors such as 'HAL_StatusTypeDef' does not name a type; did you mean 'NOR_StatusTypedef'?' and 'HAL_LockTypeDef' does not name a type' in my files in STM32F4xx_HAL_Driver/Inc . i create project automatically with stm32CubeIDE. What causes these errors?Thanks
I use STM32F767NIH6.I save data to AT24CM02-SSHD with I2C.However, I divide it into several areas and save the necessary data.For example, I save data such as setting values, measurement values, etc. separately.However, when saving data in some areas, it is not saved properly, and an ERROR occurs in the code and it is passed to Serial communication.I need help to solve this problem.+I checked while testing and found thatWriting to the first page (Device Address Byte's A17, A16 are 0,0) works normally.However, when writing data to another page, an error code is output from the code.However, the symptom that is confirmed at the same time is that when writing to the first page, both the clock signal and the data signal are confirmed when measuring SDA and SCL with an oscilloscope. However, when writing to another page, SDA only maintains a HIGH state and SCL only maintains a LOW state.
Hi,I'm currently developing on the STM32H743ZI microcontroller and have successfully implemented secure boot using the X-CUBE-SBSFU package. Now, I want to update the ECC public key at runtime on the device.While reviewing the Getting Started with the X-CUBE-SBSFU user manual, I came across a section mentioning that an updatable key with a static ID can be securely updated using the KMS (Key Management Services) and a specific encrypted format. However, I'm having trouble locating the KMS example project and the tool required to generate the encrypted key blob for this process—especially for devices running at RDP Level 1. Additionally, I would like to understand the debug access limitations:Can I still access the device via JTAG when SBSFU is enabled, and the device is set to RDP Level 1 or Level 2?Regards,Manoj
i m using customized stspin32g4ACT board , nd version of work bench m using is 6.3.1 but when i try to generate code there is motor profiler option is disable although m using stm32ide 1.17.0 when i upload code for led blink using pc14 it turn but don't blink but when m upload code through Arduino it blink very good pc14 and pc13 both in st32ide it does not blink show suggest me where i lacking motor m using is 2 pole hall sensor code is blow , i m new to workbench so pls guys guide me nd this is disable motor profiler image
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.