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
Is there anyway to increase the size of the icons in the top menu bar in the IDE?I am 70 now and my eyesight needs a wake-up here :)
Hi All,I've just been watching an ST tutorial video on how to implement bare-metal Device CDC USB on an STM32U3.During the video, the lecturer says that the code is available within the workshop download. No link is provided to the workshop code....Does anyone know where I can find it? This is the video in question : https://youtu.be/m8ph9JIY5QE?list=PLTJzs51NlEIAHFfePhKJPsnWvT5XidJuU&t=1164Any help would be appreciated.CheersMichael
Hello ,I am working on a project with the STM32L562CET6 microcontroller and have encountered an issue with the timer interrupt callback function. 1. I configured TIM6 as the clock source for the microcontroller. Consequently, the HAL_TIM_PeriodElapsedCallback() function is automatically triggered whenever the TIM6 interrupt occurs. 2. Now, I have configured TIM2 for a different purpose, but I noticed that when the TIM2 interrupt occurs, the same HAL_TIM_PeriodElapsedCallback() is triggered.Since the HAL_TIM_PeriodElapsedCallback() is defined with the weak attribute, I understand that I can redefine it in my user code. However, this causes conflicts when multiple timers (like TIM6 and TIM2) trigger this callback.Questions: 1. Is there a way to alias or redirect the HAL_TIM_PeriodElapsedCallback() to separate functions for different timers (e.g., one for TIM6 and another for TIM2)? 2. Is there any other specific callback function available for timers i
Hi All, I want to do something very basic, but somehow cannot manage to do it. What happens if you have a PWM signal on an IO Pin, generated by a timer, and you disable the timer? What happens to the physical IO Pin ? Is it stuck at the state where it was when you disabled it ?, Does it go Low ? Or High. The Idle state of the Timer is Low, and the On state High. Thanks, DJ
I am trying to learn how to program a STM32 micro-controller, specifically a STM32C593. The thing is according to its datasheet it has Ethernet functionality, bit it is missing in the peripheral list inside STM32CUBEMX2 IDE.
Hello ST Community team,I would like to report a possible inconsistency in the STM32 MCU Portfolio Selector regarding Ethernet filtering for the STM32C5 series.While selecting MCUs using the Portfolio Selector, I filtered devices through:- EthernetThe reference STM32C593CET6 appears as supporting Ethernet functionality. However, according to DS15136 (Table 1), this specific MCU does not include the Ethernet peripheral.This may create confusion for developers, especially since the STM32C5 family is still relatively new and many users rely on the Portfolio Selector during early device selection.Could you please review and correct this behavior.Ps: more details available on this post. Best Regards.II
Hello!I am having trouble verifying NPU operation on the NUCLEO-N657X0-Q board.I am trying to test a simple INT8 FNN (Feed-Forward Neural Network) using an ONNX model. The project was generated via X-CUBE-AI within CubeMX. I have configured the AXI and Clock settings (CPU: 600MHz, NPU: 800MHz, NPU AXI: 800MHz) and, given the model's simplicity, I set it to use internal SRAM only.While the code execution seems to flow correctly without errors, I noticed that the output values are not being updated. The output buffer remains unchanged, or in some cases, still holds values that look like the input data. It seems the NPU's computation results are not being written back to the memory correctly.I would greatly appreciate any advice or suggestions, even if they aren't complete solutions!Environment Versions:CubeIDE: 2.1.1CubeMX: 6.16.1CubeProgrammer: 2.22.0ST Edge AI: 4.0ST-LINK: V3J17M10I have attached one of the project files I’ve been testing for your reference. Thank you always for your s
Hello everyone,I am currently working with the Aliro software expansion for STM32Cube using the new STEVAL-ALOCKCB board (Aliro access control reference design based on STM32WBA65RI, ST25R300, and STSAFE-A120).Both the hardware and software are in their original, unmodified state from ST. The nfc12ble project builds successfully without any issues.However, I am encountering a consistent problem:the function CryptoInit() always returns false.From debugging, I can see that the failure originates from the CheckReaderPubK() function, which internally calls isValidProvisioning(). This function also returns false, causing the entire initialization to fail.It seems that the provisioning structure is not considered valid. In particular:The check prov->isValid == DEVICE_PROVISIONING_STRUCT_IS_VALID fails.DEVICE_PROVISIONING_STRUCT_IS_VALID is defined as 0xA5A55A5A (decimal: 2779077210).However, the actual value read from flash appears to be different (e.g., 0xFFFFFFFF), which suggests that t
Dear STMicroelectronics Community / Support Team,I hope you are doing well.I am currently working with the STM32N6 Discovery Kit and noticed that it uses an external Octal NOR flash device with the part number MX66UW1G45G. However, I have been unable to locate a public datasheet for this exact component.I was able to find datasheets for similar parts such as MX66U1G45G and MX66UM1G45G, but not for the “UW” variant used on the board. This has led to some confusion regarding the exact specifications, supported features, and command set of the device.I would appreciate your guidance on the following points:Is MX66UW1G45G a custom or internal part number used specifically for STM32 evaluation boards?Is there a publicly available datasheet for this device, or can it be shared upon request?Can MX66UM1G45G (or another publicly documented part) be considered a fully compatible equivalent for development purposes?Are there any specific differences (e.g., command set, timing, interface behavior)
Hello, I am working on an SNMP implementation using STM32H753ZI with the LwIP Ethernet stack. Currently, SNMP v1 is working successfully, including trap generation and reception testing using Net-SNMP tools. I am able to send enterprise-specific traps from the STM32 device. Below is the trap code currently working for SNMP v1: void send_temp_fault_trap(void) { static const u32_t enterprise_oid_arr[] = {1,3,6,1,4,1,50598}; struct snmp_obj_id enterprise_oid; enterprise_oid.len = LWIP_ARRAYSIZE(enterprise_oid_arr); memcpy(enterprise_oid.id,enterprise_oid_arr,sizeof(enterprise_oid_arr)); ip_addr_t dst; IP4_ADDR(&dst, 192,168,0,255); snmp_trap_dst_ip_set(0, &dst); snmp_trap_dst_enable(0, 1); static const u32_t msg_oid_arr[] = { 1,3,6,1,4,1,50898,10 }; static struct snmp_varbind vb; static struct snmp_obj_id msg_oid; static char msg[] = "System Working"; msg_oid.len = LWIP_ARRAYSIZE(msg_oid_arr); memcpy(msg_oid.id,msg_oid_arr,sizeof(msg_oid_arr)); vb.next = NULL
Hello everyone,I have encountered a strange issue with my UART transmission function on an STM32 microcontroller operating in Half-Duplex Open-Drain mode.Currently, the function works perfectly fine without checking the TC flag. However, when I add a check to wait for the transmission completion at the end of the function, my logic analyzer shows completely garbled bytes (corrupted data).Here is the code that works perfectly (without the TC check):void send_array(uint8_t *arr, uint8_t size) { /* Receiver disable */ USART3->CR1 &= ~(CR1_RE); for (int i = 0; i < size; i++) { /* Wait until Transmit data register is empty */ while(!(USART3->SR & SR_TXE)){} /* Send byte */ USART3->DR = arr[i]; } /* Receiver enable */ USART3->CR1 |= CR1_RE; }And here is the modification that breaks the transmission and leads to garbled bytes on the analyzer:void send_array(uint8_t *arr, uint8_t size) { /* Receiver disable */ USART3->CR1 &= ~(CR1_RE); for (int i
Hi,I am using the STM32F407VET6 chip to simulate the SENT protocol. I have encountered some issues and would appreciate it if professionals in the forum could provide some answers.1.Since the SENT protocol signal needs to change the output waveform based on the transmitted data, I attempted to use the TIM BURST feature of the chip to simulate the SENT signal. I am configuring it using STM32CubeMX software. Below are the relevant configurations: 2.The SENT protocol specifies that one tick is 3μs to 10μs. I initially set the PWM to a period of 3μs with a 50% duty cycle square wave and output it. Since I am not very familiar with the TIM BURST feature, I first used the HAL_TIM_DMABurst_WriteStart() function to attempt to modify the waveform originally output by the chip. I plan to change the waveform to the synchronization signal in the SENT protocol, which involves outputting 5 ticks of low-level signal and 51 ticks of high-level signal.Initial PWM output waveform:The de
Hi,Im using the IDe but today the software do nothing.I cant compile the project or create a new project or debug and when i want close the program, the cubeide not respond and ill have close using the task manager.Yesterday works fine and i dont make changes on my computer.Any suggestion about what can i do?Thanks!
HelloI am developing a custom board using the STM32MP255F-AKUpdates to the DeviceTree (DT) of a custom board placed in the `mata` layer are not reflected in the build.I have already fetched the source using `devtool modify virtual/kernel`The Device Tree for the custom board is located at .../layers/meta-st/meta-st-stm32mp-addons/mx/ddlskt/..Edit the kernel's DT (stm32mp255f-ddlskt-mx.dts)Add a marker to `model = “...”`: `model=“... AAA”`I tried building it$ bitbake virtual/kernelWrote Image.gz, *.dtb, and modules to the SD card and booted(brd-ddlskt) # cat /proc/device-tree/modelSTMicroelectronics custom STM32CubeMX board - openstlinux-6.6-yocto-scarthgap-mpu-v24.11.06AAA has not been added to the modelRunning `cleansstate` before building will reflect the updated device tree$ bitbake -c cleansstate virtual/kernel$ bitbake virtual/kernelWrite Image.gz, *.dtb, and modules to the SD card and boot(brd-ddlskt) # cat /proc/device-tree/modelSTMicroelectronics custom STM32CubeMX board - opens
(official project, W61 firmware updated, full setup completed) **[BUG/HELP] X-CUBE-ST67W61 V1.2.0 — sem_if_ready not received on NUCLEO-N657X0-Q after complete setup**---**Hardware:**- NUCLEO-N657X0-Q (MB1940)- X-NUCLEO-67W61M1 (MB2230)- JP1 and JP2 closed, Arduino connectors fully seated**Software:**- STM32CubeIDE 1.16.x- X-CUBE-ST67W61 V1.2.0- X-CUBE-FREERTOS V1.4.0- STM32CubeProgrammer v2.22.0- Project: ST67W6X_Echo for NUCLEO-N657X0-Q (official, unmodified)---**Setup completed (all steps verified):**1. W61 firmware updated to st67w611m_mission_t01_v2.0.97 using QConn_Flash_Cmd via COM port — [All Success] with SHA256 match2. FSBL compiled from official project (0 errors, 0 warnings), signed with STM32_SigningTool_CLI --align (v2.22.0), flashed to 0x70000000 and verified successfully3. OTP word 124 programmed to 0x00018000 (HSLV_VDDIO2 + HSLV_VDDIO3)4. Boot switches in flash boot mode (BOOT0: 1-2, BOOT1: 1-2)5. eraTerm on STLink VCP, 921600 baud---**Terminal output (always the
我正在写BootLoader的程序,我想要实现IAP,我目前编译后生成的.bin文件大小为18kb(之后代码多了还会再增加),但是我APPUP区空间为248KB,我的配置为: Translation (by google translator): "I'm writing a BootLoader program and I want to implement In-App Access (IAP). The .bin file I'm currently compiling is 18kb in size (and will increase as the code grows), but my app upload space is 248KB. My configuration is..." 我想要实现生成的.bin文件为248kb,不够的地方自动填充,我的生成.bin的指令如下 "I want to generate a .bin file that is 248kb in size, with automatic padding if necessary. My command to generate the .bin file is as follows:" 我的编译器版本为: "My compiler version is:" keil5版本为:5.38.0.0 "The Keil 5 version is 5.38.0.0."
Hello, I am looking to use the LSM6DS032 accelerometer + gyroscope in a project, I intend to interface it with an MCU via I2C. I am wondering if it is possible to program the embedded finite state machines in the accelerometer using only I2C and writing to registers, and if there are any guides or application notes on how this can be done?
Dear all, when I press Install button in the Toolchain Manager of the 1.17.0 CubeIDE it hangs after opening the subsequent dialog. I cannot close this dialog with neither mouse nor ESC key, need to terminate the task. Regards,Dmitry
Hello,I've been adapting the DRP1M1 USB-PD DRP reference design for use on a custom STM32U5A9 Board, and have run into an issue where it seems like ST's compiled USBPD library just stalls during negotiation as a SRC device.Hardware: STM32U5A9, custom board with TCPP03-M20Library: USBPDCORE_PD3_FULL_CM33_wc32.aConfiguration: DRP, PD3.0## ProblemOperating as SRC, the PE state machine sends ACCEPT in response to a REQUEST but never advances to PE_SRC_TRANSITION_SUPPLY. PS_RDY is never sent and the port partner eventually triggers a hard reset.## What We Have Verified**Protocol layer is working correctly:**- SOURCE_CAPABILITIES sent and GOODCRC received- REQUEST received and GOODCRC sent- ACCEPT sent and GOODCRC received- All confirmed on protocol analyzer**All DPM callbacks returning correct values:**- USBPD_DPM_EvaluateRequest() returns USBPD_ACCEPT (verified via debugger)- USBPD_PWR_IF_GetVBUSStatus(USBPD_PWR_VSAFE5V) returns USBPD_TRUE (VBUS at ~4.8V, threshold 4750mV)- USBPD_DPM_SetDa
Title edited to clarify that the "onboard PHY" refers to a Nucleo-H753ZIi have may issues related to implement the ethernet on stm32h753zi mcu like i am not able properly configure the mpu regions and linker script and its ethernet.c file ...and also have issue related to ping the static ip...if any supporting link related to this issue can be provided..that might be helpful
What is the recommended procedure for adding source files (e.g. source1.c and source1.h) to a STM32CubeIDE project generated by TouchGFX? I assume I add them to one of the 'Core' directories, but I see multiple Core directories (root\STM32CubeIDE\CM7\Application\User\Core and root\CM7\Core). I see that adding my .h manually to root\CM7\Core\Inc works fine for the .h, but the IDE doesn't automatically pick up the .c if I place it in the corresponding root\CM7\Core\Src. If I place the .c in root\STM32CubeIDE\CM7\Application\User\Core, the .c file is accessible via the IDE, but the .h file is not found during compile.What is the proper procedure for adding new user C source files? My STM32CubeIDE is 2.1.1 and TouchGFX is 4.26.1. I'm targeting a Riverdi board with a STM32H7.
Hello everyone,I'm working with the LIS2MDL sensor (steval_mki181v1) , i made a connection between it and the nrf5340 and I configured it over I2C with pull-up resistors enabled.-VDD -- > VDD-VDDio --> VDD-CS --> VDD -PIN I2C :: SCL to SCL et SDA to SDA-GND t GNDCurrent configuration:I2C communication working (i got the chip id 0x40)Block Data Update (BDU) enabledOutput Data Rate tested at 10 Hz or50 HzOffset cancellation enabledContinuous mode enabledI applied the offset XYZ as :: int16_t mag_offset[3] = {0xF500, /* OFFSET_X_REG */0xF800, /* OFFSET_Y_REG */0xF400, /* OFFSET_Z_REG */};However, I noticed that the values I read from the sensor remain almost always the same and do not update as expected, as shown in the photo below.Could anyone help me understand what might be causing this issue or guide me on how to troubleshoot it?Any help would be greatly appreciated. Thank you!
ObjectiveSign STM32MP23 firmware using AWS KMS ECDSA P-256 keys instead of local private keys, to enable cloud-based signing workflow.Hardware: STM32MP23 seriesHeader Version: 0x00020200 (v2.2.0)Signing Algorithm: ECDSA_SHA_256 (P-256 NIST / secp256r1)Development and Issues summary as followsWe have followed following ways to sign binaries externallyUsing external HSM - SoftHSMThis method shows the exact same issue mentioned in community threadError: Invalid Header version valueHeader v2.2 accepts 8 public keysIf we skip the header version argument, the signing tool fails with CKR_OBJECT_HANDLE_INVALID error.Using PKCS#11 solution along with aws-kms-pkcs11With this method too, we face similar errors as mentioned in #1. With header version 2.2 argument, it gives Invalid header errorIf we skip the header version argument, the signing tool fails with CKR_OBJECT_HANDLE_INVALID error.Developed a custom signing script (Compatible with the STM32 Signing workflow)Firmware s
Hello,I use last version of CubeIDE 1.15.1CubeMX proposes in tools a CAD tab, that allows to export symbols and footprints for the different EDA packages (ex KiCAD).I use CubeIDE for my projects. In "Tools", there is a "CAD" sub-tab. But it leads to a white page.Is there a specfic installation needed to have the CAD functionnality in CubeIDE (as exists in CubeMX)?Best regards,JMF
Hello,I’m working on a project generated by STM32Cube AI Studio targeting the NUCLEO-N657X0-Q, using an XIP configuration with external XSPI flash ( It was said in another post that the generated projects from STM cube AI Studio follow XIP configuration).SetupBoard: STM32N657X0-QToolchain: STM32CubeIDE(2.1.1) + STM32CubeProgrammer(2.22.0)Project generated with STM32Cube AI StudioExecution mode: XIP (application in external flash)Runtime: Bare metal (LL_ATON_OSAL_BARE_METAL)Memory mappingModel location (from generated network.c):.addr_base = (unsigned char *)(0x71000000UL)Programming stepsI programmed manually using STM32CubeProgrammer:second_Appli.elf network_atonbuf.xSPI2.bin → placed at 0x71000000Debug configuration (FSBL project)I start debugging from the FSBL project.In Debug Configuration → Startup → Load Image and Symbols, I configured:second_Appli.elfDownload = OFF (already flashed manually)Load symbols = ONSo FSBL is loaded/debugged, while App and model are already p
Already have an account? Login
Enter your E-mail address. We'll send you an e-mail with instructions to reset your password.