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
Hello,I'm using uSD.I observe that in the sd_diskio.c driver SD_TIMEOUT is 30sec, is'nt very long ?If uSD works normally is not sufficient just 1sec ? Best regards.
Hi, I'm designing the board for STM32H755IIK6. My power supply plan is SMPS + LDO, since I want to use 480MHz speed. I wonder if there are better recommendations about 2.2uF VCAP placement. There are three VCAP pins, but two 2.2uF capacitors are instructed to use in reference design. On the other hand, capacitors should be placed near VCAP pins. So how to place two capacitors near three pins A4, A14 and R13? It looks like MB1520 does not have capacitor near A14. Is that correct implementation?
When I write code, should I keep the microcontroller on, or turn it off and only turn it on when I want to test the code?
Hi,we are using the STM32H7R7I8T6 MCU with an Infineon S70KL1282 HyperRAM Chip attached on XSPI1 and configured via CubeMX, we are looking for an example for the correct timing/parameters to use the RAM Chip in memory mapped mode as Graphics RAM.Our current config makes makes reading and writing possible but the memory contains garbarge data.We are repeatedly trying to write the string "1234567890" into the external RAM but we get back the following:The current config is built from various other examples we could find like this one: https://github.com/STMicroelectronics/STM32CubeH7/blob/master/Projects/STM32H735G-DK/Examples/OSPI/OSPI_HyperRAM_MemoryMapped/Src/main.c but the parameters do not match exactly. Our current code looks like this:/** * @brief XSPI1 Initialization Function * @PAram None * @retval None */ static void MX_XSPI1_Init(void) { /* USER CODE BEGIN XSPI1_Init 0 */ /* USER CODE END XSPI1_Init 0 */ XSPIM_CfgTypeDef sXspiManagerCfg = {0}
Why is it that when I set the clock frequency of the STM32 to a high frequency (180 MHz), the code will crash, but when I set it to a low frequency (72 MHz), the code can run normally?
Hi, I know that currently STM32WB0 is the only family of BLE MCU that currently supports BLE PAwR, but this MCU is very limited in terms of on-board peripherals, RAM and other features. The STM32WBA series looks like a promising candidate for one of our upcoming projects (industrial sensor nodes application), but unfortunately it seems it does not support PAwR. So I wanted clarity on if there is any plan to support PAwR in the near future on STM32WBA chips? Best Regards,MCM
Following this thread Solved: USBPD EPR Source - STMicroelectronics Community Do you have a similar guide on how to do EPR as a Sink?
Hello ST Support Team,I am reporting a regression issue with the latest STM32F0xx Device Family Pack (DFP) version 3.1.1 when used with Keil MDK 5.43a.Problem Description:Installation Issue: The DFP 3.1.1 often fails to install via the Pack Installer, showing validation errors or failing to resolve dependencies.Missing Registers: Even when successfully installed, the System Viewer in Debug mode is empty. Peripheral registers (GPIO, RCC, etc.) do not appear for the STM32F030 series.Environment:IDE: Keil uVision v5.43a.0Device: STM32F030xx (all variants)Pack: Keil::STM32F0xx_DFP.3.1.1OS: Windows 11Observations:The issue seems to be related to the new SVD (System View Description) file structure or pathing in the 3.x.x branch.Manually pointing to an older SVD file (from DFP v2.2.3) restores the register visibility.The "System Viewer" list in the "Peripherals" menu remains blank when using the default settings of the 3.1.1 pack.Request:Please verify the compatibility of the SVD files in th
Hello,I am trying to use an accelerometer LIS2DUXS12 in ultralow power mode using the FIFO with a threshold. To initialize it, I configure the registers using the driver's functions in this order:sw resetinit setfifo_mode_set (operation = LIS2DUX12_BYPASS_MODE to reset the FIFO, store = LIS2DUX12_FIFO_1X and xl_only = 1)fifo_batch_set (dec_ts = LIS2DUX12_DEC_TS_OFF and bdr_xl = LIS2DUX12_BDR_XL_ODR)fifo_mode_set (operation = LIS2DUX12_FIFO_MODE, store = LIS2DUX12_FIFO_1X and xl_only = 1)fifo_watermark_setfifo_stop_on_wtm_setpin_int2_route_setmode_setI use odr=25Hz ULP, fs = 2g.Everything works fine as long as I setstore = LIS2DUX12_FIFO_1Xand bdr_xl = LIS2DUX12_BDR_XL_ODRbut as soon as I add a divider to BDR (for example I set bdr_xl = LIS2DUX12_BDR_XL_ODR_DIV_2), the FIFO remains empty forever.Same result if I usestore = LIS2DUX12_FIFO_2X instead of store = LIS2DUX12_FIFO_1X.I read the number of elements in FIFO after a timeout with lis2dux12_fi
I have a question about writing to the STM32F410's FLASH.I'm creating a program to write data received via USART to FLASH, but it's not working correctly.The writing to FLASH itself is happening, but the written data differs from what I expect.This different written data contains a large number of “0xAA” values that are not present in the original data.Do you know what might be causing this phenomenon?void FLASH_UNLOCK(){ while ((FLASH->SR & FLASH_SR_BSY) != 0){ } if ((FLASH->CR & FLASH_CR_LOCK) != 0) { FLASH->KEYR = 0x45670123; FLASH->KEYR = 0xCDEF89AB; } } void FLASH_DELETE(uint32_t address){ while ((FLASH->SR & FLASH_SR_BSY) != 0){ } FLASH->CR |= FLASH_CR_SER; FLASH->CR |= (FLASH_CR_SNB & 0x8); FLASH->CR |= FLASH_CR_STRT; while ((FLASH->SR & FLASH_SR_BSY) != 0){ } if ((FLASH->SR & FLASH_SR_EOP) != 0) { FLASH->SR |= FLASH_SR_EOP; } else { } FLASH->CR &= ~FLASH_CR_SER; } void FLASH_Write
I’m a beginner with TouchGFX, and I’m wondering whether it’s possible to make touch input behave the same way it does on mobile smartphones. Specifically, before a drag event is detected, the finger must move a certain number of pixels.What I’d like is this: when a press event is first detected, you check whether the user has moved their finger at least 10 pixels, and only then do you start moving the screen. However, once that threshold is reached, the screen should move starting from 1 pixel. When the user releases their finger, a release event occurs and everything is reset, so that after the next press event, the finger must again move 10 pixels before a drag event can occur.Is it possible to implement this behavior? I tried using setDragThreshold, but then the entire screen scrolls by the number of pixels specified as the threshold. Is it possible to change setDragThreshold dynamically in the view?
Hi,I am using the X-NUCLEO-NFC09A1 with the demo project “ST25R200_v3.0.0_Linux_demo_v1.0”.The code is running on a Raspberry Pi 3B and communicates with the reader via SPI.When I run the demo and place an NFC tag near the reader, the application reports “READ Fail”.Could someone please explain what this error means and what might cause it?Thank you.
Hello, Developing a firmware to update the application via Bootloader over USART2. But, the STM32U5G9BJYXQ is not responding on 0x7F. The MCU is successfully starts from the NSBOOTADD1(0x0bf90000) on driving the BOOT0 pin high while deasserting the reset. The USB-USART tool is sending a proper 0x7F, verified by oscilloscope. Please point to what I might be missing.
Hello,I use STM32 Motor Control X-CUBE-MCSDK. I currently am on this stage - please see screenshot attached. For my project, I use two gimbal Sparkfun 3-phase BLDC electromotors with the encoders AS5048A. Right now, I have just one motor, see the screenshot. Could someone please clarify how to add the second motor? I also need to add two brushless 3-phase motor-drivers https://www.sparkfun.com/sparkfun-brushless-motor-driver-3-phase-tmc6300.html#content-documentation and one power board (9V 5A step down voltage regulator) https://www.pololu.com/product/5576 instead of the X-NUCLEO-IHM11M1 power board. Could you please clarify how to add them? Thank you.
I'm building a little tester for 6821 PIA using a STM32F103.I need to be able to write to the data bus of the PIA, and also read from it. (6821 has 4 registers that are addressed using 2-bits input RS0,RS1).So 8 GPIO pins for the databus. And I use 3 more GPIO pins for RS0,RS1 and R/W pin.For writing to the PIA:I set the GPIO pins to output, set the output pins actual data and then make R/W low for writing.For read from the PIA:I set the GPIO pins to input, make R/W high for reading and then read the input pins..Does that sound right? I'm concerned about the timing between the GPIO data bus pins switching from output to input (and back) and then toggling the R/W line to the PIA. Is all this switching even needed?
Hi here. I am trying to get STM32H743iit as usb_audio_device with CubeMX latest version.No initialization of stm32 sound device in windows 10 device manager.Other projects from this link https://www.waveshare.com/wiki/OpenH743I-C especially USB_FS, USB_HS working good, but in windows devise manager no descriptors info in usb device properties windows for HID project. Could somebody help where i am got problem with usb_audio_device? I change VID, heap size but it is do not help. Please help.Regards
Hi,Within VSCODE terminal my ninja build (from MX cmake project) will run just great. But in the Winwows CLI I get 'cube-cmake ' is not recognised.....When I add %USERPROFILE%/.vscode/extensions/stmicroelectronics.stm32cube-ide-build-cmake-1.43.0/resources/cube-cmake/win32 to the PATH, windows says ''cube' command is not available in current context'I'm looking for some clues to understand the issue a bit better!Thanks in advance,Nick
I'm trying to interface a TI ADC with an STM32U575ZI or STMU545RE (same issue on both Nucleo boards).The ADC has a "data ready" pin that needs to trigger a fixed-size transfer of 32bytes over SPI. Given the overall sampling rate, only a few microseconds are available for overhead. Seems like a natural fit for the autonomous mode + DMA features on the STM32U micros, but I can't seem to figure out how this is supposed to go together.I can get one transfer going no problem, sometimes two, but something always errors out. Currently getting a MODF flag, which makes no sense based on the documentation as the NSS system is set to "software" and always at 1.Is there a document describing how the DMA and SPI modules interact under autonomous mode? I'm clearly missing something important here. Handshaking, what causes the TSIZE to reload the CTSIZE register, recommended DMA configs + trigger setups, anything?Working on putting together an example for people to disse
Hi, I have been working on a project that is based on the ST25R3911b Discovery Board including building prototype firmware from the discovery kit's firmware. I have made sure not to edit any of the RFAL or HAL library files.Recently I had brought this prototype to be pre-scanned for radiated immunity. During this testing, I discovered a bug that I have not seen before.The process gets stuck in an infinite loop in the rfalTransceiveRunBlockingTx() function (found in rfal_st25r3911b.c).Specifically on line 1267, while( (rfalIsTransceiveInTx() && (ret == ERR_BUSY)) );In the rfalTransceiveTx() function, the process enters the RFAL_TXRX_STATE_TX_WAIT_TXE case and checks for interrupts. However, there will not be any interrupts to process, and so the process breaks without updating the gRFAL.TxRx.state.This appears to me like the interrupt from the NFC chip was either not sent or was not received correctly, so when that Do while loop checks "(ret == ERR_BUSY)", it will always be
Hi, I am facing an issue while connecting to my board using STM32CubeProgrammer and ST-LINK. I would appreciate any help. Board: NUCLEO-F072RBProgrammer: ST-LINK (Onboard)Software: STM32CubeProgrammerConnection: SWDST-LINK Firmware: V2J46M31 Issue Description:STM32CubeProgrammer is unable to detect the target MCU. It shows errors like: Unable to get core ID No STM32 target found ST-LINK error (DEV_CONNECT_ERR) Observed Details: Target voltage showing around 0.29V Connection mode tried: Normal (SWD) Reset mode: Software reset Speed: Reliable Frequency: 4000 kHz Log Messages (Important Parts): Error: Unable to get core ID Error: No STM32 target found! ST-LINK error (DEV_CONNECT_ERR) Error: Problem occurred while trying to connect What I Already Checked: USB cable and port Reinstalled STM32CubeProgrammer ST-LINK firmware upgrade option checked Tried reconnecting multiple times Questions: Is the low target voltage (0.29V) the reason ST-LINK cannot
I'm migrating from Windows to Linux (Ubuntu 22.04) as my main OS, and I'm setting up the STM32CubeIDE for development. I noticed that the Linux install of STM32CubeIDE (v2.0.0 downloaded from this site) is missing almost all of the ST specific features that make using the IDE worth it for me. Is there a reason for this? Is there a way to install these after the fact?The ST specific features I'm speaking of are the integration of STM32CubeMX and ability to generate all the initialization code for the various peripherals that I'm looking to use. Specifically: I'm looking for the Linux install to have an option of File > New > STM32 Project, which then gives me the option to select a board (Nucleo, etc.) or a bare MCU (STM32U575xxx, etc). It then generates a .ioc file and eventually generates the code.
I'm using the link below to select boot path and do secure boot device provisioning for my STM32H563 board:https://wiki.st.com/stm32mcu/wiki/Security:How_to_start_with_STM32CubeMX_OEMiRoT_Boot_path_on_STM32H563Boot path is configured as follows:I have run provisioning.bat, the product state was set to PROVISIONED. The provisioning was successfull, with logs at the end of ob_flash_programming.log:OPTION BYTE PROGRAMMING VERIFICATION:Option Bytes successfully programmedTime elapsed during option Bytes configuration: 00:00:01.334Programming successHowever, inside ob_flash_programming.log, it also shows:PROGRAMMING OPTION BYTES AREA ...Warning: Option Byte: boot_ube, value: 0xB4, was not modified.Warning: Option Byte: hdp2_end, value: 0x0, was not modified.Warning: Option Byte: secbootadd, value: 0xC0000, was not modified.Warning: Option Byte: secwm2_end, value: 0x0, was not modified.Warning: Option Byte: sram2_ecc, value: 0x0, was not modified.Warning: Option Byte: sram2_rst, va
When I open STM32CubeProgrammer (v2.21.0) it displays an error modal "Old ST-LINK firmware version. Upgrade ST-LINK firmware. If I click the "Firmware Upgrade" button an STLinkUpgrade 3.16.8 shows up with Current firmware: (blank)Type: (blank)Version: UnknownUpdate to Firmware: Unknown.The upgrade button does nothing when clicked. How do I fix this?I downloaded the software here https://www.st.com/en/development-tools/stsw-link007.htmlAfter running/usr/lib/jvm/java-17-openjdk-amd64/bin/java -jar stsw-link007-v3-17-10/stsw-link007/AllPlatforms/STLinkUpgrade.jarThere is another upgrade dialog with version 3.17.10 displaying the same firmware info as above, with the upgrade button greyed out.Other commands ive run$ ls -l /dev/bus/usb/001/019crw-rw----+ 1 root plugdev 189, 18 Feb 9 09:36 /dev/bus/usb/001/019$ lsusb | grep STBus 001 Device 019: ID 0483:374b STMicroelectronics ST-LINK/V2.1$ STM32_Programmer_CLI -l---------------------------------------------------------------
We have a design that has been working fine for some time now using STM32G071CBT6 in LQFP48 but a new batch is suddenly failing with ADC readings from VREFINT that are quite a way out of spec.Previous versions have always been slightly low - reading maybe ~3.15v on a ~3.25v supply voltage but that's always been "close enough", but now the latest batch of devices are dipping below 3.0v on the same ~2.35v supply and triggering our under-voltage detection.We are monitoring a few voltages using the ADC, including the supply voltage which is commoned with VDD/VDDA, VBAT and VREF pins - decoupling is per the power supply scheme shown in the datasheet DS12232.VREFBUF is disabled.Since we are not worried too much about absolute accuracy, we are not running the calibration routine on the ADC.System clock is 16MHz and ADC sampling is 79.5 cycles, ADC resolution is 12 bit.The ground pin is solidly grounded, supply voltage going into the pins is ~3.25v and I can't see any significant current being
Found a bug with RX_POOL buffers been permanently used. There are total of 12 buffers defined by default. Adding more buffers will prolong the operation, but eventually all of them will be permanently locked. Using the latest available from ST LWIP stack. Our configuration: enabled ARP, ICMP; TCP server with 5 available connections. As soon as a whole buffers are locked, the ethernet driver won't process any incoming packets. Soon after start the number of used buffers goes from 0 to 4 with no active TCP or UDP communication, just a normal network activity. Once TCP communication is started, and if there is no traffic congestion like opening several connections at the same time or sending too many packets, LWIP may function without a problem for days, which makes finding the issue with losing the ethernet communication difficult. The number of available buffers may go down one-by-one. Opening several connections simultaneously and starting the traffic on all of them locks the buffers i
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.