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 created project in stmcube32mx for h5 microcontroller and it works if I manually replace bl main to bl entryin file startup_stm32h563zitx.s.If this manual replacing is a bug or on purpose?Jan
Hi, I am trying to configure the L9026 through SPI communication, but I am confused about configuring the CFG_1 and CFG_2 registers. In section 7.4.1 (PWM Generator), it is mentioned as CFG_1.PWM_DIV_GEN, but in the CFG_1 register there is no field named PWM_DIV_GEN. Instead, PWM_DIV_GEN is present in CFG_2. A similar issue exists with PWM_DIV_LED. Please find the attached screenshots from the datasheet. Please provide clarification on this. Thank you, Ranjith .
Hi everyone,I am a junior engineer trying to learn the new STM32N6 (Nucleo-N657X0) board. My goal is to do some basic computer vision, and I am trying to interface it with a Raspberry Pi Camera Module V2 (Sony IMX219).To be honest, I am a bit overwhelmed by the complexity of the MIPI CSI-2 and DCMIPP settings, and I’m stuck. I’ve been trying to debug this for days but I can't get any image data.Here is what I have:Board: STM32N657X0H3Q NucleoCamera: Standard RPi Camera V2 (IMX219). It has its own crystal (X1) on the back, so I assume I don't need to generate a clock (MCO) from the STM32, but I'm not 100% sure if that's enough.I2C Works: I can read the Chip ID (0x0219) via I2C, so the connections seem okay.The Problem: I configured CubeMX with 2 Lanes, 950 Mbps PHY Bitrate, and RawBayer10 format. But when I run the code, HAL_DCMIPP_PIPE_GetState is always BUSY or failing.I am getting these random error codes in hdcmipp.ErrorCode every time I reset and try again. I don't know w
Originally a comment on the How to recognize a genuine ST-LINK/V2 versus a cloned one Knowledge Base article.Moved to main forum for better visibility / discussion.I bought this ST-LINK V2 on Amazon ( see pictures) . I don't think its' a genuine STM device. STM32CubeIDE and STM32CubeProgrammer recognize it but No STM32 target is found ( STM32L051K8U6)I notice that my ST-Link V2 does not provide clock signal on pin 9 (SWCLK) I'm using VT ref pin, SWDIO pin, SWDCLK pin, GND pin and RST pin.
Hi Sir,Does any STM32 MCU support two independent USB 2.0 High-Speed (480 Mbps) interfaces simultaneously? I have observed that current H7 parts limit the second core to Full-Speed only. Do any newer series support true dual-HS operation?Thank you.
Hi everyone,I’m setting up LVGL on a custom PCB using an STM32H747BIT MCU. The display is connected via LVDS, and I’m using DMA2D for transferring the framebuffer to the screen.The issue I’m facing is that the DMA2D transfer complete callback is never triggered, and as a result, lv_disp_flush_ready() is not called and the buffer is not pushed to the display.Below is the relevant initialization code: lv_init(); lv_tick_set_cb(HAL_GetTick); //FIXME: per ThreadX fer servir tx_time_get disp = lv_display_create(LV_DISPLAY_HORIZONTAL_RES, LV_DISPLAY_VERTICAL_RES); lv_display_set_buffers(disp, buf1, NULL, sizeof(buf1), LV_DISPLAY_RENDER_MODE_PARTIAL); hdma2d.XferCpltCallback = disp_flush_complete; lv_display_set_flush_cb(disp, my_flush_cb);The my_flush_cb() function is as follows:void my_flush_cb(lv_display_t * display, const lv_area_t * area, uint8_t * px_map) { lv_coord_t width = lv_area_get_width(area); lv_coord_t height = lv_area_get_height(area); SCB_CleanInvalidateDCache();
Due to issues with text selection and copy/paste in STM32CubeIDE 2.0, I reinstalled the operating system (I was previously running a beta version) and moved to a stable release (Tahoe 26.2 (25C56)) on an Apple Silicon Mac (M4). I then downloaded and installed STM32CubeIDE and STM32CubeMX. The installation completes successfully, but when launching either application, an error occurs and the tools fail to start. Has anyone experienced this issue or knows the root cause? Any insights would be appreciated.
Hello,I am working on a custom board derived from the STM32MP157F-DK2 reference design and currently validating the basic bring-up.I have a few questions specifically related to the Cortex-M4 (MCU) core on STM32MP157F:Checking MCU execution via JTAG/SWDUsing the JTAG/SWDIO pins, how can I confirm whether the Cortex-M4 core is running or halted?Are there recommended tools or procedures (e.g., STM32CubeProgrammer, OpenOCD, ST-Link) to attach to the M4 core independently of the A7 cores and verify execution status? MCU startup code responsibilityDoes the Cortex-M4 require a separate startup/application binary (startup code, linker script, vector table), or is this handled automatically as part of the Yocto/OpenSTLinux build?In other words, does Yocto provide and load a default M4 firmware, or is it expected that we build and deploy an M4 firmware separately (for example using STM32CubeIDE)? Boot flow clarificationAt what stage is the M4 core released from reset?Is this controlle
Moved from STM8 forum; STM32H7 Label added.Hello everyone, i am trying to get the data from my http my data will be around 6 KB i can able to receive the data but imediately after receiving the data all the other threads except the MQTT thread(I have the HTTP function inside the MQTT thread) is suspended.I can notice that the interupt is also triggering properly but other threads are running i am attaching my MQTT file with this can you please help me to solve this issue.
Hi All, I'm building an instrument that needs to stream data to a PC at ~4Mbps. People were claiming nearly twice this with USB CDC so I chose the nucleo-h533 board and started with the Ux_Device_CDC_ACM example. I disconnected the USART code and added a loop that calls ux_device_class_cdc_acm_write and then I measure the rate at which I receive data on the PC. I can't get past ~1.8Mbps. I have tried the following: varying the size of the buffer passed in from 64 to 2048 enabling ZERO copy in the driver UX_DEVICE_ENDPOINT_BUFFER_OWNER=1 and defining UX_DEVICE_CLASS_CDC_ACM_ZERO_COPY setting USBD_CDCACM_EPINCMD_FS_BINTERVAL to 1 instead of 5 In all cases, the baud rate remains about the same at 1.8Mbps. Is there anything I can do to improve this? Best, Marc
The STM32H7RS series includes a USB HS PHY with a special PLL that generates the 480MHz clock required as well as a 60MHz clock for the OTG HS peripheral and optionally a 48MHz clock for the separate OTG FS peripheral. The PLL for the USB PHY has several configuration bitfields in the RCC->CCIPR1 register that are used to set the source of the PLL reference clock, as well as its frequency: Bits 13:12 USBPHYCSEL[1:0]: USBPHYC kernel clock source selection. Set and reset by software.00: hse_ker_ck (default after reset)01: hse_ker_ck / 210: pll3_q_ck11: reserved, the kernel clock is disabledBits 11:8 USBREFCKSEL[3:0]: USBPHYC kernel clock frequency selection .Set and reset by software.This field is used to indicate to the USBPHYC, the frequency of the reference kernel clock providedto the USBPHYC.0011: The kernel clock frequency provided to the USBPHYC is 16 MHz1000: The kernel clock frequency provided to the USBPHYC is 19.2 MHz1001: The kernel clock frequency provided to the USBP
I have an application that uses 10 VL53L0X sensors on an I2C bus. I seem to have ended up damaging multiple STM32 dev boards trying to get this configuration to work reliably. Any help to understand what I am doing wrong would be appreciated.So, there are 10 VL53L0X sensors on a single I2C bus connected to the I2C port on a Nucleo dev board. There is a mechanism to enable each independently to set the I2C address, after which they all operate in continuous sampling mode and the MCU polls for results periodically. This works fine, sort of, and the data comes in OK. At some point everything stops and that's the end of it. I have found that the I2C port on the dev board seems to have been damaged and no longer works at all (probing with multi-channel scope). There was nothing else connected to the dev board, just the I2C lines.The VL53L0X sensors have their own 3V power supply which is manually switched and is independent from the power t
Hello, I am using a custom environment for development and debugging for NUCLEIO-STM32F767ZI.It is based on a custom devcontainer, VSCode and gdb-multiarch. On the server side I have OpenOCD, running on a ubuntu 24.04 PC. This is connected via USB to the board. The Board itself is not changed in any way, maybe I changed jumpers at some point, I would need to check this if this might effect the behavior. The first connection after Powerup works always as expected, the Firmware is flashed and works as expected.If I rebuild the project or flash the firmware again, the MCU is in some kind of undefined state.Calls to different HAL functions fail, return Errors. As some return values are not verified within the generated calls, I don´t see the errors immediately, but very late during debugging. Missing interrupts as an example. The code is a simply generated STM32CubeMX project, without any changes. I am using only GPIOs and Systick interrupt so far. I need the right Reset com
I am currently working on BLE applications for a custom STM32WB05KZ board using the SDK stm32cubewb0-v1-3-0. In general, peripherals such as GPIO and UART are functioning correctly when running non-BLE examples provided in the SDK.However, when I run BLE applications (such as Beacon, Server, or Client), I am unable to receive any logs over UART (configured on PB0 and PA1). I have verified that an LED, which is initialized prior to the BLE initialization in app_entry.c, operates correctly, indicating that the application is executing at least up to that point.The main issues I am facing are:No log output is observed on the UART interface during BLE operation.The device does not appear to advertise(No address is visible: random or public), as it is not detected by the ST BLE Toolbox application.I would appreciate any guidance or suggestions to help identify and resolve this issue.
Hi Team,In this post regarding VL6180x proximity sensor, the sensor is detecting the address(0x29) but the readings are receiving as 255 value even the object it detected in front of sensor. for reference purpose go through this code snippet wrote in arduino IDE for ESP32-WROVER-IE. What might be the problem?Regards, #include <Wire.h> #include "Adafruit_VL6180X.h" #define SDA 23 #define SCL 22 Adafruit_VL6180X vl; void setup() { Serial.begin(115200); delay(1000); Serial.println("Starting I2C..."); Wire.begin(SDA, SCL); delay(100); Serial.println("VL6180X test"); if (!vl.begin()) { Serial.println("Failed to find VL6180X"); while (1); } Serial.println("VL6180X found!"); } void loop() { //Serial.println("hi"); uint8_t range = vl.readRange(); uint8_t status = vl.readRangeStatus(); // if (status == VL6180X_ERROR_NONE) { Serial.print("Range: "); Serial.println(range); //} //delay(500); }Edited to apply source code formatting - please see How to
I have a custom STM32 WB05KZ and I want to get logs using UART for BLE_Beacon, and check if its advertising. But I am unable to get the logs. Is UART not supported? Is it because of low power mode? How do I get the logs?
I am trying to use the ble_p2pServer example on my stm32wb05kz, but it is not advertising and not detectable on the ST toolbox application. These are the debug statements I am getting via UART: *** UART Test - System Starting ***BLE Stack initialized successfullyTotal Buffer Size: 8498 bytesNum Radio Tasks: 1Success: aci_hal_set_tx_power_level commandSuccess: aci_gatt_srv_profile_ini t commandSuccess: aci_gap_init commandStatic Random Bluetooth Address: de:ce :41:ed:ca:9aSuccess: Gap_profile_set_dev_name - Device NameSuccess: Gap_prof ile_set_appearance - AppearanceSuccess: aci_gap_set_io_capability commandAdver tising data filled with BD addressSuccess: aci_gap_set_security_requirements c ommandSuccess: aci_gap_configure_filter_accept_and_resolving_list command==>> End BLE_Init function Services and Characteristics creationSuccess: aci_gatt_sr v_add_service command: p2p_ServerEnd of Services and Characteristics creation Success: aci_hal_set_radio_activity_mask command === Starti
Could you add NVM option for zigbee stm32WB55 in cubeMX ?It's essential for developement of application (persistence and coord association...)thanks FYI: This is a repost from https://community.st.com/t5/stm32-mcus-wireless/stm32wba-option-nvm-not-present/td-p/680720
Hello all and happy holidays, I am having a bit of weirdness going on. I have setup UART using stm32 HAL, confirmed it is working properly by stepping through (using an STLINK-V3-MINIE) as well as confirmed data is on the wire with a logic analyzer as well as a scope. Furthermore, I have also run a loopback test to assure the com port is working for the V3-MINIE. Despite this, I still can't get transmission to show up in my serial terminal (I did receive the message once but I beleive it was in a GDB session and I have not been able to replicate it since). Any suggestions for anyone who has run into a similar issue with this device (for context I am using an STM32F411CEU6 black pill board)? I can provide any extra context where needed but I have run through the motions and still cannot seem to come to a solution.
Hi ST Team,I just downloaded X-Cube-Matter package v1.5.0 and noticed that support for STM32WB55 uC was entirely removed, without even being mentioned in the release notes. Why is that? Is the uC being discontinued?Where can I find updated Matter examples for STM32WB55?Thanks
le_advertising_event = (hci_le_advertising_report_event_rp0 *) p_meta_evt->data;int8_t rssiValue = (int8_t) le_advertising_event->Advertising_Report[0].RSSI;We are using the BLE stack version full stack = v1.24.0.3 (we had older version 1.18.0.3 but with this too we had the same issue).FW Package : v1.15.0Cube Mx: v6.7.0
HI allI'd like to know how to be able to read a data file from windows.I have to convert those data (binary) from windows system, to another format, and then write them to a flash W25Q.The only part I'm missing is how to open then read those bin files in windows. I have around 100 of those windows files to work on, and they are on the same windows folder.So what are my options to do that.Thanks all.For now I'm using a Nucleo-L432KC, on STMcube 1.19.0.
I am using the STM32U585RIT6 MCU with the B-U585I-IOT02A development kit. My primary focus is on USB, and in my project, I have enabled USB CDC-ACM, through which data and messages are transmitted over USB.For this project, I need to enable firmware update support. I have been searching for a suitable example, but most available examples require manual interaction with the hardware—such as setting the BOOT0 pin high and resetting the board, or pressing a user button to jump to the bootloader and perform the firmware update via a programmer.However, I do not want any physical interaction with the board. I need the firmware update to be triggered purely through software, perform the update, and reset the device without manually changing the BOOT0 pin or pressing any buttons.Is this possible? If so, what are the steps that need to be followed, and are there any reference examples available for this approach?
Hello everyone,I am migrating a design from STM32F446 (UFBGA-144) to STM32H533 (UFBGA-144) and noticed that FMC-SDRAM is no longer supported on the STM32H533.On the STM32F446, the FMC supports SDRAM and provides signals such as SDCLK, SDCKE, and SDNE, allowing the use of external SDRAM devices. On the STM32H533, these SDRAM-related signals and the FMC SDRAM mode are completely absent, and only SRAM/PSRAM/NOR/NAND memories are supported. From the reference manual and datasheet, this appears to be a hardware design choice.Could someone clarify the main reason for this architectural change between STM32F446 and STM32H533, and also for applications that previously relied on SDRAM performance, is OctoSPI PSRAM/HyperRAM considered the recommended alternative on STM32H5? Thank you in advance for your clarification,Best regards,Aymen
I was doing reset through SPI command and expected results are not happening. this is the line i was expecting to reset the MCUSCB->AIRCR = (NVIC_AIRCR_VECTKEY | (SCB->AIRCR & (0x700)) | (1 << NVIC_SYSRESETREQ));where#define NVIC_AIRCR_VECTKEY (0x05FA << 16) #define NVIC_SYSRESETREQ 2also my watchdog is running and expected to reset the system.code snippet FLASH_Unlock(); FLASH_ErasePage(0x08013000); FLASH_ProgramWord(0x08013000, (uint64_t)0x0000000000000000ULL); FLASH_Lock(); FLASH_Unlock(); FLASH_ErasePage(0x08013008); FLASH_Lock(); SCB->AIRCR = (NVIC_AIRCR_VECTKEY | (SCB->AIRCR & (0x700)) | (1 << NVIC_SYSRESETREQ)); __DSB(); while (1); Edited to apply proper source code formatting - please see How to insert source code for future reference.
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.