Join conversations with your peers and ST experts. Explore the full potential of STM32 microcontrollers for your embedded design.
Most recent activity
Hello, I have been working on a project attempting to get Lua 5.5, Freertos running on a STM32h723.I used cubeMX to generate my project with Freertos enabled.I brought in Lua 5.5 library from their website https://www.lua.org/download.htmlI was able to get it compiling and my project as a whole builds and flashes without errors.Now the part that I'm struggling with. If for any reason Lua has a error the STM32 goes into hard fault and most of the time it seems to be a BusFault caused by IMPRECISERR.I'm trying to figure out if getting Lua to work on the Cortex-m7 is more involved than just adding the library. As I was watching a video from a person that was getting LuaJIT ported to the STM32h7 and he had talked about a few issues he had in regards to the Cortex-m7 https://www.youtube.com/watch?v=U9Jnah4uXBY Though I will admit he was trying to port over the Lua Just In Time compiler and other things that I don't believe base Lua has. I would appreciate it if anyo
Dear ST Community,We are currently working on the STM32H747 controller using the MIPI DSI interface in video mode.In our setup, we are using the SN65DSI83TPAPRQ1 bridge to convert MIPI DSI signals into LVDS signals for our display panel.The MIPI configuration and bridge configuration details are attached below.After configuring the CSR registers on the bridge side, we are reading Register 0x0A and Register 0xE5 for status verification, as specified in the SN65DSI83TPAPRQ1 datasheet initialization sequence.We have also enabled the test pattern, and the display turns ON (screenshot attached below).Observations:For Register 0x0A, bit 7 is not reading as 1For Register 0xE5, the expected value is 0x00, but it is reading as 0x01We are observing clock signals at the bridge outputHowever, no data signals are present on the LVDS sideQueries:What could be the reason for bit 7 not being set in Register 0x0A?What does Register 0xE5 reading 0x01 instead of 0x00 indicate?Does this behaviour su
Hello, everyone on the forum.I am using an STM32H735IG, ThreadX, and FileX to create files on an SD card and write data to them. In each iteration, I open the file using `fx_file_open`, seek to the end of the file using `fx_file_relative_seek`, write data using `fx_file_write`, close the file using `fx_file_close`, and finally flush the media using `fx_media_flush`.When performing this operation, each file write takes about 10 milliseconds. If I want to write multiple files in a short amount of time, should I use multithreading and have each thread write a file? Also, when writing data to a file on a regular basis, is it okay to keep the file open and write the data without calling `Open` and `Close`?How often should I run fx_media_flush? I’d appreciate any advice you can offer.
On the STM MB1363 board I want to expand the USB fucntionality to multi port USB HUB using port CN13 through a HUB like given below. I will be connecting UPSTREAM of the given USB Controller chip to the CN13 STM32 MB1363. TUSB4041I-Q1, CY7C65642-48AXC Is that feasible? What throughput can I expect?
Is there an easy way to find devices that support specific CAN buffer configurations?For example, some only have receive queues whilst others allow a number of receive buffers to be configured (which is what I want). I know the H7x7 supports this, but does anything else?
Could you provide a routine for reading and writing external flash using spi+dma+ interrupt in the STM32F407 standard library?
when i run my .stmcx file in stmcsdk 5.4.8v i am getting these type of errors ,how can resolve
Hello everyone,We are having trouble getting tracing to work with our target at full clock speed and would like to understand why, we have an application running on STM32U575 @ 160MHz CPU clock, we also connected the J-Tracer to it using a connector glued next to the uC and short wires (~10mm) to PE2 ... PE6 (pins 1 to 5 on the LQFP100), the GPIO pins are all configured (using a JLinkScript) as AF and at maximum speed, and from what we understood on the documentation (Arm trace technical specification - SEGGER Wiki) the trace clock and trace data operate at half the CPU speed, I checked the ST datasheet and the GPIOs we are using should be good up to 100MHz, so in theory the trace should be possible with the CPU running at 160MHz and outputting trace data @ 80MHz, or?- I have tested with the CPU at 160MHz and 2 trace data pins instead of 4, and it works, but the trace buffer overflows every time, as only 2 data lines are too slow for the amount of information.- I also tested with the
Hello,The STM32Cube project Template_LRUN is failed on STM32H7S78-DK:STM32H7S78-DK, MB1736-H7S7L8-D01SW is from the latest master of https://github.com/STMicroelectronics/STM32CubeH7RS/tree/main/Projects/STM32H7S78-DK/Templates/Template_LRUNI also double check with the stm32cubeh7rs-v1-3-0.Follow the instructions from readme:Build Template LRUN projects with CubeIDE v2.0.0Use CubeIDE to load Template_LRUN_Boot.elf to internal flashUse CubeProgrammer to program Template_LRUN_Appli.bin to external Nor-Flash and success.Powerup the DK board and no LED is light-on.By tracing the boot program, the MCU is hangup when copy the program from Nor-Flash to PSRAM. Crash happen on exact the copy to the first address in PSRAM. It seems PSRAM is not ready.The error occurs at: https://github.com/STMicroelectronics/stm32-mw-extmem-mgr/blob/5c92d55af712b20030853a8ac7ddf87ab9eb1adf/psram/stm32_psram_driver.c#L138 /* Execute the command sequence */ for (uint8_t command_index = 0u; command_index < Psra
Hello everyone,If you've ever tried running Azure RTOS with an HTTP server, an FTP server, multiple TCP sockets, and a handful of threads on a standard NUCLEO-144 board, you know exactly where this is going.You hit the memory wall.1 MB of internal RAM sounds like a lot — until ThreadX, NetXDuo, and FileX each want their own byte pools, packet pools, and thread stacks. Add an HTTP server for a web interface, an FTP server for remote file access, and you're fighting for every kilobyte before your actual application even starts. And storage? The NUCLEO boards don't have any. If you want to serve a web dashboard or datalog sensor readings, you're out of luck.Then there's the documentation gap. ST provides excellent examples for HTTP servers with NetXDuo. FTP gets reasonable coverage. But WebSockets? Real-time bidirectional communication between a browser and your STM32? Good luck finding an ST example for that. And it's the one thing that turns a static web page into a live control interfa
Hi,I do not plan to use USB, and the STM32N6's VDD is 1.8V.However, creating a new 3.3V power supply just only for the VDD33USB pin is too inefficient.The datasheet lists the absolute maximum ratings for VDD33USB as ranging from 0V to 3.6V when USB is not used, and the comment below states the following:1. All main power and ground pins must always be connected to the external power supply, in the permitted range.Therefore, Finally if I do not plan to use USB on the STM32N6, which of the following options should I choose for the VDD33USB pin?(have to consider leakage current in stop mode)1) NC2) 3.3V (by creating a new power supply)3) 1.8V4) GNDthanks in advance.
Hi,UID is set at factory for all products? Wholesale ICs comes already programmed? I need to repair some machines and IC needs to have same UID as replaced. Thanks
Hello,I successfully improved the TouchGFX based Clock Example demo app to use RTC chip (and LSE crystal clock) of the N6570 MCU. Because the STM32N6570-DK board does not provide backup battery the RTC loses the current date/time during every power off. One solution would be to sync the RTC chip with an SNTP server via Internet. I successfully solved this with STM32H7474I-DISCO board with LwIP and SNTP client, but the STM32N6570-DK board does not support LwIP.I found an example for the STM32N6570-NUCLEO-144 board which is probably similar (or close) to STM32N6570-DK board. The problem is that the found Nx_SNTP_Client application uses NetXDuo and AzureRTOS while my project runs under FreeRTOS op system.How can I solve this? When create a new TouchGFX project I can choose between FreeRTOS or ThreadX op systems only. I can't use AzoreRTOS...Can anybody help?Thanks,Louis
I've developed my own PCB using an STM32H723ZGT6 microcontroller. I'd like to store data to a microSD card that's onboard, and I've designed it to use SDMMC2 for the better transmission rate. I have no external pullup resistors, but I have enabled the internal pullup resistors (found to be 38kOhms using a multimeter) on each of the data lines and the CMD line. I have ESD protection inline using the EMIF04-1005M8. The bus is configured in 1-bit mode until successful connection is made. Additionally, I've tried two different micro SD cards, a 32GB SanDisk, and an 8GB Gigastone micro SD card. I run into issues in HAL_SD_Init, which is called in the MX_SDMMC2_SD_Init. I've stepped through the code using the ST-Link and have found the issue to be in this loop: while (!__HAL_SD_GET_FLAG(hsd, SDMMC_FLAG_RXOVERR | SDMMC_FLAG_DCRCFAIL | SDMMC_FLAG_DTIMEOUT | SDMMC_FLAG_DATAEND)) { if (__HAL_SD_GET_FLAG(hsd, SDMMC_FLAG_RXFIFOHF)) { for (count = 0U;
I get the build warning (which is treated as an error):```CompressedUnmappedFontCache.cpp:146:66: error: unused parameter 'glyphNode' [-Werror=unused-parameter] [build] 146 | void CompressedUnmappedFontCache::unableToCache(const GlyphNode* glyphNode, int byteSize)```This is easily fixed withvoid CompressedUnmappedFontCache::unableToCache(const GlyphNode* /*glyphNode*/, int /*byteSize*/) { while(1); }But, it's generated code, so I have to make this fix every time a regenerate. This warning happens in both `CompressedUnmappedFontCache` and `CompressedFontCache`.
I am using the EVLSPIN32G0B1 demo board and the MC Workbench v6.4.1 software, and I would like to use the FOC control algorithm.More specifically, I would like to use the Hall sensors when the motor starts and operates at low speeds, and then switch to sensorless control at higher speeds.I have read that the library does not support automatic switching, so I will need to implement it manually in the code.How should I proceed?Thank you for your support.
Hi everyone!I have generated a code from CubeMX for USB-PD in bare-metal configuration like this: Then I started testing the code and the function USBPD_PE_Init at this line: /* PE SET UP : Port 0 */ CHECK_PE_FUNCTION_CALL(USBPD_PE_Init(_port_index, (USBPD_SettingsTypeDef *)&DPM_Settings[_port_index], &DPM_Params[_port_index], &dpmCallbacks));returned false.I have looked in the assembler window and found out that some members of static const USBPD_PE_Callbacks dpmCallbacks = { USBPD_DPM_SetupNewPower, USBPD_DPM_HardReset, NULL, USBPD_DPM_Notification, USBPD_DPM_ExtendedMessageReceived, USBPD_DPM_GetDataInfo, USBPD_DPM_SetDataInfo, USBPD_DPM_EvaluateRequest, NULL, NULL, // Like this one!!! USBPD_PE_TaskWakeUp, #if defined(_VCONN_SUPPORT) USBPD_DPM_EvaluateVconnSwap, USBPD_DPM_PE_VconnPwr, #else NULL, NULL, #endif /* _VCONN_SUPPORT */ USBPD_DPM_EnterErrorRecovery, USBPD_DPM_EvaluateDataRoleSwap, USBPD_DPM_IsPowerReady };are not a
Hello,As a lot of people here, i'm trying to implement USB in standalone mode (bare metal, no OS used).I'm using NUCLEO-STM32WBA65RI board.CubeDE 1.19CubeMX 6.15.0 still can't make it work. I'm looking for help. I checked a lot of forum posts, a lot of github pages.I based myself on :https://github.com/STMicroelectronics/x-cube-azrtos-h7/blob/dev/usbx/Projects/NUCLEO-H723ZG/Applications/USBX/Ux_Device_CDC_ACM_Standalone/USBX/App/app_usbx_device.cand tried to implement the AzureRTOS USBX standalone versionHere is my Cube MX configuration :Clock USB :I only used X-CUBE-AZRTOS-WB and desactivated USBX : Using buffer <10*1024 would rise a memory error flag in ux_device_stack_initialize() : The rest is default configuration. Then USB_OTG_HS : Device_Only and :Then i generated the code,I added : if(MX_USBX_Device_Init() != HAL_OK) { for(;;); }And inside of it : /* USER CODE BEGIN MX_USBX_Device_Init1 */ USBX_APP_Device_Init(); /* USER CODE END MX_USBX_Device_Init1 */A
Trying to flash F1 and F0 series boards (not a clone, resoldered the MCU with a genuine from mouser) with L4 ST link V2.1, but having no success. Doing the basic CN2 headers out, CN3 VDD(with or without), SWCLK, GND, SWDIO. Spamming every option in CubeProgrammer to talk to the MCU with changing boot settings, doing resets before, while and after connecting, but nothing. L4 talks normally with the internal MCU. I measured MCU - STLink pin to pin resistances, everything seems ok with 22 ohm termination, the only problem i see is when connecting the 3.3V sense to the AIN_1 (CN3 1st pin), then i read in programmer 5.98V (VDD is not 5V, measured, stable 3.3V). In the schematic there is a voltage divider and when 3.3V ST_LINK is there, AIN is 1.65, which goes directly to MCU and shows in Programmer double of that. But by the same meaning, when connecting VDD i bypass with 3V (- schottky diode) and in the programmer get the double. Since its only sense voltage, it shouldnt be neccesary
Hi,I´m trying to migrate the example Application p2pServer (BLE) from the Nucleo board to a custom board with an STM32U575CI, but it fails initializing:#### Welcome to ST67W6X BLE P2P Server Application #####<\n># build: 17:52:14 Mar 18 2026<\n>--------------- Host info ---------------<\n>Host FW Version: 1.2.0<\n>[ERROR] [4000] [ST67W6XTask] (w61_at_sys.c:340) sem_if_ready not received<\n>[ERROR] [4000] [ST67W6XTask] (w61_at_common.c:375) sem_if_ready not received<\n>[ERROR] [4000] [ST67W6XTask] (w61_at_sys.c:312) Could not init Modem handler<\n>[ERROR] [4000] [ST67W6XTask] (main_app.c:975) [ERROR] in W6X_Init API<\n>[ERROR] [4000] [ST67W6XTask] (w6x_sys.c:115) W61 Init failed<\n>[ERROR] [4000] [ST67W6XTask] (main_app.c:401) Failed to initialize ST67W6X DriverAny idea what could be the problem?BestAchim
Hello everyone!I am using stm32n6570-dk. My project has only FSBL and was generated using STM32CubeMX. I was able to run it in debug mode without issues. The code does not execute when flashed to external flash memory. I had to comment out "MX_ICACHE_Init();" for the code to run from external memory. I thought there may be a configuration issue from my side. So I ran the "Starter project" provided by STM located at "STM32CubeN6\Projects\STM32N6570-DK\Templates_Board". This code also runs fine in debug mode. It does not work when flashed to external memory without commenting out "MX_ICACHE_Init();".I expect the example code to work without modifications. I figured out that the program does not reach the error handler and gets stuck in HAL_ICACHE_ConfigAssociativityMode(). This is when flashed to external memory.if (HAL_ICACHE_ConfigAssociativityMode(ICACHE_1WAY) != HAL_OK){Error_Handler();}Within HAL_ICACHE_ConfigAssociativityMode() it gets stuck in READ_B
Hi Community,Today you will provide the answers, and I will ask the questions!Looking at the statistics gathered by our tools (assuming customer consent given), we can see the huge popularity of designing software relying on an RTOS. FreeRTOS is widely used, and we assume that the adoption Azure ThreadX will also spread quickly.As CubeIDE tools guys, we have invested some effort in RTOS debug features. To quickly summarize the RTOS debug offer, let's make a list:Window > Show > View > Other > FreeRTOS / ThreadXProvides views to visualize kernel objects for the 2 RTOSesDebug config > Debugger > Enable RTOS ProxyWill allow the debugger to unwind and display the full call stack for ALL threads in the RTOS, not only the one currently in context!For Azure ThreadX CubeIDE 1.8.0 can also conveniently export trace logs to be visualized "offline" in Microsoft TraceX toolIn our view the RTOS support is now quite decent! ;)What is puzzling is the lack of feedback and bug reports
I am not able to view stm32N6 PSRAM @ 0x90000000 with IAR Memory view, it only shows --. And after I tried to access 0x90000000, the debugger seemed to hang up.I tried with STM32N6570-DK XPI_PSRAM_MemoryMapped project. I set a breakpoint at line 197 -- if (errorBuffer == 0) after it read/wrote PSRAM successfully. When it stopped at the breakpoint, I opened the memory view to check memory @0x90000000. It failed.If I did the similar with stm32CubeIDE, it worked fine. Any idea why the IAR was not working?
Hi, I am tring to write data by the FDCAN bootloader of system memory, my target is STM32H563. Now, I can read the device ID, perform the mass erase command, but I can't write data to SRAM/Flash, the FDCAN bootloader doesn't response any CAN message after the Write_Memory command. Below picture is the CAN message log when I try to write 64 bytes data to flash at 0x0802_0000. I also check the 'Write_Unprotect' command, so the MCU is not write protect.Do I miss something have to do?Thank you.
I’m using a NUCLEO-H533RE and CLion as my development environment. Configuring and building my STM32 project works fine, but I haven’t been able to get debugging to work. I receive the following error:Error in initializing ST-LINK device.Reason: Unknown. Please check power and cabling to target.Using STM3CubeProgrammer I can connect with the board and did the full chip erase.The attached images show the current settings.Does anyone have any idea?
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.