Join conversations with your peers and ST experts. Explore the full potential of STM32 microcontrollers for your embedded design.
Most recent activity
Hi all:I have a number of firmwares which use the older Standard Peripheral Library for STM32F4xx etc.I could switch to the new Low-Layer drivers, but I doubt it is worth the effort.I actually found the old Standard Peripheral Libraries quite all right. Unfortunately, STM is not maintaining them anymore, even in the face of obvious bugs like this one:Standard Peripheral Library limits STM32F4xx USART to 7.5 Mbit/s, instead of max 10.5 Mbit/shttps://community.st.com/stm32-mcus-products-25/standard-peripheral-library-limits-stm32f4xx-usart-to-7-5-mbit-s-instead-of-max-10-5-mbit-s-82037Are there any community forks of the Standard Peripheral Libraries I could switch to?Thanks in advance, rdiez
Dear ST Community,We are working on a custom board using the STM32H747XG controller with a MIPI DSI display interface.Our display panel is RK055MHD091A0-CTG, with a resolution of 720 × 1280. The display uses the HX8394-F TFT driver IC, and we are using the 2-lane MIPI DSI interface: DSI Data Lane 0 DSI Data Lane 1 DSI Clock Lane We have configured the STM32H747 DSI Host in Video Mode and are using LTDC with an SDRAM framebuffer.The HX8394-F supports DBI Type C option 1, 3-wire serial bus to access command set under DSI I/F. The 3-wire serial bus is use: chip select line (CSX), serial input data (SDI),serial output data (SDO) and serial transfer clock line (SCL).According to the HX8394-F display driver requirements, the panel requires an initialization sequence with several commands for configuring parameters such as power, MIPI settings, gamma, GIP, etc., before starting the display.We would like guidance on the correct way to send these HX8394-F initialization commands from the ST
I am trying to send GPS data from one B-L072Z-LRWAN1 to another B-L072Z-LRWAN1. There are 3 tasks to do this.1. Get GPS data using a B-L072Z-LRWAN1.2. Send text data from one B-L072Z-LRWAN1 to another B-L072Z-LRWAN1 using PingPong project.3. Combine 1 and 2, send GPS data from one B-L072Z-LRWAN1 to another B-L072Z-LRWAN1.Tasks 1 and 2 were successful, but I cannot do No.3 task. I compared the code that retrieves GPS data with the code that does nothing, and wrote the differences to the PingPong project. I've attached a portion of the code below. Could you give me a suggestion? if (transferComplete) { snprintf(sval , sizeof(sval), "%s\r\n","test"); HAL_UART_Transmit( &huart2, sval, strlen(sval) + 1, 0xFFFF); MX_SubGHz_Phy_Process(); transferComplete = 0; /* Restart DMA reception */ HAL_NVIC_SystemReset(); HAL_UARTEx_ReceiveToIdle_DMA(&huart1, gpsBuffer, GPS_BUFFER_SIZE); __HAL_DMA_DISABLE_IT(&hdma_usart1_rx, DMA_IT_HT); } HAL_Delay(1000);
This account only shares restored community content posted by members between May 22 and June 9, 2026, who did not register for the new community.using the STM32G473CET6 and have configured 4 ADC channels. When scan mode is enabled, the readings from the first two channels are normal, but for the last two channels with an active voltage signal input, the ADC still shows readings of over a thousand when 0V is input. When I disconnect the external interface, I find that this channel has a voltage over 1.3V after initialization. Why is this happening? Later, I tried enabling single-read mode and initializing the ADC interface each time before reading, and the values read were normal.
Dear STMicroelectronics Technical Support,I am working on a custom PCB using the STM32F446RET6 in LQFP64 package, and I am facing a hardware issue where the MCU is not detected by ST-LINK and the VCAP1 voltage is much lower than expected.I would appreciate your help in identifying the root cause.MCU and power configurationMCU: STM32F446RET6 – LQFP64 VDD = 3.3V VDDA = 3.3V VBAT = 3.3V VCAP1 = Pin 30 VSS = Pin 31 → GND VCAP1 capacitor = 4.7µF ceramic MLCC, 6.3V, 0603 VCAP1 capacitor is connected between VCAP1 and GND NRST = 3.3V BOOT0 has a pull-down resistor SWD interface is connected to an ST-LINK debuggerCurrent symptomsThe 3.3V supply is stable on the MCU.However:VCAP1 is only around 0.4–0.6V It does not remain around the expected internal core voltage The MCU is not detected by ST-LINK The same behavior occurs after replacing the MCUTroubleshooting already performedI have already performed the following tests:Checked the 3.3V supply and confirmed that VDD and VDDA are stable at 3.3V
Subject edited to mention ARM64 - p.a. Hi everyone, I am having trouble getting my STM32 NUCLEO - F411RE setup. When I attempt to run a simple program through CubeIDE I am met with "NO ST-LINK detected! Please connect ST-LINK and restart the debug session." It also returns the same error when I attempt to run other programs.Here's what I have tried thus far : - In my Device Manager I can see "ST-Link Debug" which has the status: "The drivers for this device are not installed. (Code 28) There are no compatible drivers for this device. To find a driver for this device, click Update Driver." I've tried both the "search automatically for drivers" and "Browse my computer for drivers" (using C:\Users\jthom\OneDrive\Desktop\stsw-link009\amd64), however both have thus far failed. - Restarted computer multiple times - I've installed CubeProgrammer however when I attempt to connect ST-LINK through there I am met with: "Err
大家好!问题是这样的: 我正在尝试使用 STM32 ISP-IQTune 应用程序通过 STM32N657X0H3Q 板读取 PC 上的 IMX335 相机数据。但是,IQTune 无法检测到任何可用的 COM 端口。这是我的设置:硬件:板:STM32N657X0H3Q相机:IMX335(MB1854B模块,根据文档提供原生支持)。固件:已从 STM32N6 固件包中刷新 DCMIPP_ContinuousMode 示例。连接:已将板上的两个 USB 端口连接到 PC(USB-C 电缆)。开发板显示红色 LED 闪烁,表示程序正在运行。问题:尽管板子看起来正常工作,但 ISP-IQTune 显示“未检测到端口”。我已验证:USB 电缆支持数据传输(与其他设备一起测试)。已安装 STM32CubeIDE 驱动程序。IMX335 在 ISP-IQTune 文档中被列为兼容的传感器。问题:是否有其他步骤可以在 ISP-IQTune 中启用 COM 端口可见性?DCMIPP_ContinuousMode示例是否需要修改 ISP-IQTune 兼容性?应该只连接 CN18 (USB1),还是两个 USB 端口都需要?感谢您的时间和帮助!
Title edited to clarify that this is on a Nucleo board. Hello there, as a way to study embedded programming I decided to perform various tasks on the board, including firing an interrupt on button pressing to light up the 3 user LEDs. I got stuck, the interrupt always fires. In the beginning I tried debugging it myself, using the reference manual, user manual, arm architecture reference manual and the schematic, in the end I got desperate and tried debugging with chatgpt. As a way of research, I didn't use HAL and wrote it pretty much myself. The LEDs light up alright on their own, it's just the interrupt that always fires, maybe because I use the debug option and the step in and step over? Thank you. Here is the code:#define RCC_AHB1ENR1 (int*)(0x40023830) #define RCC_BASE ((int*)(0x40023800)) #define EXTI_BASE ((int*)(0x40013C00)) #define SYSCFG_BASE ((int*)(0x40013800)) #define GPIOB_BASE ((int*)(0x40020400)) #define GPIOC_BASE ((int*)(0x40020800)) #define NVIC_ISER1 ((int*)(0
This account only shares restored community content posted by members between May 22 and June 9, 2026, who did not register for the new community.I have created the below circuit and build a PCBA. I'm using the J-Link Base Compact and Tag-Connect TC2030.Using the Arduino IDE I created a simple sketch to drive the 4 LEDs shown on the schematic below and blink every second.The code compiles ok and Arduino IDE reports that it has successfully upload to the SMT32 chip, but the LEDs won't blink. I tried enableling outputs to other pins as well, but the problem persists. Any ideas what might be causing this? I'm using the Generic STM32L4 series "board" from Arduino library.
Dear ST experts, I have configured UART (both RX and TX) in Normal DMA mode. I want to send a small data packet every 500 ms with using HAL_UART_Transmit_DMA (&huart, buffer, 10). But I noticed that only one shot is triggered. What is the problem? Should I do something in HAL_UART_TxCpltCallback(UART_HandleTypeDef *huart) callback? Best, Davood.
I'm looking at a diagram of the X-NUCLEO-IHM08M1 and the manual states that you can select either 1 shunt or 3 shunts using jumpers J5 and J6. By default, there is one shunt, but when tested with a multimeter, there is continuity between the two red points in the photo: With the multimeter, I should be getting a reading of 10 m? on the tin, right? And between the tin and the other plate?
Hello St Teams, I have two MCUs (one as master and other as slave). They can send and receive data through UART (UART+DMA). The master/slave is always listening. Whenever, the slave receives command from the master, it sends data back to the master. The DMA is interrupted after receiving specified length of data in both MCUs. In the code, I check the first and the last byte to see everything works correctly. But the problem arises when I want to connect two MCUs via cable. At this time, the MCUs receive unwanted bytes due to glitching. How I can make the whole system robust to unwanted bytes when the data length is fixed? What strategy would you suggest? Best, Davood.
Hello, ST experts It is found that PA12&PA11(USB_D+&USB_D-) are vulnerable to ESD events. In our design the two pins are exposed as external contact point in the shell. Even external ESD diodes(e.g. PESD2USB3UV) are used to protect these pins, 8kV ESD pulse can do damage to these pins, I think that is because the failure of internal diode. So what should do to protect these pins from ESD pulses? Best Regards Yang
This account only shares restored community content posted by members between May 22 and June 9, 2026, who did not register for the new community.Hello, I have an 1024x600 resolution 7 inch TFT screen.I will be taking data from my GSM module and storing it in eMMC memory.I want to display videos playing on the 7 inch display.The raw frames even of 10sec becomes huge in size . So we are planning to use MP4 format. The size of the file reduces drastically. We want to decode these files and display the data.If I am correct I should use H.264 decoder for this right?Is there any ST MCU THAT CAN DO THIS?We want the device to start quickly when powered. Is there any crossover series that has H.264 DECODER IN MCU itself will be useful. Any suggestion are welcome.
Dear Experts, I have an E04-400 module which contains a 48 MHz tcxo controlled through PB1 pin.If i set the module to use HSI it can work (blinks an LED, radio is off)If i set the module to use HSE (and set PB1 to 1 directly when main.c starts) the module doesn't even reach the stage where it is able to blink an LED. I am using cubemx 6.17.0 to generate the code. Here's part of main.c fileint main(void) {/* USER CODE BEGIN 1 */// === CRITICAL: Power TCXO BEFORE any clock configuration ===__HAL_RCC_GPIOB_CLK_ENABLE();HAL_GPIO_WritePin(GPIOB, GPIO_PIN_1, GPIO_PIN_SET); // TCXO_EN = High``// Reliable delay on HSI (before SysTick/HAL_Init)for (volatile uint32_t i = 0; i < 160000; i++); // ~10-15 ms/* USER CODE END 1 */``/* MCU Configuration--------------------------------------------------------*//* Reset of all peripherals, Initializes the Flash interface and the Systick. */HAL_Init();``/* USER CODE BEGIN Init *//* USER CODE END Init */``/* Configure the system clock */SystemClock_Conf
This account only shares restored community content posted by members between May 22 and June 9, 2026, who did not register for the new community.I am currently struggling to figure out if my current requirents are even possible.I am building a network controller to controll laser projectors via analog lines.For that I have an DAC8552 connected to SPI1 and a DAC1240S85 connected to SPI2.The way I control SPI1 & SPI2 is almost identical so I will focus on SPI1 for now.I have the following requirements:200k times per second (200kHz) I need 3 bytes being transferred via SPI right before and during that transfer an LDAC line needs to be asserted low and afterwards it needs to be brought back up. This is important for the DAC to actually latch the bits The timing is critical and must be precise and each transfer must happen within its 5uS timeframe including the LDAC assertion and deassertion. I can't have any CPU involvement besides feeding some sort of DMA a new buffer as I also handl
This account only shares restored community content posted by members between May 22 and June 9, 2026, who did not register for the new community.Hello, I've been trying to get an OLED screen to work on my H7S3L8, but I've not been successful. I've followed this tutorial perfectly (as much as I could - there were things I couldn't do such as setting fast mode duty cycle as the option isn't there in CubeMX).So far I've tried:- Using 4.7k resistors between VCC and SDA/SCK (also tried without them)- Only sending the command to turn all pixels on the screen on (0xA5 from the datasheet)- Following different tutorials with example code to no avail- Making sure there are no shorts and that the voltage is correct with my multimeterI haven't yet had success. Does anybody have experience with the H7S3L8 or have an idea why this would not be working? The tutorial I linked at the top explicitly mentions that the code works on H7 families.I only used this part of the above tutorial to display 2 wor
This account only shares restored community content posted by members between May 22 and June 9, 2026, who did not register for the new community.Hi,I'm currently developing on the NUCLEO board and I can't enter the bootloader using the boot button on the board.I created an .ioc file with CubeMX2 v1.0.1 using the NUCLEOC562RE board. Then build and flash the code with vscode addon without issue.When I press the "BOOT" button, perform a "RESET" using the reset button, and then release the "BOOT" button, I continue to boot from the flash memory and therefore cannot access USB DFU mode on USB1, which is my goal ...However, when I change the value of BOOT0 to 1 in CubeProgrammer using ST-LINK, I can enter USB DFU mode without any issues on USB1. Is it possible to change BOOT0 from the application then ? How ?Thank you in advance for your help !
Dear ST Team, We received parts with COO showing as ,misspelling "United Stat", missing "es" at the end. Could you please help advise if this is due to label format restriction to miss "es" at the end or other reasons? Thank you. STM32F103RCT6 STM32F103C8T6
I have a requirement from customer to read the mains input voltage (down converted to 3.3V) which is 50Hz using ADC and identify the phase delay between the input and after the ADC reading(Ideally it shall be 0 requirement). How to demonstrate? I am using STM32G474RET6. Please guide. Edit: I am trying to trigger ADC sample at every 20KHz PWM signal.
I am encountering a memory access issue in my application, which runs on Azure RTOS on a custom STM32F767VIT6?based target board. The application receives JPEG images from an MQTT broker via the EC200U modem, using USART on the board. The problem arises when I declare a global array of size 180 KB to store the image. Even though I initialize this array with valid non?zero content (JPEG image data in hex), the debugger consistently shows all zeros when I attempt to read it. Interestingly, when I reduce the array size to 100 KB, the behavior is normal the data is correctly written and read. I am using the ST?Link 2.0 debugger from STMicroelectronics, and the project is built in STM32CubeIDE. Since my JPEG images can be as large as 180 KB, I need to resolve this memory limitation. Could you provide detailed guidance on the root cause of this issue and possible solutions? I have attached my workspace in .7z format for reference.
This account only shares restored community content posted by members between May 22 and June 9, 2026, who did not register for the new community.Hello.I am creating a motor control project for the EVSPIN32G4 using MotorControl Workbench 6.4.1.The EVSPIN32G4 board definition provides configurations for "ThreeShunt_RawCurrents_SingleEnded_ExternalGain" and "ThreeShunt_RawCurrents_SingleEnded_InternalGain," but the current sensing section in the circuit diagram of this board appears to match the "ThreeShunt_RawCurrents_Differential_ExternalGain" configuration.However, adding this configuration causes MotorControl Workbench to fail with an error. This is likely because the definition for "ThreeShunt_RawCurrents_Differential_ExternalGain" does not exist for the STSPIN32G4 in "MC_SDK_6.4.1UtilitiesPC_SoftwareSTMCWBassetsConnectionParameters.json".1. Why is it that the EVSPIN32G4 schematic shows a differential configuration, but the board definition only provides a single-ended option?2. Is
Hi, I am using two STM23F303 Discovery Borads. My application is as follows: The two boards communicate via SPI. Every two seconds the master boards send a uint8 message to the slave. Upon receiving the message, the slave board shall light up some LEDs depending on the sent message. This is a snippet of the code flashed to the slave board:while (FOREVER) { // When you receive a message from if (HAL_SPI_Receive(&hspi1, &u8SpiMsg, U16_NUM_BYTES, HAL_MAX_DELAY) == HAL_OK) { // Set/Reset corresponding LED pins via their control bits in BSRR register GPIOE->BSRR = ...........; } } This is the configuration of the SPI: Mode - Full-Duplex Master/Slave Hardware NSS Signal - Hardware NSS Input Signal Frame Format - Motorola Data Size - 8 bit First Bit - MSB First Prescaler (for Baud Rate) - 8 Clock Polarity - low Clock Phase - 1 Edge CRC Calculation - disable NSSP Mode - Disable The application works, but when I hooked up a logic analyser (saleae logic to inspect
HiOne of a small production batch of our boards built around STM32F767ZGT6 has some bizarre behavior. When we tried to program it with STM32CubeProgrammer and a ST-LINK/V2 tool, occasionally we can download a test firmware, but if we power cycle the board, more often than not, we would not be able to download the same firmware again nor to perform a full chip erase. Please see the log below:21:17:34 : Disconnected from device.21:17:35 : UR connection mode is defined with the HWrst reset mode21:17:35 : ST-LINK SN : 53FF6E06498055573337128721:17:35 : ST-LINK FW : V2J45S721:17:35 : Board: --21:17:35 : Voltage: 3.20V21:17:35 : SWD freq: 4000 KHz21:17:35 : Connect mode: Under Reset21:17:35 : Reset mode: Hardware reset21:17:35 : Device ID: 0x45121:17:35 : Revision ID: Rev Z21:17:35 : Debug in Low Power mode is not supported for this device.21:17:36 : UPLOADING OPTION BYTES DATA ...21:17:36 : Bank: 0x0021:17:36 : Address: 0x40023c1421:17:36 : Size: 8 Bytes21:17:36 : UPLOADING ...21:17:36 : Si
This account only shares restored community content posted by members between May 22 and June 9, 2026, who did not register for the new community.Hi,We are currently developing board using the STM32F765 microcontroller and eMMC memory (part numbers: MX52LM08A11XVI and IS21ES08GA-JCLI) via the SDMMC interface in STM32Cube.Can you help us determine if the MX52LM08A11XVI and IS21ES08GA-JCLI can interface with the STM32F765 using the SDMMC peripheral? Thank you
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.