Join conversations with your peers and ST experts. Explore the full potential of STM32 microcontrollers for your embedded design.
Most recent activity
Hello, I've been following closely with the github while I work on the recording portion myself, and I saw that x-cube-azrtos-h7 was updated today. I immediately looked for the recording project, and couldn't find it. Even this page shows up Error 404: https://github.com/STMicroelectronics/x-cube-azrtos-h7/tree/main/Projects/STM32H743I-EVAL/Applications/USBX/Ux_Device_Audio20_Recording Do I not have access to it?
Hi everyone, I recently bought an EVSPIN32F0602S1 board, but I’m unable to connect to it. Windows is giving me an error when I plug it in. I’ve already tried changing the USB cables and even tested it on different laptops, but I’m still getting the same error. I also checked the user manual, and everything appears to be in its default configuration. Could someone please help me figure out what might be wrong? Thank you.
Dear ST team,I need some tips!!!I am using STM32H745 for my project. In the project, the M7 core is dedicated to control and measure the power circuit values and M4 core is responsible for communications (few UARTs) and LCD. I configured the MCU with STM32CubeMX and use Keil uvision fore code composing. After generating code, I noticed that there are two separated codes were generated for each CPU.How can I bridge between two CPUs to share data? I want to send measured data by M7 via UARTs controlled by M4?I will appreciate if you give me some applicable suggestions.
I have build a Fully pin compatible STM32H750B-DK board with USB Device only setup along with Touchgfx and Freertos , Touchgfx is displaying everything correctly but the USB Isn't responding , I have setup the USB OTG FS in Device Mode as shown in the attached Images.PC is not detecting anything
Hello everyone,I’m working on a project with an STM32H750B-DK board using TouchGFX and LWIP (Ethernet). After configuring LWIP in CubeMX and generating the code, I encountered a compilation error that took me a while to understand. I’d like to share the problem to help anyone who might run into the same issue.The ErrorIn file included from ../Application/User/gui/NetworkTask.cpp:13: ../../TouchGFX/gui/include/gui/model/ModelListener.hpp:13:23: error: macro "bind" requires 3 arguments, but only 1 given 13 | void bind(Model* m) | ^ In file included from ../Application/User/gui/NetworkTask.cpp:11: ../../Middlewares/Third_Party/LwIP/src/include/lwip/sockets.h:616: note: macro "bind" defined here 616 | #define bind(s,name,namelen) lwip_bind(s,name,namelen) | Similar errors appeared for Model.hpp.
Is STM32WB55xx (Multiprotocol wireless 32-bit MCU Arm®-based Cortex®-M4with FPU, Bluetooth® 5.3 and 802.15.4 radio solution) is Automotive grade(AEC-Q100 Grade)?
I am testing Ethernet on STM32H723ZGT6 by transmitting UDP packets (1024 bytes) every 1 ms. Setup / Implementation: No CubeMX / HAL used Fully bare-metal Ethernet driver (lwIP integrated manually) Ethernet interrupts enabled and serviced RX handled inside while(1) loop Non-blocking transmit path MPU enabled Memory configuration: RX pool located in AXI RAM lwIP heap: 32232 bytes in D2_SRAM Observed Behavior: System runs normally for many hours (sometimes >12 hours) Eventually UDP transmit stops working Ping continues to work without issues Debugging shows failure occurs at: pbuf_alloc(PBUF_TRANSPORT, len, PBUF_RAM); After failure: 1) pbuf_alloc() returns NULL (ERR_MEM) 2) ETH->DMACSR reads 0 while (1) { sys_check_timeouts(); if (eth_rx_rdy) { eth_rx_rdy = 0; ethernetif_poll(&gnetif); ETH->DMACIER |= ETH_DMACIER_RIE; } if (sys_now() - udp_tx_timer >= 1) // 1 ms transmit interval { ret = udp_server_send(udp_tx, sizeof(udp_tx)); if (ret
Hi everyone,I am experiencing a strange discrepancy in the behavior of HAL_UARTEx_ReceiveToIdle_DMA between LPUART2 and LPUART3 on an STM32U083RCT6.Environment:MCU: STM32U083RCT6IDE: STM32CubeIDE v1.17.0Library: STM32CubeU0 Firmware Package V1.3.0 (Released 04-June-2025)The Issue: I am using HAL_UARTEx_ReceiveToIdle_DMA to handle asynchronous reception of variable-length packets.LPUART2: Works perfectly. When an IDLE line is detected, the DMA transfer stops as expected, and HAL_UARTEx_RxEventCallback is triggered.LPUART3: When an IDLE line is detected, the interrupt is generated and HAL_UARTEx_RxEventCallback is triggered correctly. I am able to handle and process the variable-length packets without any issues. However, the DMA transfer itself does not stop (it remains in an active state), unlike the behavior observed on LPUART2.Configuration: Both instances are configured in STM32CubeMX as follows:Baud Rate: * LPUART2: 230400 bpsLPUART3: 115200 bpsDMA: DMA1 [Channel configuration]Mode
Hi,The input to the MCU is basically 1-bit (0/1 values), but it would be better if it could process multiple bits.The input is at 150MHz, and 10,000 data items are received at once. The MCU must store them in uint8_t data[10000]. When a 1-bit value is received, data[10000] contains 0/1 values. For the next data item, the 0/1 values must be accumulated and added for calculation.This is what I’ve come up with:1) GPIO: 150MHz input is not possible.2) ICP + DMA: It seems possible, but it doesn't seem to work. ICP cannot reliably capture 150MHz, and DMA doesn't seem to be able to store data in SRAM.3) DCMI or DCMIPP: 8-16bit data can be processed, and accumulation is possible using DMA. However, the maximum speed is 80MHz or 120MHz.Is there a model among the stm32 models that can do this on its own mcu?
Hello Everyone,Is there any documentation for ST BLE Sensor Mobile Application I can reference?Thanks in Advance.
Hi,I want clarification on STM32 option byte programming.When we write new values to FLASH_OPTR and other option registers:Where are these FLASH option registers physically located?Are they inside the FLASH peripheral (0x4002xxxx region) and not in the option byte Flash area (0x1FFF8000)?When OPTSTRT is set, does the CPU erase/program the option byte pages, or does the FLASH controller hardware automatically erase the option byte Flash area and program it using the values in the FLASH option registers?I want to clearly understand the internal flow between:Option byte Flash memoryFLASH option registersFLASH controller hardwareThank you.
Hey guys I am currently looking for an mcu to get started developing a live stream camera board which should be in 7x80 mm dimensions what mcu should I get ? I think 5x5 footprint should be ok but not sure 6x6 also be ok. I am open any advice also new to hardware design so thanks for all the supports:)
I am trying to bring up the GFX01M2 on a WB55RG board. Following any of the Custom, FlashLoader, or HelloWorld applications (from the X-CUBE-DISPLAY_3-0-0 download) using STM32CubeIDE merely results in a blank LCD. I feel I'm missing something simple, but just can't find it. In each case I have compiled and loaded the files as per the ReadMe instructions. Any pointers appreciated...
Dear community,where can I find the source code for this generated MX66UW1G45G_STM32H7S78-DK_XSPIM1-SFIx.stldr file?I need to load binary files on an sd/emmc flash passing through the OEMiRoT boot that loads the specific external loader I want to implement based on this MX66UW1G45G_STM32H7S78-DK_XSPIM1-SFIx example. I have already implemented a custom external loader for my sdcard which works fine when loading the binary directly from CubeProgrammer or IAR ide (no mapping mode), however it fails to load the external loader in RAM through OEMiRoT bootloader through a UART serial interface with this command: .\STM32_Programmer_CLI.exe -c port=COMxx br=xxx -elbl "my_loader.stldr" -w my_encrypted_file.bin "my_custom_address". The same command works fine with the above example when the firmware update new binary is loaded in the macronix flash. Thank you for help
Hello,I am working with the STM32L476 and would like some clarification regarding the One-Time Programmable (OTP) area.From the reference manual, I understand that STM32L4 devices provide 1 KB of user OTP memory (128 double words). I would like to better understand the following:What exactly is stored in the OTP area? Is the OTP region purely user-programmable, or does ST also store factory calibration or security-related data in this region? Is OTP used internally by the MCU for enforcing Flash security mechanisms such as RDP, WRP, or PCROP, or is it strictly for user data? How is OTP protected ? I am trying to understand the architectural role of OTP in relation to Flash protection and secure boot mechanisms.Thank you.
Hi,we are trying to get SDMMC1 running on our evaluation boards (STM32H757-EVAL) but without any success so far.To further investigate the issue we started a new project from scratch, using CubeMX with sdmmc1 enabled. It doesn't work neither.btw: board and SD interface are OK. i.e.the demo that came with the board is reading video files from SD card successfully.Please, can someone provide a ruuning setup for Cube-MX (STM32H7 firmware 11 or 12) with the specific settings for Clock Configuration and SDMMC1.We are using CubeMX 1.15, STM32H7 firmware package V. 12.1.The error happens during SD PowerOn(), i.e. there is no response from CMD8, CMD55...Thanks for your helpTom
I need gateway firmware binary for EU433 + Loriot.for my PNUCLEO LRWAN 3 gateway
Heyho,when enabling the INSTRUCTION cache in STM32H7(33), what must be taken care of?Any cache handling required? Any MPU settings required?As far as I understood that's only required for DATA cache?
In the STM32WB09's Reference Manual, RM0505 Rev 3, Table 8: PA10 and PA11 have SWD modes for their AF4.However, in the STM32WB09 datasheet, DS14210 Rev 6, Table 6 and Table 7: PA10 and PA11 have no AF4. Which one is correct?
I have setup HAL, systems clocks, etc. ADC 1 & 2 work PC4 (channel 14). ADC3 with PF3 (channel 9) PF4 (channel 14) or PF5 (channel 15) don't work with the same code. Port C & F enabled, ADC1-3 clocks enabled. Thanks for your help! { GPIO_TypeDef *ThePort; int ThePin, TheChannel; ADC_TypeDef *TheADC; ADC_HandleTypeDef hadc; __HAL_RCC_GPIOC_CLK_ENABLE(); __HAL_RCC_GPIOF_CLK_ENABLE(); //PF3 Thermisor ADC3_CHANNEL_9 //PF4 Thermisor ADC3_CHANNEL_14 //PF5 Thermisor ADC3_CHANNEL_15 //PC4 Power ADC12_CHANNEL_14 /* works ThePort = GPIOC; ThePin = GPIO_PIN_4; TheChannel = ADC_CHANNEL_14; TheADC = ADC1; // or ADC2; */ ThePort = GPIOF; ThePin = GPIO_PIN_4; TheChannel = ADC_CHANNEL_14; TheADC = ADC3; // Configure PF3 as Analog Input GPIO_InitTypeDef GPIO_InitStruct = {0}; GPIO_InitStruct.Pin = ThePin; GPIO_InitStruct.Mode = GPIO_MODE_ANALOG; GPIO_InitStruct.Pull = GPIO_NOPULL; HAL_GPIO_Init(ThePort, &GPIO_InitStruct); // Enable ADC3 Clock __HAL_RCC_ADC1_C
Hi all,I am a beginner working with the STM32N6570-DK development kit using STM32CubeMX(V6.16.1) and STM32CubeIDE (v2.0.0). I am looking to deploy an AI model from the ST model zoo and need guidance on the proper configuration for integrating the camera and display modules. Could anyone provide a step-by-step cub MX project configuration for camera and display interfacing. RegardsSradha
HiI am new to display and camera interfacing, as well as the STM32N6570-DK. For a project, I want to display the output from the camera (come along with STM32N6570-DK) into the display included with STM32N6570-DK. Could you explain the necessary configurations in STM32CubeMX and how to write the code in STM32CubeIDE to interface these components?My Tool version infoCube IDE 2.0.0Cube MX 6.16.0Best RegardsRanjith
I got an angle encoder with SSI interface, which is Synchronized Serial Interface. The output data is 21-bit. No CS signal is needed.I have implemented using SPI1 master mode RX only reading this encoder, with SPI_CLK as the serial clock and SPI_MISO for data input. The data size to read is set to 3 bytes, but the clock is transmitted one more byte as intended. HOW DID THIS HAPPEN? Does the SPI send a dummy address on receiving?The clock is generated immediately upon calling __attribute__((aligned(4))) uint8_t raw_angle[16] = {0}; HAL_SPI_Receive_IT(&hspi1, raw_angle, 3);The data captured by logic analyzer:The CubeMX setting is as below: I found that SPI_SR_RXNE is left triggered after 3 bytes read by the HAL API, so I have to clear the flag before calling HAL_SPI_Receive_IT. while((SPI1->SR & SPI_SR_RXNE)){ SPI1->DR; } HAL_SPI_Receive_IT(&hspi1, raw_angle, 3); I have also tried DMA mode using HAL_SPI_Receive_DMA(&hspi1,
Hello,I am currently using the X-NUCLEO-53L7A1 expansion board together with the NUCLEO-F401RE development board.I would like to add a Bluetooth module (HC-05 or HC-06) to this setup in order to transmit measurement data wirelessly.Could someone please advise on the following:What is the recommended way to connect an HC-05/HC-06 module to the NUCLEO-F401RE when the X-NUCLEO-53L7A1 expansion board is mounted?Are there any potential hardware conflicts (e.g., UART pin usage, power supply limitations, or pin mapping issues)?Are there any known compatibility or performance issues when using the Bluetooth module together with the VL53L7CX sensor?
Split from STM32H503 incorrectly marked as having CORDIC/FMAC - this is a different topic.Thank you, I will try this.But in the meantime, the Windows standalone MCU Finder app has just become broken.Selecting any entry of the PRODUCT INFO -> Segment options, return no results. i.e. if I reset, then choose STM32H5 series, or STM32U5 series, no results are shown. This definitely used to work. The Android app still works, but still shows the incorrect H503 entries.
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.