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
I'm using STM32CubeMX 6.17.0 with NUCLEO-U575ZI-Q, it generated the following code:/* Initialize COM1 port (115200, 8 bits (7-bit data + 1 stop bit), no parity */ BspCOMInit.BaudRate = 115200; BspCOMInit.WordLength = COM_WORDLENGTH_8B; BspCOMInit.StopBits = COM_STOPBITS_1; BspCOMInit.Parity = COM_PARITY_NONE; BspCOMInit.HwFlowCtl = COM_HWCONTROL_NONE;The comment is wrong, the UART has 8 bits of data instead of 7 bits.
Hello,When I try to import the sample project “OEMiROT_Boot”, I get exit code 255. Error:2026-05-20 15:46:46.511 [Error] [ide-project-convert] ENOENT: no such file or directory, copyfile 'C:\Users\devst\STM32Cube\Repository\STM32Cube_FW_H7RS_V1.3.0\Projects\NUCLEO-H7S3L8\Applications\ROT\OEMiROT_Boot\STM32CubeIDE\utput.ld' -> 'd:\Projekte\Test\test\NUCLEO-H7S3L8_OEMiROT_Boot\utput.ld'2026-05-20 15:46:46.567 [Error] [ide-project-convert]: Project conversion failed with exit code: 255.It must also be possible to convert projects with multiple contexts and multi-core support, This must be made a priority
I am running the Analog Devices EVAL-ADE9430 board and noticed if I enable CRC checking reading 32 bit registers fail while 16-bit registers always pass. I trace it down to the AFERead16BitBuffer() function not returning a status after reading the register over the SPI bus. This allows 16 bit register reads to work all the time while 32 Bit registers fail all the time (that's another story). See line 12 below: HAL_SPI_Receive(&hSPI, (uint8_t *)&pData[0], 2 * numSamples, SPI_TIMEOUT); uint32_t AFERead16BitBuffer(uint16_t addr, uint16_t numSamples, uint16_t *pData) { int32_t status = SYS_STATUS_SUCCESS; cmdBuffer[0] = (addr >> 4); cmdBuffer[1] = ((addr & 0x0F) << 4) + 8; HAL_GPIO_WritePin(GPIOD, GPIO_PIN_14, GPIO_PIN_RESET); status = HAL_SPI_Transmit(&hSPI, (uint8_t *)&cmdBuffer, 2, SPI_TIMEOUT); if (status == 0) { HAL_SPI_Receive(&hSPI, (uint8_t *)&pData[0], 2 * numSamples, SPI_TIMEOUT); } HAL_GPI
STM32N6 Nucleo boardCubeMX V6.17.0CubeIDE V 2.2.1Hi,First of all, disclaimer: I don't know the toolset or the STM32N6 very well, so I'm trying to get up to speed. There are some really good tutorials posted here which have helped me greatly, but I can't find a really good description of how to debug a FSBL_RUNL application on the N6. Given that some of the initialisation is performed by the FSBL, I wanted to download both FSBL and Appli in a single debug session, set breakpoints in both and run through FSBL into Appli. I can do it, but it currently consists of a hack:When 'DEBUG' is defined, extern 'BOOTStatus_TypeDef JumpToApplication(void);' in my FSBL 'main()' and call it instead of 'BOOT_Application()'. It works as long as the Destination Address is set to base address 0x24000000 in CubeMX, otherwise, the vector table address is incorrect (Not sure why the Unsecured Alias is used?) and any checks on Flash are turned off. It is a hack because 'JumpToApplication()' clearly isn'
Hello, I wrote a project maybe 2 weeks ago, at that time, everything was ok. then i used stlink to download and debug the code yesterday, at first time, it worked ok, but later, i did download and debug again with stlink. it cannot work. the log as below.my setting as below:so what is the problem? how to fix it?thanks.
Hi, I'm developing a board to control motors using FOC. For this, I will use the MC workbench tool to generate the code. However, when I describe the hardware in the shunt resistors section, there is no "in-line" option, only the low-side option, but my board only has them in-line and I can no longer modify it. What can I do in the code to be able to use the shunt resistors in this way?
Hi everyone,I wanted to share a project I’ve been building over the last few years. It’s called Mk, an operating system built entirely from scratch for the STM32F746G-DISCO and STM32F746G-Eval2 boards.These boards are powered by an ARM Cortex-M7 running at 216MHz. Initially, my goal was just to implement a small scheduler, but I stacked layers one after another to make it as complete as possible. Currently, I think I've added enough layers to claim it as a functional, lightweight OS.Mk features:A KernelPreemptive, priority-based multitasking scheduler (fixed-priority, O(1) selection via hardware CLZ instruction) Trusted Execution Environment (TEE) using the Cortex-M7 MPU (privileged and unprivileged mode isolation) Synchronization primitives: mutex, semaphore, event flags, mailbox Fixed-size memory pools Synchronous and asynchronous callback execution systemA Dynamic ELF Loader Mk can load and execute external .elf binaries at runtime, relocated dynamically into 64 KB pages of the ext
Hello, I am working on I3C private transfers. When I build the context buffer with HAL_I3C_CTRL_BuildTransferCtxPrivate I get an assert when IS_I3C_PRIVATE_MODE is checked against HAL_I3C_PRIVATE_WITH_ARB_RESTART. Is the exclusion of HAL_I3C_PRIVATE_WITH_ARB_RESTART from the macro below intentional? stm32c5xx_hal_i3c.c: line 574 #define IS_I3C_PRIVATE_MODE(MODE) (((MODE) == HAL_I3C_PRIVATE_WITH_ARB_STOP) \ || ((MODE) == HAL_I3C_PRIVATE_WITHOUT_ARB_RESTART) \ || ((MODE) == HAL_I3C_PRIVATE_WITHOUT_ARB_STOP) \ || ((MODE) == HAL_I2C_PRIVATE_WITH_ARB_RESTART) \ || ((MODE) == HAL_I2C_PRIVATE_WITH_ARB_STOP) \ || ((MODE) == HAL_I2C_PRIVATE_WITHOUT_ARB_RESTART) \ || ((MODE) == HAL_I2C_PRIVATE_WITHOUT_ARB_STOP)) Thank you, -Gil
Hello, I am looking for an example of how to use private I3C transfers for STM32C562RE. I read the I3C examples posted on Github but I did not find any controller or target examples that use HAL_I3C_CTRL_Transfer_DMA and HAL_I3C_TGT_Receive_DMA for private transfers using HAL2. Your help would be appreciated,Gil
Hi~ My board gets stuck at the kernel stage during boot. I've referred to numerous related posts but failed to resolve the issue.The boot file versions I use are OP-TEE 4.0, U-Boot 2023.10 and Linux 6.6.116.The official device tree I referenced is stm32mp157f-ed1.I have attached the boot logs, hardware schematic and device tree files. Please help analyze the root cause of the problem.stm32f7-i2c i2c@5c002000: pinctrl_select_state_full: pinctrl_config_one: err=-19 [ 1.741795] arm-scmi firmware:scmi: SCMI Protocol v2.0 'ST:' Firmware version 0x0 [ 1.748959] DEBUG: SCMI CLOCK PROBE STARTED! sdev name: scmi_dev.2 I/TC: SCMI-CLOCK: Reporting 34 clocks to Linux I/TC: SCMI-FW: ETZPC ID 2 DENIED for Non-Secure world! I/TC: SCMI-MSG: NS Request Clock ID 15 (iwdg1), ETZPC 2, Access=FAIL I/TC: SCMI-CLK: ID 15 has no name/not found I/TC: SCMI-FW: ETZPC ID 7 DENIED for Non-Secure world! I/TC: SCMI-MSG: NS Request Clock ID 16 (rng1_k), ETZPC 7, Access=FAIL I/TC: SCMI-CLK: ID 16 has no name/not
i am installed cube-MX for linux laptop version (6.17.0) and cube-IDE is (Version: 2.1.1) .For MX it shows option only generlic linux so it is correct for linux laptop ? and for IDE is debian is fine . I refer you tube sessions for Example import in that STM32IDE option availbale as toolchain but in my system sometimes not shows . Can you please give me exact steps how can i use Mx with IDE in detail steps for import examples given by stm32 also how can i create and import new example also . Also i have board STM32-NUCLEO-F746ZG when i import example in MX sometimes board is not visible .For toolchain selection below options are availble in that STM32IDE is invisible .
When generating a CMake-based STM32 project, STM32CubeMX currently lists every single .c source file manually in CMakeLists.txt. This brings major inconvenience for users:When adding user drivers (e.g., sensor, flash, display, or custom modules), users must manually edit CMakeLists.txt and add each new .c file path.If the user adds many source files, this process is error-prone and inefficient.It does not match modern CMake project practices and reduces project maintainability. Suggestion:Please use file(GLOB_RECURSE ...) to automatically include source files from standard directories such as:Core/Inc/*.hCore/Src/*.c
Hi all,I'm running standalone STM32CubeMX on Debian and I'm having trouble generating a complete project. No matter what I do, code generation only produces three items:- led_test.ioc- Inc/ folder- Src/ folder I'm expecting a full project structure including Core/, Drivers/, startup files, and a .launch file for STM32CubeIDE.Steps I've already tried:1. Selected the NUCLEO-F334R8 from the Board Selector (not the MCU).2. Clicked Yes to initialize all peripherals with default settings.3. In the Project Manager tab, set the Toolchain / IDE to STM32CubeIDE before generating.4. Clicked Generate Code — same incomplete output every time.Has anyone run into this on Debian? Is this a known bug with the standalone CubeMX on Linux, or am I missing a step? Any advice appreciated.ThanksI've attached screenshots of my CubeMX configurations settings below:
The gui seems to not have support for viewing adding or changing watchpoints for what i can find. I am able to use watchpoints using the debug console.">watch address"however it would be nice if that would also be visualized just like breakpoints. STM32CubeIDE for Visual Studio Code: Version 3.9.0 here my launch.json file:{"type": "stlinkgdbtarget","request": "launch","name": "CM7 master STM32Cube: Launch ST-Link GDB Server","origin": "snippet","cwd": "${workspaceFolder}/XXX/","deviceName": "STM32H747BIT6","deviceCore": "Cortex-M7","serverSerialNumber": "XXX","serverInterface": "SWD","serverInterfaceFrequency": "21000","serverReset": "None","preRunCommands": ["set output 16"],"program": "${workspaceFolder}/XXX/CM7/Debug/XXX.elf","imagesAndSymbols": [{"symbolFileName": "${workspaceFolder}/XXX/CM7/Debug/XXX.elf",}],"liveWatch": {"enabled": true,"samplesPerSecond": "4"},"serverExtLoader": [{"loader": "${workspaceFolder}/XXX/CM7_ext_flash_ldr/XXX.stldr","initialize": fals
Recently, I was trying to implement SDMMC+DMA+SDFAT to read and write the SD card of my Class on the STM32H750VBT6. Then I found that the DMA of SDMMC was gone. I saw some online materials saying that MDMA needs to be configured, and some also said that SDMMC does not need to configure DMA as it has its own independent IDMA bus. What is the actual situation when it is directly mounted on AHB? Are there any configuration screenshots and programs of CubeMX for SDMMC+DMA? I'd like to refer to it. Thank you!
Does the ST67W611M1 (-B version) with PCB antenna have a built in rf switch? We want to programmatically or via pins switch between the PCB antenna and an external antenna.
Dear. AllI'm asking how to use STemWin on stm32h743 mcu.How to add STemWin on STM32CubeIDE? (Current Use Version. 1.13.0)?How can I run a project with the development board I bought? (STM32H743I-EVAL)?In particular, I want to run the STemWin_SampleDemo project.I`m use IAR EWARM ver 9.xx but in stm32cubeh7-v1-12-1 andSTM32Cube_FW_H7_V1.11.0\Repository\STM32Cube_FW_H7_V1.11.0\Projects\STM32H743I-EVAL\Demonstrations\STemWini find STemWin.ewp project which use OGLastSavedByProductVersion 8.20.2.14834.It mean`s STemWin.ewp should compile on EWARM 8.20 or late.Is it possible to use example on later version EWARM ?Best regards.
Hello everyone:On touchgfx support website:https://support.touchgfx.com/docs/development/scenarios/touchgfx-on-gpu2d ,there is a demo of map using NeoChromVG,this is the demo videoSo,where can I get this demo project?
STM32H743VGT6 how to use slave I2C+DMACurrently, this usage is fine. However, when using the DMA function, it will trigger an ER interrupt.HAL_I2C_Slave_Seq_Receive_DMA, How to use it? Are there any examples?// 从机地址匹配回调函数 void HAL_I2C_AddrCallback(I2C_HandleTypeDef *hi2c, uint8_t TransferDirection, uint16_t AddrMatchCode) { if (hi2c->Instance == I2C1) { if (TransferDirection == I2C_DIRECTION_TRANSMIT) { Rx_len = 0; memset(I2C_rxBuffer,0,4); HAL_I2C_Slave_Seq_Receive_IT(&hi2c1, I2C_rxBuffer, 1, I2C_FIRST_AND_LAST_FRAME); } else { HAL_I2C_Slave_Seq_Transmit_IT(&hi2c1, I2C_txBuffer, Tx_len, I2C_FIRST_AND_LAST_FRAME); } } }
I'm using the latest library provided by the STM32Cube_FW_G0_V1.6.3, specifically STM32Cube_FW_G0_V1.6.3\Drivers\CMSIS\DSP\Lib\ARM\arm_cortexM0l_math.libbut when using IAR 9.20 I'm having the warning Warning[Lt009]: Inconsistent wchar_t size arm_sin_f32.o(arm_cortexM0l_math.lib) and 1 other objects in arm_cortexM0l_math.lib have wchar_t size 16 bits my_file.o and 54 other objects, some of them in rt6M_tl.a and 5 other libraries have wchar_t size 32 bits How do I avoid the mismatch?I would like to avoid to link the source code for the cortex M math library and compile it myself.
I wonder why this is happening after U-boot has booten up?It seems that something is NULL. D/TC:? 0 tee_ta_close_session:484 Destroy session Error: eth1@482c0000 address not set. D/TC:? 0 tee_ta_init_session_with_context:562 Re-open trusted service a8cfe406-d4f5-4a2e-9f8d-a25dc754c099 F/TC:? 0 pta_scmi_invoke_command:404 SCMI command 0x3 ptypes 0x3 F/TC:? 0 pta_scmi_invoke_command:404 SCMI command 0x4 ptypes 0x651 D/TC:? 0 tee_ta_close_session:465 csess 0x821301f0 id 1 D/TC:? 0 tee_ta_close_session:484 Destroy session No ethernet found. �7�[r�[999;999H�[6n�8No EFI system partition No EFI system partition Failed to persist EFI variables D/TC:? 0 tee_ta_init_pseudo_ta_session:303 Lookup pseudo TA ab7a617c-b8e7-4d8f-8301-d09b61036b64 D/TC:? 0 tee_ta_init_pseudo_ta_session:315 Open rng.pta D/TC:? 0 tee_ta_init_pseudo_ta_session:330 rng.pta : ab7a617c-b8e7-4d8f-8301-d09b61036b64 F/TC:? 0 plat_prng_add_jitter_entropy:74 0x1C D/TC:? 0 tee_ta_close_session:465 csess 0x821301f0 id 1 D/TC
Hi everyone,I am encountering a HCI_HARDWARE_ERROR_EVENT with code 0x02 (BlueCore time overrun error) on STM32WB devices.Key observations:Issue is observed only on some units, while others operate normallyAll devices use the same firmware, BLE stack, and FUS versionsAffected units show unstable BLE behavior (disconnects or degraded performance)Validation performed:Tested with STM32 reference example (BLE_p2pServer)The issue is still reproduciblePCB layout and hardware design have been reviewed and validatedNo application-specific changes involved during testingQuestions:Root causeWhat typically triggers a BlueCore time overrun at the controller level?Does this point more toward hardware timing issues (clock accuracy, RF timing), or internal controller or stack conditions?Unit variationHas anyone observed this error occurring only on a subset of devices?Could this be related to component tolerances (HSE or LSE oscillator, RF matching network, power stability, etc.)?Failure diagnosisWhat
We are a bachelor project group developing a BLE Direction Finding handheld "tracking compass" using AoA on STM32WB09 devices.We have reached a stage where BLE communication, CTE reception, antenna switching, and IQ report generation all appear functional, but the resulting IQ data seems physically incorrect and causes unstable angle estimation.We would appreciate suggestions on possible RF or IQ-processing issues we may have overlooked. Environment:MCU:PCB1) STM32WB09KE (Compass)PCB1) STM32F446RE as processing unitPCB2) STM32WB09KE (Tracking Tag)STM32CubeIDE Version: 2.1.0Toolchain / IDE: STM32CubeIDE. In this page, ST provides a .zip folder containing existing application projects that STM32WB0-series users can import, edit, and build directly. Version: 1.4.0. Project used as basis: BLE_DirectionFinding_Central_Locator. Most of the edits done was through the .ioc file, app_ble.c, app_entry and gatt_client_app.c. We can provide these files later if necessary.The ap
What does the appearance of KF50BD-TR look like ? Does it have pin 1 marker?Can you provide the relevant drawings?
Hi, I'm using the STM32C071K8U6's built-in USB DFU bootloader for one-time production programming. After flashing, PA11/PA12 (USB D+/D-) are used as regular GPIO outputs to control two P-MOSFETs (each with their 100kΩ gate pull-ups to 4.2V). The USB functionality is not used by the end customer, but the USB connector remains accessible for charging. This means a PC's USB cable may be connected during normal use allowing for potential signal injected into those traces resulting into the PMOS being turned on/off by the PC if it detects there is a USB device connected and tries to enumerate it. The two core issues: a) When a user plugs into a PC for charging, we need to guarantee the host does not attempt enumeration, and that nothing the host does on D+/D- interferes with our GPIO-driven MOSFET gates. b) because the PA11 and PA12 traces also go all over the PCB - i.e. they form very long stubs - we need to make sure this does not prevent the USB from working properly d
Already have an account? Login
Enter your E-mail address. We'll send you an e-mail with instructions to reset your password.