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
We have provided SWIM, 5V, and GND connections to the microcontroller for programming and debugging purposes. Is it possible to program the ST8S001J3M3 MCU using the ST-Link V2 or V3 via the 5V, SWIM, and GND connections?Please find the attached reference schematic for your review. Additionally, if there are any recommendations or required corrections in the schematic related to programming connection, kindly let us know. We look forward to your valuable response.
Hello, I am working with an STM32MP135f-dk device running Linux and trying to evaluate the possibility of using the USART peripheral in synchronous mode (TX/RX + CK). From a hardware point of view, the STM32 USART clearly supports synchronous operation. However, when using the standard STM32 USART Linux kernel driver, the peripheral is only exposed as a /dev/ttySTM* device and operates strictly in asynchronous (UART) mode. As far as I can see, the current driver does not enable or drive the CK clock signal, which makes true synchronous USART communication impossible under Linux, even though the underlying hardware is a USART. My questions are:1. Is this limitation expected by design in the current STM32 Linux USART driver? 2. Has anyone successfully implemented synchronous USART on STM32 under Linux, for example by: Extendimg the existing driver, writing a custom kernel driver, or using an alternative ?
I have made a dynamic menu made with a listLayout with a number of buttons inside a scrollableContainer. When a user push the buttons the listLayout is updated with new content.I have not been able to have the scrollbar reflect the size of the listLayout after the listLayout is updated. The scrollbar will only update when the user starts scrolling through the new content. Until then it reflect the precious size of the listLayout.I have tried:scrollableContainer1.doScroll(0, 180);Thinking it would have the same effect as the user scrolling the scrollableContainer, but it does not work.Is there a way to force update of the scrollbar?
Dear all, We are using the STM32N6570-DK to encode a video stream (800x600px) and store that at a reasonable data rate to an external sd-card.I have extended the VENC_SDCARD_ThreadX example to a certain extent to cover the obvious timing differences between the video capture loop and a disk write loop. The sample code is a great way to go forward, but at the moment we reach a data write rate of about 25kb/s when using FileX.We have initially used the HAL implementation but I have changed the fx_stm32_sd_driver_glue.c code slightly to use the BSP layer for card speed negotiation that is not present in the HAL layer; debug output shows that we're at least using 4-bit wide data transfers>:CardInfo type 1, version 1, class 1461, spd 0 Inst PWR 00000013 CLKCR 00004004 It seems that just before reaching down to the HAL layer, the single transaction (~200blocks at once, typically), is split into single sector writes in the sd_write_data function (fx_stm32_sd_driv
I need to create a UART driver that works reliably in all conditions.The driver must use DMA, and since the incoming messages are NOT fixed-length, I need to use idle line detection.My question is: how can I use a callback to store the received message when an idle line is detected and then restart the reception using the STM32 HAL idle-line API?
I have successfully integrated a ST25R100 NFC reader with an ST25DV04K tag. Reading and writing data works perfectly.But once you enclose the system in its housing, writing doesn't work, even though reads still succeed.I presume this has something to do with that tag rely entirely on the RF field to power their EEPROM during write operations.Can I increase transmitting power via software?I can't find it the Documentation.Any help greatly appreciated!William
Hello, I'm using STM32CubeIDE 2.0.0 + STM32CubeMX 6.16.1 + FW_H7 V1.12.1 I have a problem with USBX RNDIS.The generated code on file ux_device_descriptor.h at line 308 is: #define USBD_RNDIS_EPINCMD_ADDR 0x81U In the exemple code of STM32H735-DK find on stm32-usbx-exemple repo I have this #define USBD_RNDIS_EPINCMD_ADDR 0x82U The USB device is well recognized be my computer (windows 11) only if the value is 0x82U. My questions: - why it doesn't work with 0x81 - is there is a tips to modify this value on Cube ? Actually I add an error at the end of the file if value is 0x81.. Thanks for help !
I am a software developer working for a company that plans to use TouchGFX for its display solutions.We are currently integrating TouchGFX into an existing IAR-based project and want to use our own display and DMA drivers instead of the CubeMX-generated setup. While TouchGFX initializes and runs partially, we are facing a critical issue where several expected callbacks are never triggered.Problem descriptionThe following methods are never called during runtime:TouchGFXHAL::flushFrameBuffer(const touchgfx::Rect& rect)OSWrappers::takeFrameBufferSemaphore()OSWrappers::giveFrameBufferSemaphore()Our TouchGFX thread performs all required initializations, passes our custom LCD driver to TouchGFXHAL, and then calls touchgfx_taskEntry().VSync-related callbacks are working:OSWrappers::signalVSync() is executedbackPorchExited() is executedlockDMAToPorch is 0 (as expected)Despite this, no framebuffer flushing or framebuffer semaphore handling occurs.HAL initialization detailsOur TouchGFXGenera
Hello, Using controller: STM32F767BIT6 External SRAM: SRAM-1x16M-48TSOPI Interface SRAM via FMC is successful, currently using heap_4 and tried to work with moving variables & complete heap to external SRAM and it works. But I want to use external RAM as extended RAM if internal RAM get exhaust. I have seen some examples in Keil which allow to do the same by using .ANY .ANY (+RW +ZI) So, this will allow to use runtime RAM if it is free, so just for thoughts, if I define .ANY in internal and external RAM then in runtime it will decide where to go based the available size. But in STM32CubeIde, not sure how it can be done. So, I need help or examples to understand how we can actually use external SRAM as extended RAM. Thanks, Nitin
I am implementing a TCP Server on an STM32H563ZI (Nucleo-144) using NetXDuo. The software initialization part is working perfectly; the ThreadX kernel starts, and NetXDuo reports that the IP instance (192.168.2.55) and TCP are successfully enabled.The Implementation Logic:The system is designed to initialize the network interface, assign a static IP, and start listening on Port 80 for incoming commands. Physically, the link is established as the Ethernet LEDs are active.The Problem:Despite the stack reporting a "Ready" state:There is no ICMP (ping) response from the board.TCP connection attempts via Hercules or Telnet on Port 80 fail with a timeout.It feels like the MCU is either not receiving packets from the PHY or failing to transmit them back to the wire.I am looking for guidance on why the communication fails even though the software reports success. Is there a specific configuration for the H5 series regarding the RMII interface or internal memory management that could prevent pa
I opened a PR on https://github.com/STMicroelectronics/u-boot.git for a patch that is applicable only downstream, and since I did not receive any response, I contacted Patrice Chotard, who told me to contact you for submitting downstream patches.In addition to U-Boot, I have patches to submit to:https://github.com/STMicroelectronics/linux.githttps://github.com/STMicroelectronics/meta-st-openstlinux.githttps://github.com/STMicroelectronics/meta-st-stm32mpCould you please guide me on how I should proceed?Thanks and regards,Dario
Could you please help me find out how much internal storage space this model STM32F427VIT6 has? Thanks a lot.
hello everybody I am programming 10 addressable Leds with PWM with DMA using the M7 cortex of an STM32H747 in a custom board.Characteristics:Clocks: SysClk 480 MHz, TIM kernel clock 240 MHzTimer: TIM3, Channel 4, internal clockPWM base frequency: ~770 kHz (period ≈ 1.3 µs).ARR: 312‑1 (312 ticks → 240 MHz/312 ≈ 769.23 kHz).DMA: Peripheral = TIM3_CCR4, Memory in RAM_D2, half‑word alignment (16‑bit duty), MemInc enabled, PeriphInc disabled, Mode = Normal.What worksIf I run the timer alone (fixed duty), the PWM is correct and stable.The problemWhen I enable PWM + DMA, the waveform becomes random/discontinuous. On the oscilloscope I see “splits” and gaps; the PWM is not continuous. For example, the first 8 bits might be high and the following 16 low (intended to represent RED), but the stream breaks unpredictably. The data buffer looks correct when inspected in the debugger.The configurationI am using channel 4 timer 3. with internal clock source.and DMA is configured as:where data wid
Hello.For example, on the datasheet of ST25R200, on page 10, it shows 2 capacitors between pins VDD_A and GND_A, but on page 13 it is not shown the recommended values of these 2 capacitors.Would they be 2.2uF and 10nF, or 1uF and 10nF, for example?I'm talking about pin 14 in this case.Regards.
stm32cubeclt一直安装不了,明明安装路径没有中文,就是安装失败。 Edit by ST Moderator (Here is the translation of your post): The STM32CubeCTL simply won't install. Despite the installation path containing no Chinese characters, it still fails.
Hi, I'm supporting a legacy product which uses this older sensor, VL6180X.Where could I find the API source code for download? It seems that all links for "STSW-IMG003", "STSW-IMG011" etc. which are listed in the docs have been erased from the site. Could someone provide a working link to the latest API version, or perhaps just attach the .zip here for posterity?Thanks in advance!
I used version 6.14 beforeand could choose OrCAD's package There is no option for "Cadence" in version 6.16.1
I am creating a program that jumps from the bootloader to the application program using the STM32F410.The bootloader uses 0x08000000 to 0x08003FFF.The application uses 0x08004000 to 0x08007FFF.The bootloader program jumps to the application program successfully,but after entering the application program, the USART interrupts do not function.The SPI in the application program continues to operate after the jump. I'm posting the jump-related program.Can you figure out what the cause might be? I'd appreciate your help.【Bootloader main.c】 void jump_main(){ __disable_irq(); // Clear all interrupt bits for (uint8_t i=0; i<8; i++) { NVIC->ICER[i] = 0xFFFFFFFF; NVIC->ICPR[i] = 0xFFFFFFFF; } int * address = (int *)0x08004004; __set_MSP(*(int*)0x08004000); *(int*)0xE000ED08 = 0x08004000; ((void (*)())(*address))(); } 【Application main.c】 int main(void) { /* USER CODE BEGIN 1 */ /* USER CODE END 1 */ /* MCU Configuration---------------------------------
I've been developing an object detection application from scratch by using STM32CubeMX and IDE. The evaulation board that I'm using is STM32N6570-DK.I actually succeeded in implementing the continuous displaying of camera input. And then I tried to import the AI related code from the object detection code in STM32 Model Zoo Services.But unfortunately I found that there is a problem while executing Run_Inference() function.I traced the execution step and then finally I found that there is something wrong in handling NPU interrupts.In the ATON_STD_IRQHandler() in ll_aton_runtime.c file, irqs variable has the value of 0x16000000 which leads to exit().To find out the expected value, I downloaded the object detection code in STM32 Model Zoo Services, and then found out the irqs variable should have the value of 0x10000000.I would like to know the meaning of each bit in the irqs variable, which seems to be ATON_INTCTRL_INTREG variable.STM32CubeMX: 6.16.1 for Windows 11STM32CubeIDE: 2.0.0STM3
Hello everyone.I am doing a TOUCHGFX project with STM32H750IBT6, W25Q512, IS42S32400F-6TL. I took my first screen printout and the image came out shifted. I am using my screen vertically by rotating it 90 degrees in Touchgfx Designer. I still haven't solved the problem. I would be very happy if you could help me.
SummaryOur eventual product will use the LSM6DSV320X but right now, all we have is an LSM6DSV80X chip on the STEVAL-MK1247A breakout board. The products are close enough that I can test on the 80X. I am currently trying to implement the burst read feature of the chip. I am having two main problems when doing the burst read:1. After some time, I am getting tags in the FIFO for parts of the sensor I have not enabled (e.g. I get a temperature tag despite not having enabled temperature batching)2. For some reason, my INT1 pin is triggering even though the FIFO watermark is not met. PlatformBoard: Nordic nrf52840-dkOS: Zephyr RTOS (nRF Connect SDK v3.2.0)Sensor: LSM6DSV80X on the STEVAL-MK1247A -- SPI Clock at 8 MHz BackgroundIn Section 9.8 of AN6119 it describes how to retrieve data from the FIFO and there are two methods provided:1. Read the FIFO_STATUS1 and FIFO_STATUS2 registers to check how many words are stored in the FIFO.This information is contained in the DIFF_FIFO_[8:0]
LINK TO THE CODEHello everyone,I'm working on a data logging project using a NUCLEO-L432KC board and a standard Micro-SD card module.I have a very frustrating issue: Reading from the SD card works perfectly, but Writing fails immediately.Hardware Setup:MCU: STM32L432KC (Nucleo-32 board)SD Module: Generic MicroSD Card Module (with 5V to 3.3V regulator and level shifter).Power: Module is powered via the 5V rail from the Nucleo. I added a 1000µF / 25V electrolytic capacitor in parallel on the breadboard to prevent any power drops (brown-outs) during write operations.Pinout: * SCK: PB3MISO: PB4MOSI: PA7CS: PB6 (Software managed)Software / CubeMX Setup:Library: FatFS R0.12c (via STM32CubeIDE).FatFS Config: _FS_READONLY = 0 (Disabled), _FS_LOCK = 0.SPI Config: MSB First, CPOL Low, CPHA 1 Edge, Baud Rate 125.0 Kbits/s for init.GPIO: SPI pins are set to "High" output speed.The Problem:My code successfully initializes the SD card. f_mount returns FR_OK, and f_getfree correctly reports the total
What is the marking on the bottom side of these sensors i.e. VL53L1X and VL53L1? for eg. on the bottom of VL53L1X it is written VL53LIB...so what is the marking for VL53L sensor. Basically I want to know how can I distuingh between these 2 sensors as both of these sensors returns the same model and module id.
New user, fresh download of STM32CubeIDE 2.0.0.Created the demo "hello world" c++ project. Then attempted to compile it. It fails with the message:Error: Program "make" not found in PATHPATH=[C:/ST/STM32CubeIDE_2.0.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.jre.win64_3.4.100.202508201254/jre/bin/server;C:/ST/STM32CubeIDE_2.0.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.jre.win64_3.4.100.202508201254/jre/bin;C:\windows\system32;C:\windows;C:\windows\System32\Wbem;C:\windows\System32\WindowsPowerShell\v1.0\;C:\windows\System32\OpenSSH\;C:\ST\STM32CubeIDE_2.0.0\STM32CubeIDE] I have examined the contents of C:\ST\STM32CubeIDE_2.0.0\STM32CubeIDE and i dont see "make.exe" anywhere in the directory tree. Where is it? Why doesnt the IDE find it wherever it is? Help
Hello ST Community,We are working with STM32N6 (STM32N6570-DK) and an IMX335 camera sensor, and we would like to confirm whether our intended pipeline is supported and feasible on this platform.What we are trying to doOur goal is to enumerate the device as a standard USB UVC camera on a PC and stream live video:- IMX335 sensor outputs RAW10- STM32 ISP processes RAW10 (demosaic, color processing)- DCMIPP outputs RGB565- Firmware converts RGB565 → YUY2- USB Device enumerates as UVC (Uncompressed YUY2)- Live video displayed on Windows camera applicationThe USB device enumerates correctly and is detected as a UVC camera on Windows, but the live video stream currently appears black.Current Observations- USB descriptors and UVC configuration (Uncompressed format, payload handling, FID/EOF toggling) appear correct- DCMIPP and USB pipelines run without errors- The camera frame buffer contains all zeros, indicating that the ISP may not be producing valid RGB outputMain Questions1- Is live USB U
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.