Join conversations with your peers and ST experts. Explore the full potential of STM32 microcontrollers for your embedded design.
Most recent activity
Hi,I was wondering if there's any reference application or if you have any advice on drivers to capture video from a MIPI CSI-2 image sensor (perhaps Sony or the ST BrightSense image sensors (VB1940 (active) or VD1940 (preview) match the 5.1 MP dimensioning of the STM32N6) with STM32N6x7 or STM32N6x5 μCs?The aim would be to waken up the STM32N6 in response to an external digital input, record video from a MIPI CSI-2 image sensor to SD or eMMC then return to sleep mode.I'd be happy to consider bare metal, Zephyr or FreeRTOS - whatever you recommend.Thank you very much for your help and all the best for 2025!Will
Hello,I am attempting to run a Brushless DC-Flat motor using the STEVAL-PTOOL4A board. However, the system fails right after entering the RUN state, returning an ERROR MC_DP_FAULT (via MC_GetOccurredFaultsMotor1).To resolve this, I tried using the Motor Profiler to identify the exact motor characteristics, but I am unable to establish a connection with the board (see attached screenshot).Motor Characteristics:Nominal Voltage: 12 VDCRated Speed: 10,000 rpmStarting torque: 225 mNmRated Current: 2.18 AWinding Resistance (phase-phase): 0.88 ΩWinding Inductance (phase-phase): 0.331 mHPole Pairs: 7Could you please help me identify the cause of the MC_DP_FAULT error and why the Profiler fails to connect?Best regards,JulesEdit 05/02: I have managed to get the motor running; however, I am still unable to establish a connection to the board via Motor Pilot.
IssueHigher ambient temperatures cause communication malfunctions with XSPI memories.DetailsOur design is heavily adopted from STM32H7S78-DK which also has the same issue described below.The application uses memory-mapped mode for both Flash and RAM as the main operational units. These memories are configured in the bootloader and everything generated using CubeMX. According to the datasheets, all three components (CPU, Flash, and RAM) are specified to operate reliably under the given conditions, and they do function correctly under normal temperatures.The problem arises when the ambient temperature increases from 25°C to 60°C. These temperatures are within the acceptable operating range for all components, as stated in their specifications. Upon reaching higher temperatures, the memories start to exhibit failures. However, further investigation revealed that the issue is not with the memories themselves. When the memories alone are heated, they continue to operate reliably, even at el
Hello, I am currently looking at the reference designs for STM32WLEx and am interested in board reference STDES-WL5I4IHH. (high band, high power with optimized BOM target for 915MHz/22dBm). As seen on page 6 of: Data brief - STDES-WL5xxxxx - Reference designs for STM32WL5x and STM32WLEx microcontrollers When looking at the BOM, the only difference I see between STDES-WL5I4IHH and STDES-WL5I4IHL is the IPD with designator U4. But when looking at the schematics, inductor L3 has no value attached. The BOM states it is 47nH and recommends LQW15AN47NG00. I also checked for STDES-WL5I4ILH which also has 47nH for L3. Is this correct?Do all 3 of these use an L3 inductor with value 47nH? STDES-WL5I4IHH | Product - STMicroelectronics STDES-WL5I4IHL | Product - STMicroelectronics STDES-WL5I4ILH | Product - STMicroelectronics I am mainly asking this question because when looking at the eval board NUCLEO-WL55JC, there is a switch that changes that i
Hello ST Community,I am currently testing the PWR_DEEPSTOP_RTC example on the STM32WL33CC and I am observing a higher current consumption than expected in Deepstop RTC mode.According to the documentation, the expected current in Deepstop mode with RTC (LSI) enabled should be around 1–2 µA. However, I am consistently measuring approximately 50 µA. The application appears to be entering Deepstop correctly (according to the consumption behaviour). I'm measuring with the following configuration:1. Set the JP2 jumper to OFF.2. Insert the external supply on pin 2.3. Connect GND to CN12.4. Change the position of SW1 (not the default position).Could you please advise what might be causing this discrepancy?Thanks.
Dear ST Community,I'm experiencing an issue with USBX Host implementation on STM32H573RIT6 where disconnect events stop working after enabling Host Controllers FS in CubeMX.Problem DescriptionEnvironment:MCU: STM32H573RIT6 (Custom board)Middleware: Azure RTOS USBX + FileX (MSC Host)VBUS: External constant 5V supply (no USBPD/VBUS sensing used)Connection detection: DP pin basedCubeMX: UX Host FS + Host Controllers FS enabledHAL setting: hhcd_USB_DRD_FS.Init.vbus_sensing_enable = DISABLEBehavior:Before USBX activation: Both HAL_HCD_Connect_Callback() and HAL_HCD_Disconnect_Callback() work perfectly with USB memory stick connect/disconnectAfter USBX Host Controllers FS activation:Initial USB memory connection: HAL_HCD_Connect_Callback() works fineUSB memory removal/reconnection: No HAL_HCD_Connect_Callback() and HAL_HCD_Disconnect_Callback() calledQuestions/RequestsHow to maintain HAL HCD callbacks when using USBX Host Controller
Hi,I'd like to know if execution jumps to the interrupt handler of Timer x only when the CCxIF flag changes state from 0 to 1. What happens if the flag is already set and an event occurs that would have caused the flag to switch from 0 to 1 had the flag been in the 0 state? Would the ISR be called or would it be ignored?I'm using the STM32G473VCH3 controller. Thank you.
STM32WL55 BPSK modulation bitrate for transmission and reception. Transmission is mentioned in data sheet is 600 bit/sec, but need to know reception max bit/sec. Is that same 600 bit/sec?
In the documentation on STM32N657X0, it says that the memory must be connected with match length track on the boards.It says:Match length (including BGA package length)- DQS0 with IO0..7 (Byte0), all in 50 mils,- DQS1 with IO8..15 (Byte1), all in 50 mils,- CLK is100 mils from any signal of Byte0 or Byte1- NCS can be CLK +/-700 milsBut I can't find any documentation on "BGA package length".It seems reasonable that the BGA package should be taken into account, since it is 12.8 mm.and a precision of 1.27mm (50 mils) is specified.I hope someone can help me find that documentation.Keld
Hello,We have been using CANbus as our form of communication for a system with multiple nodes. Each node was individually tested with CAN and all of them work without issue. However, when we started system integration testing, we noticed significant noise on the CANbus channel that caused data to stop. To give more details, we are running 2 battery packs, a power electronics DC/AC converters (to create a 120Vac signal) and a central supervisory controller, which are all using STM32 MCUs to communicate to each other via CANbus. We are using an STM32H7AGI6, STM32F401RE, STM32F303RE. When we send a CANbus command to start the DC/AC converter, that is when the noise appears and we cannot communicate with the MCUs until the DC/AC converter is turned off. We have termination resistors at the end of the bus and I have verified that the 60 Ohm resistance is seen on the bus. I've also attached a copy of our schematic for the CANbus, which all of the nodes use (except that the 120 Ohm
Hi,Have this working on STM32F302R8 but cannot seem to get my SD Card working on an STM32F446RE. Using hal 0.23.0 with stm32F446 and embedded-sdmm 0.9.0); let sd_mosi = gpiob.pb15.into_alternate::<5>(); let sd_miso = gpiob.pb14.into_alternate::<5>(); let sd_sck = gpiob.pb13.into_alternate::<5>(); let mut sd_spi = Spi::new( dp.SPI2, (Some(sd_sck), Some(sd_miso), Some(sd_mosi)), Mode { polarity: Polarity::IdleLow, phase: Phase::CaptureOnFirstTransition, }, 400.kHz(), &mut rcc, ); let sd_spi_dev = ExclusiveDevice::new_no_delay(sd_spi, sd_cs).unwrap(); rprintln!("Reading file..."); let num_bytes = sdcard.num_bytes().unwrap(); rprintln!("SD Card Size: {} bytes", num_bytes);Which gives[2026-03-01T05:30:04.085Z, +020837ms] panicked at both_test/src/main.rs:184:40: [2026-03-01T05:30:04.085Z, +020837ms] called `Result::unwrap()` on an `Err` value: CardNotFoundVery new to all this but certain of wiring. The SD Adaptor has an Ams117 chip but I have tried in
We've been using STiROT + OEMuROT for STM32H7S on our system, with our own application.The secure bootloader handles most of its functionality very well, and the security aspects in particular. The scripts provided by ST were very helpful, as was the documentation on the ST wiki. We are grateful to ST for providing these.However, it proved extremely challenging to get the secure bootloader working with our application, mainly because the secure bootloader makes a number of important assumptions about the user application which are not documented.These unstated assumptions initially prevented our application from running, and it took a considerable amount of time and effort to solve all the problems associated with them.AssumptionsThe main assumptions are:OEMuROT assumes that the application will use the same clock setup as itself (especially PLL1 and PLL2): as documented in a separate post, we needed to change the clock settings in our application compared to OEMuROT, and thi
After more debugging, the jump function works correctly (PC reaches 0x080208xx, SP and RST are valid), but the app never sends any UART message after jump — even with SystemClock_Config() completely commented out and only HAL_Init() + MX_UART_Init() remaining. The bootloader resets the clock to HSI before jumping. SCB->VTOR is set in SystemInit(). Linker is at 0x08020000. The app works perfectly when flashed directly at 0x08000000 via ST-Link. Something is killing the app immediately after the bootloader jumps but we can't figure out what — any ideas?this is the project : https://github.com/said-sketch/Flashing-by-UART---STM32-Bootloader/tree/main
Dear STMicroelectronics Community,I am experiencing a critical issue with my NUCLEO-144 STM32N657X0 EVAL BRD following an attempted ST-LINK firmware upgrade.During the ST-LINK upgrade process (via STM32CubeProgrammer), the upgrade became stuck and did not complete successfully. After this, the board became non-operational.Current behavior:The board is no longer accessible via ST-LINK (SWD).Flashing is not possible using STM32CubeProgrammer (ST-LINK connection fails).The target MCU cannot be detected or programmed.Powering the board via the on-board USB still works, but no flashing/debugging is possible.The ST-LINK interface appears unresponsive / corrupted.Actions already attempted:Power cycling the boardTrying different USB cables and portsUsing STM32CubeProgrammer CLI and GUIAttempting connection with different reset modes (UR / HWrst / HotPlug)Verifying BOOT0/BOOT1 configurationsUsing macOS (USB device intermittently detected)It appears the ST-LINK firmware may be corrupted due to t
use stm32h743 with eth and a LTE moderm.OS theadx and netxduo ....eth works well I can't find where to congfig ppp, How to select serial port ,and so on.I search the forum and find no answer.
求助篇!使用主控芯片STM32F405RGT6 在操作flash后 复位指令不起作用 这是什么问题呢?////////////////////以下是代码段/////////////////////////////*注释以下语句就可以自动复位成功*/Translation:I'm using STM32F405RGT6 microcontroller, the reset command doesn't work after flash operation. What could be the problem?HAL_FLASH_Unlock(); if (HAL_FLASH_Program(TYPEPROGRAM_WORD, FWR_ADDR, 0) != HAL_OK) { printf("Clear OTA flag error\n"); } else { HAL_Delay(10); uint32_t flag_sttus = HAL_FLASH_GetError; if(flag_sttus & HAL_FLASH_ERROR_PGA) { printf("flash_err!\r\n"); } printf("Clear OTA flag\n"); } HAL_FLASH_Lock();请各位大佬看看是什么情况 感谢!!!!Translation:Could someone please take a look and tell me what's going on? Thanks
Hello everyone,I’m working on a project with the STM32H750B-DK board using TouchGFX and FreeRTOS. I need serial output via the onboard ST‑LINK Virtual COM Port for debugging. According to the board documentation, the VCP is connected to USART3 on PB10 (TX) and PB11 (RX).The problem:In CubeMX, I select USART3, set mode to Asynchronous, and assign PB10/USART3_TX and PB11/USART3_RX. However, in the pin configuration table, these pins remain with "n/a" in the GPIO mode column, the "Modified" checkbox stays unchecked, and they are not configured as Alternate Function Push‑Pull. The generated code therefore never initializes these pins correctly, and I get no output on the VCP.What I have tried:Resetting the pins (PD8, PD9, PC10, PC11) that were previously assigned to USART3.Right‑clicking on PB10/PB11 and selecting "Signal Unpinning" to remove any locks.Manually setting the Alternate Function to AF7 via the right‑click menu.Changing the GPIO mode in the table from "n/a" to "Alternate Functi
To follow up this thread, CTS signal on USB CDC - STMicroelectronics Community I'm experiencing a similar issue. USBser.sys have some problem 1. Only DTR Break can control alone you can set DTR is 1 or 0, but RTS have change,RTS only change with DTR. 2. CDC Serial State I have test this code, it send from Endpoint 81h successfully, but PC USB Host have no message CDC_IN_Buf[0] = 0xA1; /* bmRequestType 0xA1 (10100001B) */ CDC_IN_Buf[1] = 0x20; /* 0x21 (SERIAL_STATE) */ CDC_IN_Buf[2] = 0x00; /* wValue LowByte */ CDC_IN_Buf[3] = 0x00; /* wValue HiByte */ CDC_IN_Buf[4] = 0x00; /* wIndex LowByte Default 0 */ CDC_IN_Buf[5] = 0x00; /* wIndex HiByte */ CDC_IN_Buf[6] = 0x02; /* wLength LowByte Serial State Length 0x0002 */ CDC_IN_Buf[7] = 0x00; /* wLength HiByte */ CDC_IN_Buf[8] = 0x14; /* Data LowByte */ CDC_IN_Buf[9] = 0x00; /* Data HiByte */ /* CDC Serial State bit define (USB CDC 1.1 6.3.5 ) bit0 bRxCarrier 0x
Excited to see a new connector on new STM32 Nucleo 144 boards like the Nucleo-H5E5ZJ. Is the Connector intended for customers to design their own modules only, or will ST offer a module as well? PS: I still hope to also see a Qwiic connector, or at least a footprint for it, on Nucleo boards some time in the future.
One small issue I have. I have a custom STM32F411CEU6 board, quite similar to the WeAct Black Pill in terms of connections, except for the fact that I have a LED on pin PB13, and whenever I try to blink it using:while (1) { /* USER CODE END WHILE */ HAL_GPIO_TogglePin(GPIOB, GPIO_PIN_13); HAL_Delay(500); /* USER CODE BEGIN 3 */ } in the STM32CubeIDE, everything works fine and dandyThe moment i switch to using the Arduino Framework, albeit with the Arduino IDE or PlatformIO, with parameters of:platform = ststm32 board = genericSTM32F411CEusing the code:#define LED PB13 void setup() { pinMode(LED, OUTPUT); } void loop() { digitalWrite(LED, HIGH); delay(1000); digitalWrite(LED, LOW); delay(1000); }or anything similar, it just doesn't work! It always says the upload is successful, and it verifies successfully too! But why then, it refuses to work? Any suggestions?
Can Mesh network be implemented on a STM32 WB05KZ? If yes, how? I don't see any available examples in the STM32CubeWB0 MCU package.
Hi everyone,I’m working on an STM32U5G9 using USBX + ThreadX.I was able to make the device work as:MSC onlyCDC-ACM onlyMSC + CDC-ACM simultaneouslyThat part is fine. What I need now is more dynamic behavior: start the device as MSC, and when a button is pressed, stop USB, change the class to CDC-ACM and restart it (long term I’d like to switch arbitrary combinations of classes, but for now switching from MSC to CDC-ACM is the goal.)From what I understand, I must stop USB so the host will re-enumerate using the new device descriptor, and I’m OK with that. However, every approach I tried ends in a HardFault when I restart with the other class. I suspect I’m missing a call or doing things in the wrong order.How I start the device (this works):/* Start device with MSC only (initial boot) */ /* First I insert CLASS_TYPE_MSC is "UserClassInstance" variable in ex_device_descriptors.c (not shown here), then: */ ux_device_stack_initialize(...); /* Register MSC-only */ ux_device_stack_class_regi
Hello ST experts,I configured an STM32H745 dual core to read data from ADC1/ADC2 in dual mode. I dedicated the M7 core to initialize ADCs, timer and DMA. But after running the code it seems that the ADC is not working either DMA. I used the similar code on the STM32H750 single core. The code is correct.I think I have to configure extra settings for dual core such as managing the memory. Could you please help me.The DMA is in circular mode with "Word" data length.TIM2 triggers the ADCs.
Hi ST team,Is VREFINT in STM32C011F4P6 internally fixed and stable, independent of VDDA fluctuations?If VDDA fluctuates (for example due to LDO load or battery discharge), will the ADC raw readings change proportionally because ADC reference = VDDA?Is it officially recommended for STM32C0 users to read VREFINT periodically and compute real VDDA to correct all ADC channels, especially when VDDA is not stable? Example : - ADC accuracy change if VDDA fluctuation like 3.3v to 2.9v. ? or it can take ref from Vrefint ?
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.