Join conversations with your peers and ST experts. Explore the full potential of STM32 microcontrollers for your embedded design.
Most recent activity
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.
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
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
Hello,I would like to ask about the UFQFPN32 package footprint for the STM32G491KEUx device.We are using the following part:Part number: STM32G491KEUxPackage: UFQFPN32While reviewing the datasheet and package information, we found that the actual UFQFPN32 package appears to have an exposed pad (EP) on the bottom side of the package.However, in the datasheet/package information we reviewed, the UFQFPN32 package information and footprint example do not seem to include the EP or the EP land pattern.In particular, the UFQFPN32 package information is shown in the document from page 166 to page 168, but we could not find any information regarding the exposed pad or the recommended PCB land pattern for the EP.Could you please confirm the following?Is the exposed pad information for the STM32G491KEUx UFQFPN32 package omitted from the datasheet/package information?For actual PCB design, should we include an EP land pattern for the UFQFPN32 package?If the EP land pattern should be included, shou
Hi everyone, I'm facing issues connecting an external debugger to the NUCLEO-H7S3L8 board (STM32H7S3L8). Current Setup: Board powered via CN5 (ST-LINK USB) JP1 closed (to disable on-board ST-LINK) External debugger connected to CN1 (MIPI20 connector) SWD mode at low speed (500 kHz to 1 MHz) Correct power sequence: Power CN5 first → wait for COM LED (LD8) to stabilize → then connect external probe What I have already tried: BOOT0 = 1 (jumper on CN11[5-7]) to enter bootloader mode and halt using external debugger Internal ST-LINK works fine when JP1 is open (using STM32CubeProgrammer) Problem: The external debugger is unable to connect or halt the CPU, please guide me how to fix it. Thanks,regards,Surender.
Hello, I have a device with a variable message stream in UART and there is the issue that I cannot know when it's stream ends due to gaps (so a single ReceiveIdle won't work). The device has clear framing via an interrupt so I use that.The final system will have limited DMA channels so keeping a ReceiveIdle always set is wasteful.As such there is the following workflow:HAL_GPIO_EXTI_Callback gets a signal there is a new message. That arms the DMA listener. On DMA callback, HAL_UART_Receive_IT is armed to catch possible remainder of message.On HAL_UART_Receive_IT it arms another DMA to get the rest of the stream (instead of doing a byte by byte interrupt, which is slow)We get another callback and stop the DMA/IT or we loop on IT and DMA.The issue is if this workflow is safe? Is there an issue arming DMAs on callbacks or IT on DMA callbacks?Thank you
Title updated to better reflect the root problem; was originally 'Riverdi 12.1" + TouchGFX 4.25 + FATFS not working'Hi everyone,I am working on a Riverdi 12.1" display board based on STM32H7 with TouchGFX 4.25 generated project.Environment:TouchGFX 4.25STM32CubeMX generated projectSTM32CubeIDERiverdi 12.1" boardSTM32H7FreeRTOS enabledDebugging with ST-LINKProblem:BSP_SD_Init() returns MSD_ERROR_SD_NOT_PRESENT.In main.c:uint8_t res; res = BSP_SD_Init(); risultato = res; if(res != 2) { Error_Handler(); }The value stored in risultato is:MSD_ERROR_SD_NOT_PRESENTAdditional important behavior:When I start a FreeRTOS task that accesses FATFS/SD, the display becomes completely black and TouchGFX no longer shows images.This is my task:void StartDefaultTask(void *argument) { FIL file; UINT bw; for(;;) { SCB_CleanDCache(); SCB_InvalidateDCache(); if(BSP_SD_Init() == MSD_OK) { if(f_mount(&SDFatFS, SDPath, 1) == FR_OK) { if(f_open(&file, "log.txt", FA_OPEN_ALWAYS | FA_WRITE
this thread is split from this thread hello Last question, I just saw the example but it's not for the STM32H755ZI-Q series, are the examples still compatible with this STM32H755 series? Thanks
Hello Team,Good Day !After Cloneed our two version of Hardware ( STM32F3 Series based ) by compititor , we are now more focused on Hardware Security aspects.Can you Pls Suggest which STM32 MCU is the MOST Secure among all available MCU ? Considering Firmware Protection / physical Attacks ? I would appriciate , if Higher Level Architecture with Device name is Provided.We are also open for Paid Consultancy if any 3rd party ready to help... Regards ,Bhupendra
Hi, I'm searching for the best Rx sniff mode as suggested in AN6362: I'm able to use carrier sense (RSSI_THR, CS_F interrupt) and SQI (SQI_THR, SYNC_VALID_F interrupt) but PQI never works.The MCU is in WFI state, sequencer not used.I have changed the value of PQI_THR but PQI_INFO is always zero and the PREAMBLE_VALID_F interrupt is always received a few microseconds after CS_F interrupt.Thank you in advance!
I am trying to interface STM32U5G7VJT6 with MT25QL128A using OCTOSPI1 in Quad SPI mode, but I still cannot store/run TouchGFX assets from external flash memory. Current configuration: Memory Type: Micron Device Type: Flash Device Size: 24 Clock Prescaler: 2 Clock Mode: Low Sample Shifting: Half Cycle Wrap Size: Not Supported Delay Block: Bypassed Screenshot attached.Could someone please check if I missed any important configuration like memory-mapped mode, linker settings, TouchGFX asset location, BSP/init sequence, or MT25QL128A command setup?
I have a TouchGFX (latest version) application using STM32H753 and an OLED with GRAM. Runs under Threadx.I found the development process quite complex but had no problem eventually building the project with all the subsystems apparently working properly.BUT....The very simplest part of the task I cannot complete. I want C code in a ThreadX Thread to initiate the redraw of the next frame in the single display buffer (after which the DMA would be initiated from the frame buffer to GRAM...). I need to access the OSWrappers.hpp in order to provide "Vsync" to TouchGFX which I can't do from "C". After days and days, I can assure you there is no apparent way to call the relevent C++ method from the C code within Threadx. In other words there is no 'hook' on the "C" side to make the function call. Any suggestions?None of the Google-search documentation on this subject makes any sense.Thank youGerry
Looking through the STM32Cube codebase, I’ve noticed a fairly strange but thoroughly consistent coding style. Indentation size is 2 spaces, using space for indentation; bracing style is more similar to Allman’s style rather than K&R and 1TBS. Naming style is also uniform, using CamelCase for external identifiers such as functions, structure fields, and global variables; along with a bit of Hungarian notation here and there (for example, pTxBuffPtr).This style is mechanically consistent through STM32Cube firmwares, drivers (LL, HAL, and CMSIS), code generated by STM32CubeMX, and BSP drivers. Even example projects follow suit.Could STM employees please share with us some documentation or guideline regarding this coding style? Looking for something similar to the Linux Kernel Coding Style and the Google C++ Style Guide. Configurations for formatter tools such as clang-format would also be appreciated.
I am working on converting projects from STM32F745VET to STM32U575VGT. Part of the startup routine of the projects is checking for flash errors using the CRC peripheral. The STM32F7 projects initialize a DMA channel in the following way: void MX_DMA_Init(void) { /* DMA controller clock enable */ __HAL_RCC_DMA1_CLK_ENABLE(); __HAL_RCC_DMA2_CLK_ENABLE(); /* Configure DMA request hdma_memtomem_dma2_stream1 on DMA2_Stream1 */ hdma_memtomem_dma2_stream1.Instance = DMA2_Stream1; hdma_memtomem_dma2_stream1.Init.Channel = DMA_CHANNEL_0; hdma_memtomem_dma2_stream1.Init.Direction = DMA_MEMORY_TO_MEMORY; hdma_memtomem_dma2_stream1.Init.PeriphInc = DMA_PINC_ENABLE; hdma_memtomem_dma2_stream1.Init.MemInc = DMA_MINC_DISABLE; hdma_memtomem_dma2_stream1.Init.PeriphDataAlignment = DMA_PDATAALIGN_WORD; hdma_memtomem_dma2_stream1.Init.MemDataAlignment = DMA_MDATAALIGN_WORD; hdma_memtomem_dma2_stream1.Init.Mode = DMA_NORMAL; hdma_memtomem_dma2_stream1.Init.Priority = DMA_PRIORITY_LOW; hdma_memtomem_dma2
ST moderator: post split from this thread. Hello mƎALLEm, Thank you for your confirmation on this issue. I would like to provide some additional information. I have also encountered the same problem on the STM32F405RGT6. In STM32CubeMX, when I configure both HSE or LSE to "Bypass Clock Source" mode, the tool insists on reserving PH1 (OSC_OUT) or PC15 (OSC32_OUT) as RCC pins. It blocks me from configuring them as regular GPIOs, even though the hardware (as you've confirmed) supports it. Furthermore, I tested this on the STM32F446RE and STM32F446RC using the latest CubeMX, the problem still exists on those devices as well. Regarding the internal tickets you mentioned (220390 for documentation, 222721 for CubeMX), may I kindly ask: Has the CubeMX fix (ticket 222721) been implemented in any release yet? If not, is there an estimated timeline for when we can expect this fix? I understand if you cannot share internal details, but any update would be very helpful fo
Here are the logs and waveforms. The slave device of IIC is unable to raise the SCL response. The data cannot be sent out either. The code is provided in the attachment.HAL_I2C_AddrCallback: 开始接收数据接收到字节[0]: 0x40接收到字节[1]: 0x03接收到字节[2]: 0x22接收到字节[3]: 0xFE接收到字节[4]: 0xBEHAL_I2C_ListenCpltCallback: 开始接收数据接收到字节[0]: 0x41HAL_I2C_ListenCpltCallback: 开始发送数据发送字节[0]: 0x05发送字节[1]: 0x62发送字节[2]: 0xFE发送字节[3]: 0xBE发送字节[4]: 0x30发送字节[5]: 0x31
Hello,I’m working on an STM32H757 (Cortex-M7 core, dual-core system) using SDMMC1 + FATFS (CubeMX-generated stack) and I consistently hit a blocking issue: Core issuef_mount() always returns:FR_NOT_READYor the execution breaks inside Error_Handler() depending on build/debug timing. Hardware / system contextMCU: STM32H757 (Cortex-M7, DCache enabled)SD interface: SDMMC1, 4-bit modeDMA: enabled (CubeMX SDMMC DMA configuration)External subsystem: Riverdi TFT display 12.1 inches (LTDC active)FATFS: CubeMX middleware (generic SD diskio template)No RTOS Software architectureSTM32CubeIDE latestHAL SDMMC driver (CubeMX generated)FATFS with sd_diskio.c DMA templateBSP layer present (mixed HAL/BSP abstraction)Cache enabled (I/D Cache ON, MPU default CubeMX config)Observed behaviorDuring initialization:BSP_SD_Init() returns OKSD card is physically detectedHAL_SD_GetCardState() does NOT consistently reach SD_TRANSFER_OKSD_CheckStatusWithTimeout() frequently times outFATFS layer repor
Follow-on from STM32F030K6T6 microcontroller with Adafruit 2478 display and touchscreen.Hello all, i have a part of code for the touch screen for the 2478 display.I have found an example made with Arduino and i have adapted It for stm32, i would like to know if my code Is fine or It has some issues to fix and what u would suggest me to do. This part Is only for the touch controller of the display but i got several questions, like how many readings i should make from the ADC? rn i do and average basically. #include "main.h" #include <stdint.h> /* ================= CONFIGURAZIONE ================= */ #define LCD_W 320 #define LCD_H 240 // PIN TOUCH (MODIFICA!) #define X1_PORT GPIOA #define X1_PIN GPIO_PIN_0 #define X2_PORT GPIOA #define X2_PIN GPIO_PIN_1 #define Y1_PORT GPIOA #define Y1_PIN GPIO_PIN_2 #define Y2_PORT GPIOA #define Y2_PIN GPIO_PIN_3 // CANALI ADC (MODIFICA!) #define ADC_CH_Y1 ADC_CHANNEL_2 #define ADC_CH_X1 ADC_CHANNEL_0 #define ADC_SAMPLES
Hi, We are planning to use STM32H743ZI for our project. Our requirement is to interface a 7-inch LCD touch display with 1024x600 resolution using a 24-bit RGB interface (RGB888) through LTDC. Can STM32H743ZI reliably support this display resolution? Also, what frame rate can realistically be achieved with this configuration? Are there any important hardware or performance considerations before selecting this MCU? Any suggestions or reference designs would be helpful. Thanks.
Good evening, I am trying to use a P-NUCLEO-IHM03 pack.I have generated the project using the X-CUBE-MCSDK version 6.4.2 and STM32cubeMX version 6.17.0, built and flashed the project on the board. The problem is that as soon as I try to start the motor in ST motor pilot, I get a driver protection fault instantly, without any movements of the motor:I didn't touch any configuration and jumper of the board, but while I generate the project I get these warnings (I don't know if this coukd be the reason of the fault):Any help would be very much appreciated, Thanks.
Excuse me, how can I implement this kind of loadingI'm really at a loss for ideas. Please help me out, thank you
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.