Join conversations with your peers and ST experts. Explore the full potential of STM32 microcontrollers for your embedded design.
Most recent activity
Hello,I am currently testing Bluetooth LE communication between two STM32WB5MM-DK boards. For the test, I am usingthe data_throughput example, which I've adapted from the P-NUCLEO-WB55 software package.According to the official datasheet for the STM32WB5MMG module, the "Features" section mentions acommunication range of "up to 75 meters."However, in my real-world tests, I am only achieving a stable connection range of about 10 meters. My testconditions are as follows:* TX Power: +6 dBm (the maximum setting)* TX PHY: 1 MbpsThis significant difference between the datasheet specification and my results leads to two main questions:1. Are there any recommended methods to increase the communication range using this same hardware setup(STM32WB5MM-DK)? For example, are there specific software configurations or best practices I might be missing?2. Under what specific test conditions was the "up to 75 meters" range validated by ST? Understanding the testenvironment (e.g., open-air, line-of-sight
Dear all! this is the first time i design TCP/IP board, i didn't have any experience before. i design hardware as UM2198( page1 and page 8), can you help to review and feedback me if it have any problem. Beside that i config on STM32CubeMX already. can you share me is it correct or not. many thanks for your support.
Hello, I don't seam to see anything related to the implementation of the USB PD AVS system to allow a sink to request voltages of up to 48V. Am I miss-reading the X-CUBE-TCPP code? If it is missing, is there a plan to implement it? Thanks a lotHave a nice day
Hello, We are currently experiencing an issue with the STM32U585QII3 microcontroller. We use the LSE pin of the microcontroller to inject a 32.768 kHz signal generated by an external TCXO MEMS-type oscillator, with the input configured in RCC_LSE_BYPASS mode. This clock supplies both a timer and the RTC function. We have observed a loss of clock functionality at low temperatures, around -10°C to -20°C. To further investigate this phenomenon, we routed the LSE clock to the MCO pin (since the LSCO pin is not available on our hardware). On the functional boards, the duty cycle observed on the MCO pin is approximately 60% ON / 40% OFF, with a slight influence from temperature. (The TCXO duty-cycle is 50/50) However, on systems exhibiting the fault, we observe at room temperature a duty cycle of around 80% ON / 20% OFF, which shifts to 98% ON / 2% OFF when cooled, until the clock on the MCO pin is lost entirely.This also causes the RTC function and the timer to stop working. Once the board
Hello,I am using a STM32H757 to convert 12 analog channels using ADC2 and ADC3 (code running @ Cortex M7).- Both ADC are configured at 42MHz sync clock, triggered by a timer- ADC2 use DMA1s0 to transfert data to AXI SRAM.- ADC3 use DMA1s1 to transfert data to AXI SRAM.Using a scope, I can see a little drop on the analog lines revealing the sampling point. The 12 sampling point timing fit perfectly the expected behavior (relative to the timer pulse), so, ADC clock, sample time and conversion time are verified and good.CPU clock = 336MHzAXI/AHB clock = 84MHzbackground, IRQ routine and vector table code are all moved in ITCMRAM. All data resides in DTCMRAM. There is nothing running from flash and no data in SRAM.Code compiled in release mode, optimized for speed.I'm using the HAL only for init. All run-time code is using direct register access.I'm using a GPIO configured as EVENTOUT and asm("sev") to instrument the code. void DMA1_Stream0_IRQHandler(void) { asm volatile("sev");
I have diymore stm32f407vgt6 board , I connect usb give DEVICE NOT RECOGNIZED if i try DFU mode BOOT0 >3.3V, BOOT1 > GND, I try every thing but nothing . please help mee
I was trying to get the most out of my H563 set up and run as fast as possible. I am using the Nucleo-H563 board. I reconfigured in CubeMX to use System clock mux to use HSE source mux, multipliers and dividers set correctly for 250MHZ operation. There are no errors shown in the setup and I am showing 250 Mhz as the SYSCLK. My AHB is /1, HCLK shows 250MHZ which is feeding the peripheral busses. While the clock configuration APB1 shows 250Mhz it does not seem to be correct as when I set the timers and prescalers for such the timing is not correct... the bus seems to be running at 125mhz. For my TMR1 to get 1us clock I have to set the divider to 124 which implies the internal clock is running at 125Mhz not 250 like the clock diagram shows. I have attached the Clock Configuration from CubeMX that shows no clock issues.
Hello ST Support Team, I’m currently designing a custom board using STM32H750XBH6.In this design, I would like to interface a 32-bit SDRAM for improved memory bandwidth and performance. However, I noticed that in the official STM32H750 development board (Nucleo/Discovery), the same MCU (STM32H750XBH6) is connected to a 16-bit SDRAM interface only. I would like to confirm the following points: Is it possible to interface a 32-bit wide SDRAM with the STM32H750XBH6? If yes, are there any pin multiplexing conflicts or hardware limitations on the FMC (Flexible Memory Controller) that I should be aware of? Any reference schematics, Cube MX configuration tips, or verified examples for 32-bit SDRAM with STM32H7 would be very helpful. Your technical guidance will be very valuable to me in finalizing this design. Thank you.
My project is working as expected using the DSI_TE_EXTERNAL with a TE pin from the display.How to get the TE event via DSI? Is that default enabled?If I use "CmdCfg.AutomaticRefresh = DSI_AR_ENABLE;" then I get the interrupt to my callback. But timing is bad.Anyone solved the problem earlier?
Hello!I am using a custom board with STM32H563VIT6. I want to create an MQTT project which will send data to a local laptop via an Ethernet cable. I am using STM32H573I-DK\Applications\NetXDuo\Nx_MQTT_Client as the example project to do so, but I am facing a problem.The problem is that when the nx_app_thread_entry function is called it will get stuck when this line is calledif(tx_semaphore_get(&DHCPSemaphore, TX_WAIT_FOREVER) != TX_SUCCESS)Then this leads to "__tx_ts_wait" in the nx_thread_schedule.S forever.This is my call stack up to __tx_ts_wait:__tx_ts_wait@0x08000336 (...\STM32H563VIT6_Ethernet\Middlewares\ST\threadx\ports\cortex_m33\gnu\src\tx_thread_schedule.S:279) <signal handler called>@0xffffffbc (Unknown Source:0) _tx_ipsr_get@0x08009bdc (...\STM32H563VIT6_Ethernet\Middlewares\ST\threadx\ports\cortex_m33\gnu\inc\tx_port.h:511) _tx_thread_system_return_inline@0x08009bdc (...\STM32H563VIT6_Ethernet\Middlewares\ST\threadx\ports\cortex_m33\gnu\inc\tx_port.h:615) _
I have multiple issues while driving the vehicle with the MCSDK software running. It is custom hardware MCSDK6.4.0Hall sensor based.1. Every time i start the vehicle at the beginning it jerks and then picks up, the behavior is not predictable, but jerking is always there some times more, less and hall fault etc. Now i have tested again on the bench and captured the waveform of the phase currentsThe first few steps before the sinusoidal phase currents is problematic, so if i count i get 3 jerks before the motor started running. Can i eliminate this? It always happens when i start. Does it have anything to do with hall placement angle. I have not run the Motor pilot as i don't have the setup for that. I can perform multiple iterations of trial and error for the placement angle if the above angle is a problem at present it is 30. And my forward movement and reverse does not have the same placement angle may be due to the motor design.Next major problem is intermittent speed feedback fault
Hello community The upgrade process of my device should be handled by the ROM bootloader over UART1 and FDCAN1. Therefore i can unset nBoot0 from the application and reboot to ROM. (If the new app can boot it sets nBoot0) The reset is triggerd by the HAL_FLASH_OB_Launch(). After this reset i can communicate with the rom bootloader only per UART. To use FDCAN communication a power reset is necessary.Then it works perfectly fine (go cmd). Trying this i havent connected any UART to my board. If resetted and once sucessfully queried per fdcan the uart option from STM32_Programmer_CLI.exe says "Error: Activating device: KO." So the protocol detection works after the power reset. (After the OB reset it chooses UART1) On the NUCLEO board the first thing i get after debugging HAL_Init() is exactly one Frame error in HAL_UART_ErrorCallback() but PA10 is not connected.I havent seen that behavior on my custom board and can only imagine that by the OB reset the uC sees a uart tx somehow.
Honestly, this choice feels like a trap.STM keeps promoting it as a “solution,” but compared to Murata, ESP32, or Broadcom it looks outdated:– Legacy M4 core, original MXCHIP code from 2017– Closed software, very little documentation– Hard to debug (no sequence diagrams, no clear dedicated examples)– Rare, unpolished firmware updates– No Nucleo board for hands‑on exploration– Doesn’t seem seriously supported by MXCHIP anymore (similar by STM)This isn’t a shallow impression — I spent three weeks with console access and a logic analyzer writing and debugging code on the B‑U585I‑IOT2A board, and the friction was constant.Curious if others see the same issues, or if there’s a hidden advantage I’m missing?
I created a simple project back in May (simple - some buttons, temperature display) and mounted in a box (landscape/0 rotation).I went to reuse the display with a new TouchGFX project (same box) and it is flipped 180! When I load the old code, correct side up, new project in TouchGFX and it is upside down. I checked the forum and this isn't easy to do and requires extra code - how is this even possible? For reference, it is a fairly new STM32F469I-DISCO (blue) purchased in May of 2025. Old project - SDCARD/Headphone jack faces down.
Hello Everybody,Here are the software and boards in this case:1. MC workbench 6.4.12. STM32 FW V1.28.2I designed a project for my board, but the generated code has an error as illustrated in the picture, I didn't make any modification on the code and complie it directly after the generateion,How can I fix the problem??Thank you!
Hello, I am working on a home made board featuring an STM32G474QE in 128 pins and multiple relay drivers (MAX4896 : MAX4896 - Space-Saving, 8-Channel Relay/Load Driver)If I understand it well, the principle is fairly easy, sending a flow of data consisting of 8 times the number of MAX. Once that is done, driving the Chip Select to LOW will drive the outputs of the relay drivers depending on what the value of each bit is.In my case, I have 9 relay driver daisy-chained so that would be 72 bits to send in one data flow. I have two questions regarding this. First off all, what mode should I put the SPI in, I coulnd't find this information in the MAX datasheet.My second question is more of a code issue, would anyone have any example of how to code something of this sort.Thank you very much for any help
I am referring to the note AN5373 and MB1550/1549 schematics to design a STM32U575xx based board. The note AN5373 shows no connection for the VLXSMPS and VDDSMPS pins when SMPS is not used. Do i just leave them floating? How should I connect them if I do not want to use the SMPS? Also there is no 'VCAP' pin on my symbol.Please Assist.
I have a NUCLEO-C071RB with an STM32C071RB. In section 31.1 of RM0490 Rev 5, it describes the first 32 bits of the unique ID like this:Bits 31:0 UID[31:0]: X and Y coordinates on the wafer expressed in BCD formatBCD should mean binary-coded decimal, which means each 4-bit nibble is between 0 and 9, but if I run "STM32_Programmer_CLI --connect port=swd -r8 0x1FFF7550 12", I get:0x1FFF7550 : AF 00 40 00 14 50 36 42 48 37 30 20The first byte, 0xAF, is not BCD.In my experience working with these chips, it looks like bytes 0 and 2 are just arbitrary binary bytes which tend to be less than 0x80 but not always. And bytes 1 and 3 are always 0.So what do those first four bytes really represent? And is the documentation for the other 8 bytes in RM0490 accurate? It says there is a 1-byte wafer number, followed by 7 bytes of ASCII for the lot number.(Part of the reason I'd like to know this is so I can make a good scheme for converting the unique ID to an ASCII string
Hi everyone,I'm currently working on a project where I need to establish UART communication between an STM32L053R8T6 Nucleo board and a Chafon RFID reader IC. The goal is to send commands from the STM32 to the reader and receive tag data in response.Here's what we've done so far:Hardware setup:- STM32L053R8T6 Nucleo board- Chafon reader IC (connected via UART)- Power and ground lines are properly connected- TX/RX lines are cross-connected (STM TX → Reader RX, STM RX ← Reader TX)Software setup:- Using STM32CubeIDE with HAL drivers- UART initialized at 115200 baud (default for Chafon)- Basic transmit/receive functions implemented using HAL_UART_Transmit and HAL_UART_Receive - We're sure about the exact command format expected by the Chafon reader (e.g., start/stop bytes, checksum) but the reader doesn’t seem to respond to our test commands.- All the connections and UART ports are properly verified. Questions Has anyone successfully interfaced a Chafon reader or any ot
Could you provide me a repo link to the SDIO driver so that I can read through it and implement my custom code. I need something generic to FreeRTOS SDK.
Dear SupportI am using STM32H563, try to get internal Vref, and temperature working, and ADC conversion is OK, but when using macro __HAL_ADC_CALC_VREFANALOG_VOLTAGE, and __HAL_ADC_CALC_TEMPERATURE to convert to Vref and temperature, it ends up a in HardFault_Handler(), I tried to read the address directly for the value like below:Cal2 = (float)((int32_t)*TEMPSENSOR_CAL2_ADDR);Cal1 = (float)((int32_t)*TEMPSENSOR_CAL1_ADDR); And ends up same, no matter in Nucleo-H563 or my target board, please help!Regards!Ping
Good Evening Sir/Mam, Sir/Mam, I have a query about the DCMI of STM32U595RJT6Q. I have read the Datasheet of STM32U595xxx and it was written in it that- DCMI of this MCU is for use with Black & White Camera Modules and it is assumed that all preprocessing is pre- performed in the Camera Module. Sir/Mam, it would be very helpful if you could please confirm and verify these both things (Interface with Black & White Camera Module and Preprocessing is needed to be pre- performed in the Camera Module), and if you could please provide any- websites at which- X24 & X5 Camera Modules would be available at cheapest rates (if any). Thanking You, ANKUR.
Hi everyone,I’m currently designing a board using an STM32H533RET6 and I have a question regarding the VSSA pin connection.Should VSSA be tied directly to GND (VSS) like the other ground pins, or should there be an inductor (L) placed between VSSA and VSS, as shown in the schematic below [see image]?I couldn’t find any explicit recommendation about this in the datasheet or reference manual. However, I’ve noticed that some older designs used an inductor between VSSA and VSS.Personally, I would tend to connect VSSA directly to GND (= other VSS Pins) and leave out the inductor, unless there’s a clear benefit to including it.Has anyone here implemented the STM32H5 series and can confirm the recommended approach?Thanks in advance for your insights!
Hi,I'm working on STM32L496 for some security application, as per L4 series documents I see that L4 series controllers has AES hardware, but in my IOC settings under security option I don't see the AES. Why is this? does it mean STM32L496 doesn't have AES hardware inbuilt? if yes is there any software approach?Thanks
DS13565 Rev 2 says under 3.20: "The embedded USB controller cannot be used on STM32G0B0KE as this device does not provide an HSE oscillator input.". Well, sounds reasonable. But same DS says in Table 11 for Pin 2 (LQFP32) PC14: "OSC32_IN, OSC_IN" whereas for the higher pin count packages PC14 has only "OSC32_IN".So, HSE bypass is available on LQFP32?!Now CubeMX 6.10.0 with G0 1.6.1, gives after selection of "G0 series" and "USB FS" a list *INCLUDING* STM32G0B0KET6, and even the "Features" tab of the very same device shows "USB 2.0 FS device and host controller". After selecting STM32G0B0KET6, one can definitely check "BYPASS Clock Source" under "RCC", and Pinout view shows this is located on PC14, as expected. Clock config tab now allows HSE -> PLL -> PLLR -> SYSCLOCK, and even shows "PLLQ" and "USB Clock Mux", but both not configurable. But neither RM nor DS restricts use of PLLQ divider for LQFP32. Pretty inconsistent.So, after all, what's the intention regarding
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.