Join conversations with your peers and ST experts. Explore the full potential of STM32 microcontrollers for your embedded design.
Most recent activity
Hello, Using STM32F4 USB USB_OTG_HS, PCD_SPEED_FULL for USB Device CDC we are transmitting data to Host.After some minutes the transmission gets stuck. Although the TXFE IRQ is received, no XFRC IRQ happens and consequently TX state is not set back to 0. The DTXFSTS counter stays on 0x40 (empty is 0x80).The USB trace looks normal. When the problem occurs the peripheral answers all IN Transactions with a NAK.Why does the peripheral not transmit the data but does NAK instead?The problem is seen with different types of Hosts (PC or other embedded devices).Attached Log Output and Screenshot of the Trace.HAL 2.4.2 us used. The TxState fix was applied (Enable/Disable IRQ moved to USBD_CDC_TransmitPacket)Many thanks for any help.
For our product we use sliders to set parameters in our software. Some parameters effect the range of others at runtime. Sometimes the allowable range of the values is limited to a single value. In such a case min equals max. This leads to an assert error in the simulator and undocumented behavior on the target.We would like to see support for min=max. One way to implement it is to show the Indicator Image in the center (or left), disable sliding, and set the value=min=max. This would simplify our firmware since we wouldn't need to handle it as a special case.I also added the tag bug-report since undefined behavior on the target is unacceptable.
Hi@all Curently i was using STM32F407VGTX but i found that there is no support of snmpv3 on this board so i decided to go for stm32H753ZI. Kindly please suggest that does this board supports snmpv3 or not and if not please suggest me the board that supports snmpv3 i want to deploy in my products
Hello, I am experiencing an I²C communication issue between my MPU6050 sensor and an STM32F429I-DISC1 board. The sensor is properly powered at 3.3 V, and I have already verified its operation with an ESP32 board (communication is successful). However, with the STM32, no communication is established. Actions performed: Configured I²C1 on the STM32 (tested in fast mode at 400 kHz and standard mode at 100 kHz) Verified the MPU6050 address (default 0x68, AD0 pin connected to GND) External pull-ups: tested with and without 4.7 kΩ resistors on SCL and SDA Checked physical connections (SCL to PB6, SDA to PB7 for I²C1 on the board) Configured the LCD screen Observed behavior: The I²C scan does not detect any address Blocking point: The same sensor, using the same basic I²C code, works perfectly on the ESP32. Therefore, the sensor is not the cause. The issue appears to be related to the I²C configuration on the STM32 or a hardware detail. Question: Has anyone encountered this behavior with
Hello,I currently need to transfer ADC data from a nucleo-n657x0Q to a PC. I've configured the stm32n6 using ST's example on GitHub, but I still don't know how to use the `ux_device_class_cdc_acm_write` function to transfer the data.Can anyone guide me on how to transfer data using this USB HS?
Hi,This is my first time using an STM32N6 without internal flash, and since I am right before handing over files for artwork, I would appreciate it if you could check if the power lines and XSPI memory connections are correct.I have searched around a lot, but since it is my first time, I feel a bit nervous, so please let me know if everything is correct.>I looked it up and found that to boot via Nor-Flash (quad), I need to connect XSPI1 to XSPIM_P2. Also, since I try to connect the 16-bit PRAM in DTR without DQS mode, I connected it as XSPI2->XSPIM_P1. Is this correct? I really need to BOOT via Nor-Flash and use PRAM after that. (swapped mode? in CubeMX)>This is the power line. It operates at 1.8V, and an STM employee told me to connect all CSI/USB lines to ground if I am not using CSI/USB. Is this the correct way like this all? I won't be able to fix it if the power section is wrong, so I would really appreciate it if you could let me know.
Hello ST Community, I am currently evaluating an architecture based on STM32H7 series MCUs (STM32H743 / STM32H7A3) and would appreciate guidance on external memory scalability and best practices. Target Architecture Bootloader in internal Flash Main application stored and executed from external OctoSPI NOR Flash (XIP mode, memory-mapped at 0x90000000) External RAM for buffering (TCP/IP, DLMS stack, application data) Planned External Memory External NOR Flash via OctoSPI (large size, potentially >512 Mbit) External RAM target: ~256 MB (initial requirement) Key Questions 1. XIP Execution from OctoSPI NOR Is full application execution from OctoSPI NOR considered reliable for production systems? What are the recommended: MPU settings for external flash (cacheable, bufferable, execution attributes)? I-Cache / D-Cache configuration? Are there known limitations regarding branch-heavy code or interrupt latency when executing from external flash? 2. External SDRAM via FMC What is t
Hello Community, I am working on an STM32N657X0H3Q project and have successfully configured both USBX and X-CUBE-FREERTOS (v1.4.0) within the same Application runtime context using CubeMX. My goal is to implement a USB CDC Composite device. Since USBX traditionally relies on Azure RTOS (ThreadX) for its RTOS primitives, I am seeking the recommended best practice for running USBX on a FreeRTOS-based system. Should I configure USBX in standalone mode? If running USBX in Standalone mode, what is the best way to handle thread safety when accessing the USB CDC interface from multiple FreeRTOS tasks? Are there any known issues using the USBX Composite Builder when the underlying kernel is FreeRTOS instead of ThreadX?
Working on STEVAL-SPIN3201 board and need help in expected low-speed torque performance using Field-Oriented Control (FOC).System Configuration:Motor Driver Board: STEVAL-SPIN3201Motor: 3-phase BLDC (Rated torque=0.25Nm)Position Feedback: Hall sensorsObserved BehaviorDuring testing, I observed that the motor struggles to start at lower commanded speeds when a load is applied.Load: 0.05Nm1000–1500 rpm: Motor struggles to start.2000 rpm: Motor starts reliably.Load: 0.1 Nm1000 rpm: Motor does not start.1500–2000 rpm: Motor struggles to start.3000 rpm: Motor starts reliably. Whether this behavior is expected and advise on any key parameters (e.g., startup current, Hall alignment, or rev-up settings) that should be optimized?Is there any startup current limitation in STEVAL-SPIN3201 firmware?FOC should provide high torque at low speeds, including during startup. However, the current behavior suggests that the available starting tor
Hi, You know, there are some strict requirements about MCU used in optical module or production, which include1. Size and package2. Internal resource3. IO amount, especially ADC and DAC with >= 12bit resolution which be used to monitor signal and control4. Power efficiencyCould you please recommend latest ST MCU which are used widely in ultra high-speed optical module such as OSFP and NPO? or, share me roadmap about ST MCU series used in optical production? Thanks in advance!Best regards!Jason
I have this Riverdi board with a STM32H757XIH6 microcontroller. I have been using it consistently and loading touchgfx programs on it. Today I was trying to use the 40 pin header and program one of the gpio pins on it to act as a gpio output. I put an led on a ground and the PA4 pin, which was the pin I was using on the 40 pin header, to verify the toggling code was working. Nothing happened and so I tried to load a basic program onto the board using stmcubeMX and selecting the STM32H757XIH6 microcontroller. I selected the PA4 pin on the .ioc file and generated the code. However, when trying to run the program I get this error, . Not sure if it was that program or touching the multi meter to certain pins that cause a hard fault or something. I would not think a multi meter could do anything like that, but I'm trying to figure out why all of a sudden I am unable to upload a program to the board when I have been consistently. 
I am using STM32H7R7L8H with MX25L12833F external memory. I created a project with has bootloader, application and external memory loader.Before starting this project I opened another to test if I can read/write/erase MX25L12833F. By using XSPI in Quad mode I could do all the operations. Below I shared the configuration: XSPI1: EXTMEM_LOADER: EXTMEM_MANAGER: With this configuration I built the project and it generated external loader. In STM32CubeProgrammer I can read MX25L12833F memory, it can do mass erase too but it can't do sector erase. I created an application hex which is located at 0x90000000 and tried to write this file to external memory by using generated loader. Here is the result: 00:51:51 : Opening and parsing file: Appli.hex 00:51:51 : Memory Programming ... 00:51:51 : File : Appli.hex 00:51:51 : Size : 8.54 KB 00:51:51 : Address &n
Hi everyone,I am working on a custom PCB designed , but I’ve run into a hardware design constraint and would appreciate some architectural advice on the best way forward.The Setup:Main MCU: STM32L476 (Programming via STM32CubeIDE / HAL)Coprocessor/WiFi: ESP32-WROOM (Intended to handle AWS IoT connections)The Constraint: The PCB designer connected the STM32 and ESP32 exclusively via an I2C bus. There are no physical UART traces connecting the two chips.The Original Goal: The initial plan was to use the STM32 to write firmware directly to the ESP32 over UART, or to use a UART software bridge, and then use UART for passing sensor data to the ESP32 for AWS publishing.The Dilemma: Because the ESP32 ROM bootloader requires UART0 (TX0/RX0) for flashing, I realize a software bridge from the STM32 over I2C to flash the ESP32 is physically impossible.My Questions for the Community:The Initial Flash: Aside from tack-soldering temporary wires to the ESP32's TX0/RX0 pins to perform the initial flas
Hello,I am planning to use STM32H562RGT6 in my product to communicate and update my firmware via CAN FD.To plan that, I am using STM32CubeMX 6.17.0, the datasheet and the AN2606 (Rev 70).And I would like to use only one CAN FD to communicate and to update my firmware in this MCU. But it is impossible to do this in STM32CubeMX. I have only access to FDCAN1. And there are no FDCAN2 on the pins.So, is it a problem in STM32CubeMX ? Or should we use FDCAN1 to do firmware updates via FDCAN for this MCU ?PS: it is the same problem with the MCU STM32H562VGT6 (and maybe other similar MCUs)
I have followed the datasheets and tried to calculate my reference voltage. I am supplying steady 3V on Vref+ pin but I wanted to confirm this because I have some troubles with the ADC precision.So I read the internal voltage both on my card and on a nucelo-C092rc. This is my results: My board:Vref+ = 3.0 * 1659 / 1805 = 2.755Nucelo board:Vref+ = 3.0 * 1665 / 1641 = 3.043However I am quite certain that the nucelo boards are using 3.3 V as reference and my board are using 3 V as reference.So if I swap the 3.0 V from the datasheet into 3.3 V I get the following:My board:Vref+ = 3.3 * 1659 / 1805 = 3.033Nucelo board:Vref+ = 3.3 * 1665 / 1641 = 3.348Which match more my expectations, can someone confirm or deny this typo?I add my adc init function:u16 uiDelay = 0; ADC_CFGR2.CKMODE = 0x0; // Clock mode set to ADCCLK ADC_CCR.PRESC = 0x2; // ADC prescaler set to 48MHz / 4 = 12MHz ADC_CFGR1.RES = 0x0; // Set 12 bit resolution ADC_SMPR = 0x07; // Sampling time set to 1,5 ADC clock cyc
Hello, While using the Nucleo-F446ZE, I observed that pin PA1 remains at approximately 2.6 V during reset, even when an external pull-down resistor is applied. On this development board, PA1 can be configured as the RMII Reference Clock. However, I have removed SB13, so this function should be disconnected and no longer influence the pin. Given that no internal or external circuitry should be driving this pin and considering that an external pull-down resistor is present I would expect PA1 to be held at 0 V during reset. Why the pin is not pulled low in this condition?
Hello,I have a few questions regarding image and audio formats on STM32U5.For graphics with TouchGFX, I see that PNG is usually used. However, in some MCU documentation it is recommended to use JPEG. Also, when I try to add a JPEG image directly in TouchGFX Designer, it does not work.Which format is preferable between PNG and JPEG for TouchGFX?Why is JPEG recommended in some MCU documentation?Is JPEG intended only for dynamic loading with software or hardware decoding?What is the recommended way to use JPEG images with TouchGFX, if possible?Regarding audio on STM32U5, which audio format is recommended such as WAV, MP3, AAC or other?Is there a specific library recommended for audio playback on STM32U5?Is there an optimized solution provided by ST?Thank you in advance for your help.
Hi, Our product uses 2 x STM32WB55 MCUs, where one as Server/Coordinator and the other one as Client/Router for Zigbee. However, our customer prefer to use customized PAN ID or Extended PAN ID so that more controllable and traceable by their application software later. Below is the setup of the Server/Coordinator and Client/Router in my firmware (modify based on sample code "Zigbee_OnOff_Server_Coord & Zigbee_OnOff_Client_Router"). ** Server/Coordinator :startupControl = ZbStartTypeForm;config.panId = 0x0001; // range from 0x0001 to 0xfffeconfig.extendedPanId = 0x00001; // incremental from 0x01 onwards ** Client/Router:startupControl = ZbStartTypeRejoin;config.panId = 0x0001; // range from 0x0001 to 0xfffeconfig.extendedPanId = 0x00001; // incremental from 0x01 onwards Questions:1. May I know the configuration above is enough and valid to do so?2. What are the steps needed or I missed out in order to use customized PAN ID or extended PAN I
Hello - I have a product I am commercially developing for a company - an industrial sensor system - STYM32G474 x 8 - using them for their very fast ADC - all good so far. I am using a SPI bus to get all the data back to as Linux SBC (pi CM5 for now - might change next year - needs 2 cameras and NVME).I would like to update all the STM32G474 over UART (for now) then over to SPI for production - using the raspberry pi cm5.Is there an open source C++ / python program that can do this from ST? - something like the old "https://github.com/stm32duino/stm32flash" but supports the newer chips? perhaps OpenOCD would work but that is even more connectors etc.
Hi, I would like to know when samples and kits for the new STM32H5E4/5E5 will be available.I already asked my local distributor this question, but they didn't know the answer. Ari
Hardware: STM32G473QETXHAL Version: STM32G4 HALI2C Mode: Slave mode using HAL_I2C_Slave_Seq_Receive_IT()Application: DS1307 RTC emulation Issue DescriptionWhen implementing an I2C slave device (DS1307 RTC emulation), we observe that HAL_I2C_ErrorCallback() is consistently called with error code HAL_I2C_ERROR_AF (0x00000004 - Acknowledge Failure) at the end of successful write transactions from the I2C master Transaction FlowMaster sends START + Address (0x68) + WRITESlave ACKs (address match detected)Master sends data bytes (8 bytes total)Slave receives all bytes correctly via HAL_I2C_SlaveRxCpltCallback()Master sends NACK (to signal end of write)Master sends STOPHAL_I2C_ErrorCallback() is called with HAL_I2C_ERROR_AFHAL_I2C_ListenCpltCallback() is also calledExpected BehaviorAccording to I2C protocol, the master sending NACK at the end of a write transaction is normal behavior to signal "I don't want to send more data." This should not be reported as an e
Hi,I am at the beginner/beginning stages trying to pick up STM32 ecosystem involving touchGFX and a display board STM32H7S78-DK. For now I would like to interact a touch button on screen to turn on an LED.Could I get guidance on the overall workflow if it is correct:1) touchGFX - generate UI and generate code2) open up STM32CubeIDE and import touchGFX generated .cprojects and other supporting files3) edit .ioc file to set LED pin (PO1) as output (active-low). save and generate code4) stm32CubeIDE -> build and run -> LED PO1 turns on but my display goes blankover at touchGFX when I try to regenerate code it states [generate code failure] Could I get some guidance thanks.
Hello,TouchGFX seems to have some sort of a “bug”, where in PORTRAIT orientation the text will glitch with some weird white lines, unless there is an image in the item-tree situated ABOVE text items. It doesn’t have to be any image in particular, but MUST be an image.If there isn't any image added, then every text element is glitched the moment I rotate to PORTRAIT:touchgfx::HAL::getInstance()->setDisplayOrientation(isPortrait ? touchgfx::ORIENTATION_PORTRAIT : touchgfx::ORIENTATION_LANDSCAPE);The glitched text looks as such (see the white weird lines corrupting the text):This is my item tree in TouchGFX Designer (I also tried removing the background but the white lines remained):Then, if I add any kind of image, any text area under that image in the designer stack-up, it will be displayed without glitches and any text area placed above will glitch as such (Note, the XY location in the screen does not affect this, only the stack-up arrangement!):This is the stack-up to produce such
I am using a custom PCB design with a 480x800 pixel RGB input LCD display. I am driving the display via the LTDC peripheral. When I change the default colors, the color on the screen changes accordingly, which indicates that there is no apparent hardware issue with driving the LCD.However, when I try to display a simple text on the screen using TouchGFX, the system enters the DMA2D_XferErrorCallback function due to a DMA2D error. Because of this, the text cannot be rendered on the display.Could you please explain the possible reasons for this DMA2D transfer error and what might be causing it? best regardsCelil Bayrakdar
Hi, Currently I face problem that TouchGFX 4.26.0 use a lot of PC RAM up to 9GB RAM Project info: Resolution 480x800 Number of screen 26 Number of custom container 82 Support language: 5 Typographies: 25 With the same design for resolution 272x480 use up to 3GB RAM How can I reduce number of RAM usage? Thanks, Phat
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.