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
HiIs it possible to bypass the boost by applying a 5V voltage directly to BSTOUT (VLXBST is left unconnected)?Thank in advance for your reply
BackgroundWe have a battery-powered device using:MCU: STM32 (STM32L4series)Modem: Quectel BG95 (cellular)Communication: UART with Idle Line Interrupt (HAL_UARTEx_ReceiveToIdle_IT)Power mode: Device goes to sleep periodically, wakes up to communicate with modemArchitecture PatternOur communication pattern:Device wakes from low-power modeCall low-level AT command function that:Enables UART RX Interrupt with Idle Line detection (HAL_UARTEx_ReceiveToIdle_IT)Sends AT commandWaits for response with timeoutDisables interrupt (HAL_UART_Abort_IT)Process responseGo back to sleepThis means we re-enable/disable UART Idle Line interrupt on every transaction (potentially hundreds of times per day).UART + Ring Buffer Setup:#define RING_BUFFER_SIZE 2048 #define ISR_BUFFER_SIZE 1024 typedef struct { lwrb_t rb; // lwrb ring buffer volatile bool rx_data_ready_flag; // Flag set by ISR uint8_t rb_buffer[RING_BUFFER_SIZE]; // Ring buffer storage uint8_t isr_buffer[ISR_BUFFER_SIZE]; // Intermediate buff
Hi ST community,I am facing an issue of 10us delay between CS line going low and SPI SCK start, when I am doing SPI communication with a slave device, which supports upto 15MHz SPI communication.Below is the main.c file snippet for your reference. Please help in fixing the issue. I have also attached complete code file as well as the CRO capture of SPI comm for your ref. Thanks in advance!/* USER CODE BEGIN Header */ /** ****************************************************************************** * @file : main.c * @brief : Main program body ****************************************************************************** * @attention * * Copyright (c) 2025 STMicroelectronics. * All rights reserved. * * This software is licensed under terms that can be found in the LICENSE file * in the root directory of this software component. * If no LICENSE file comes with this software, it is provided AS-IS. * ***************************************************************************
Hi everyoneWe have designed a custom board around the STM32L081CZ and produced 3 prototypes. On the first board I started testing and debugging using STM32CubeIDE on Windows. This worked fine but only with ST-Link, not with J-Link.After testing (and fixing) our hardware, we wanted to program our boards on Debian using Zephyr. I gave a second board (with identical hardware fixes) to my colleague and he was able to program it with a J-Link using West without any problems. My initial board however, that I can still program using ST-Link however does not work using the J-Link (tried West, J-Flash and STM32CubeProgrammer). We since tested the third board and it also works fine with the J-Link.I used ST-Link with STM32CubeProgrammer to connect to all three boards and verified that they are all in the same state (Option Bytes and Registers). I have added a screenshot where I connect first to the device that only connects to ST-Link (Time: 16:33) and then to the one that connects to both (Time
ContextFresh Ubuntu 24.04, STM32 board (ST-LINK/V2-1 0483:374b), STM32Cube for VS Code 3.6.4.Out of the box, both Serial Monitor and debugging failed:**** Failed to open the serial port /dev/ttyACM0 ****Adding myself to dialout didn’t help; debugging couldn’t connect to any target.Root causeSTM32Cube for VS Code doesn’t install udev rules or USB deps for ST-LINK on Linux. Result:/dev/ttyACM* gets recreated with restrictive perms on each replug.The debug adapter (ST custom DAP / libusb backend) can’t init properly.Fix (repeatable)Install USB dependency + ST udev rulessudo apt update sudo apt install libusb-1.0Download STSW-LINK007, then follow itsreadme.txt.Replug the board and verify:ls -l /dev/ttyACM* # example: # crw-rw----+ 1 root dialout 166, 0 Nov 4 16:39 /dev/ttyACM0Verify debugging in VS CodeRun: Run & Debug → STM32Cube: ST-LINK GDB Server.Debug now starts normally with ST-LINK/V2-1 and Cube 3.x.
Hello, I recently upgraded my STM32 CubeIDE for VS Code extension to the new release with clang integration and project navigation. When getting the popup below I went ahead and disabled IntelliSense. However, I then lost my navigation capabilities such as "jump to" etc...... For now, I have IntelliSense re-enabled but would like to migrate to clang. Is there a step I am missing here?
Hello.In CubeMX, there is a Bug with a wrong Clock of USART2 and a wrong BRR-ValueI've used CubeMX to configure the Clock, based on the Nucleon-H563.For the USART2, i want to use the stable crystal oszillator (25MHz) from the Board (not the HSI-Clock)So i configure a 125MHz-Clock on PLL2Q and set this as clock for USART2.The Baudrate should be: 9600.After generating code, the baudrate of USART2 ist 3078,81 Baud (measured). To calculate the uart baudrate divider (USART2_BRR), MX use the: STM32Cube_FW_H5_V1.5.0\Drivers\STM32H5xx_HAL_Driver\Src\stm32h5xx_hal_uart.cIn Function: UART_SetConfig(UART_HandleTypeDef *huart) Line 3329, the usartdiv is calculated with: 407( (125000000 / 32) + ((9600)/2)) / 9600 = 407But with this, a wrong baudrate is generated (3078,81Baud) If i use 130 as divider, the Baudrate is near correct, because the USART-Clock seems to be 39,9013776MHz instead of 125MHz .What is the reason for the wrong clock of PLL2Q or the BRR?
Above is the configuration of my Timer. - To generate pulse, first I used HAL_TIM_OnePulse_Start but with that pulse was not generate.- So I did this: while(1) { HAL_TIM_PWM_Stop(&htim17, TIM_CHANNEL_1); __HAL_TIM_SET_COUNTER(&htim17, 0); HAL_TIM_PWM_Start(&htim17, TIM_CHANNEL_1); HAL_Delay(100); }- Pulse is generated but also getting a glitch pulse before the actual pulse.This is happening due to stopping and immediately starting PWM pulse. The transition is causing this glitch.
I'm currently learning embedded systems and using NUCLEO-F411RE to start off. I tried using micro-usb b to c for my macbook and it looks like the micro-usb b would not fit on the board. It says micro usb b on the nucleo form but it looks like it's wrong. Can anyone help me please?
Hi All, Hoping someone can clarify my confusion on the clock input for the TIM1 counter...background:I am testing Tim1 output compare by toggling PA8 on the micro... - the timer settings areperiod = 1600, no clock divisor or prescaler and my clock config is belowOn the scope I see PA8 toggling with a period of 25us which seems kind a strange... So even if I assume a counter clock of 150Mhz (APB1, APB2 peripheral clocks) and the formula of clock/2*(period+1) as the frequency I should see it toggle at 21.34 us? Why this discrepancy?? Thanks!
Good evening, I need freeRTOS tick speed to be greater than 1kHz, I tried to change the configTICK_RATE_HZ parameter but get a divby0 error which I can't fix. Is there a way garanteed way to achieve what im looking for? Thx in advance
I am trying to do tcp client application with stm32n6570-dk board and when I select RGMII mode in ETH1, ethernet interface is grayed out in network interface settings in netxduo. How can I fix it? Cube IDE versiyon is 1.19.0, CubeMX version is 6.15.0 -RC7.
Hi all, According to the STM32N6 reference manual (see attached figure), both the diagram and the text description state that the ConvAcc should support 16-bit input × 16-bit weight (16×16) operations.To verify this, I designed a simple test model(see attached files): Input: 4×4 tensor (all ones)Kernel: 3×3 (all ones)Expected output: 2×2 tensor When I set the SIMD field to 1, the ConvAcc performs 8-bit input × 8-bit weight (8×8) operations, and the output results are correct as expected.When I set the SIMD field to 2, the ConvAcc performs 16-bit input × 8-bit weight (16×8) operations, and the results are also correct.My questions are:Does the ConvAcc really support 16×16 convolution (16-bit input × 16-bit weight) as described in the reference manual?If yes, how should I correctly configure the fields of LL_Convacc_InitTypeDef to enable 16×16 operation? (e.g., simd, inbytes_f, outbytes_o, kseten, etc.)
Hello, is there any possibility to get the pin configuration table for the STM32U535VE in CSV or Excel format?Thanks a lot !Ricos
Regarding the pad size for the Bluetooth module “STM32WBA5MMGH6TR,” there are discrepancies between the datasheet and the CAD data listed on the website, resulting in instability. We would like detailed data confirming the actual dimensional values and request that you send us the relevant documentation.
Hello! This is the first time I'm using an STM32L0 (...11F4Ux) and also the first time I've tried implementing an I2C IRQ Handler. The code snippet mostly works, but there's a bug in which a READ commands sends data from the previously requested register, giving bad data. Basically, the data I receive is old by 1 request, which tells me this IRQ Handler is not handling the repeated start correctly. The exception to this is that the very first READ command is correct when I start up I2C tools on a RP5. I've been trying to figure out this bug for a couple of days now, so I'd really appreciate any help from more experience developers, thank you!Details:Flash limited to 16KB, so using LL drivers onlyThis snippet is broken out into its own file and is called by I2C1_IRQHandler();WRITE commands work perfectly fineWhen placing a stop at the LL_I2C_TransmitData8(I2C1, tx_val);, I get data from my previous command without this line executing. Master: Raspberry Pi 5
Sometimes it works, sometimes it doesn't.When I try to open the IOC viewer either the IDE freezes or the view isn't rendered properly, as you can see below. This misbehavior breaks my working flow and makes me waste a lot of time. Any ideas?
On the STM32F303K8, is it possible to configure e.g. PA8 to both receive an EXTI interrupt on falling edge and act as the TIM1CH1 input to trigger source TI1FP1, in turn serving as a timer gate for gated mode? I cannot find a way to express this through MX, which usually means it isn't possible at all, but perhaps it could be done through explicit HAL calls.
Hey everyone,I'm currently trying to integrate the STM32 FP-AUD-AEC-1 software package in a multithreaded environment (ThreadX) on an STM32wb55rev7 mcu chip. Library compiles and runs but eventually hard faults during thread initializations. Any advice or help would be appreciated, and if there's any additional info needed please lmk.
Hi community,Before I start discussing my specific issue, I would like to know if dual USB host operation is allowed on STM32H7 MCUs. The H7 MCU has both FS and HS USB cores, and I want to configure both FS and HS as USB hosts, not using the OTG feature. The HS USB core will also run in full-speed host mode without an external PHY, with each host having its own USB port. Are there any potential issues with this configuration?I encountered unexpected behavior during project development: USB FS MSC class functionalities were affected when devices were plugged into the USB HS port.Here is my USB class setup:The USB FS core is registered with two classes — MSC class and a custom printer class.The USB HS core is registered with a HID class.All classes worked individually.If no device is plugged into the USB HS port, the USB FS port works normally. It prints correctly when connected to a thermal receipt printer and creates text file reports using FATFS when connected to a flash drive.However
Hello ST team,I would like to report a pin mapping issue in STM32CubeMX when configuring the LTDC peripheral in RGB666 (18-bit) mode, especially on STM32H750 (and other STM32H7 devices).Problem descriptionWhen selecting RGB666 (18 bits) as the LTDC color format, CubeMX automatically assigns 7 bits to the Red channel instead of 6.Example of generated mapping: RED: R1–R7 ← 7 bits GREEN: G2–G7BLUE: B2–B7 This results in a RGB766 (19-bit) configuration, which is invalid for the LTDC hardware.The correct mapping for RGB666 should be: RED: R2–R7 :white_heavy_check_mark:GREEN: G2–G7 :white_heavy_check_mark:BLUE: B2–B7 :white_heavy_check_mark:
Hello,I'm trying to use the GPU2D on the STM32N6570-DK, with NemaGFX.However, the GPU hangs on random functions.Well actually every time the same funtions, but depending on the number of functions to be executed, so it seems it can only execute a limited number of functions, and the it hangs.And many of these doen't even complete the drawing of the shape. The nema_vg_draw_circle doesn't complete drawing the circle and hangs. When only drawing the rounded rectangle results in an incomplte draw and hang of the function: If I remove some functions, the app hangs on nema_cl_wait.I think it might be related to the buffer initialization in nema_hal.c, or that nema_hal.c contains other errors./* * File : nema_hal.c */ /* Includes ----------------------------------------------------------------- */ #include <stdlib.h> #include <string.h> #include "tsi_malloc.h" #include "nema_sys_defs.h" #include "nema_core.h" #include "nema_vg.h" #include "main.h" /* Include pl
Hi everyone,I'm new to STM32 and I'm using Debian Linux with the STM32CubeIDE.I'm trying to use a NUCLEO-G431RB with the X-NUCLEO-IHM07M1 expansion board, using the legacy X-CUBE-SPN7 (apparently the X-Cube-MCSDK is Windows-only...)I've run into a pin conflict: the expansion board expects the PWM signals on the Arduino standard pins, but on the G431RB those pins are physically connected to separate timers (TIM2, TIM3, TIM8, etc.).My understanding is that the 6-step libraries (and motor control in general) seem to prefer using a single advanced timer (like TIM1) for synchronization.Does this timer conflict make sense? As a last-case scenario, I thought of just connecting both boards using jumper wires (mapping TIM1 outputs to the IHM07M1 inputs) instead of mounting them on top of each other. Is there a known workaround for this?Thanks!
Hi,I am using a EVSPIN32G02Q1S1 with LIN motor (BL23E33-01D-04RO) running in sensor-less only with 6-step moving 1 time with 1 turn and stops. I cannot connect Motor Pilot to the board for some reason (using the boards built in USART output to a RS232/TTL converter).I have tried this before with a EVPSPIN32F0601S1 and the LIN motor running at 50VDC and reset the motor parameter from 24VDC to 50VDC to match the minimum of the Inverter board both sensor, sensor-less and FOC and 6 Step with the same result but using the Motor Pilot, it kept coming back with Over Current no matter what I changed. My supply is 50VDC and runs up to 7 amps, and the current monitor I have connected in line says I am only pulling 0.5 amps when the over current occurs.So, my question is this.Does the Motor Work Bench change the parameters of the system settings to match the inverter and motor pair or is that up to me to do?Any help on this would be great. Thanks in advance.Charles
* board - STM32N6570-DK* using STM Cube 1.19.0* firmware v1.2.0Test projects* USBPD_SNK/USBPD_SRC So i'm trying to do PD with the STM32N6, but i can't seem to be able to test the example code from ST. When i run USBPD_SNK, it just doesn't seem to work. I get a weird no source available issue. I thought it was because of ThreadX, but i tried VENC_USB and that example worked fine. The USBPD_SRC also fails to work. I don't know if this a STMCubeIDE problem or something weird with the specific PD usb examples.
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.