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
Hi,We are building an IoT device, using STM32L476RET6 as main core. It communicates with an LPWAN modem with AT-commands via UART. We have redirected UART2 into external pins for "serial output" into Nucleo RX pins.During testing, we noticed initially that some devices where seemingly "stuck" in some state - no printing in Nucleo RX, not responding to external interrupts - while communicating with LPWAN modem ( it stayed in idle ON state). No hard fault or similar (we have put checks inside repsective callbacks). IWDG can reset the device, but it is a "last resort" method.After putting device in debug mode, catching the situation and pausing the code, it stopped here : void HAL_UART_IRQHandler(UART_HandleTypeDef *huart) { uint32_t isrflags = READ_REG(huart->Instance->ISR); uint32_t cr1its = READ_REG(huart->Instance->CR1); <<<-------Looking at USART1 ISR register, we found ORE error flag.Resuming the code in debug mode makes the MCU continue, but in run
Hello everyone, I'm writing in search of some help, as I'm not sure what else to check. I have just built a custom board controlled by an STM32WBA65RIV6, and I'm trying to connect it via DFU mode. Everything seems to be set up correctly, but the device is not detected by my computer (a MacBook). What is working:I can successfully flash the processor via ST-Link (SWD).I have run a simple test program (toggling a pin high/low every 3 seconds) without issues. This confirms the chip is alive and basic operation is fine.DFU Setup & Debugging Steps Taken:The BOOT0 pin is pulled up to 3.3V with a 10k resistor to enter the system bootloader (DFU).I've confirmed this works: when BOOT0 is high, my test program does not run. When BOOT0 is pulled low, the program runs. This confirms the boot mode selection is working as intended.I have double-checked the D- (Data Minus) and D+ (Data Plus) lines for continuity and to ensure they are not swapped.I also (after initially forgetting)
Post edited by ST moderator: This post has been translated from Chinese to comply with the ST Community guidelines. Please use English language as it's an international community and to let others to understand your post. Thank you for your understanding.
What does DMA Request synchronization do? In the case of SPI_Rx does it trigger SPI reception when TIM12 updates (overflow) if i set synchronization signal to be TIM12 TRGO
HI! We have from time to time defect High Side Driver. Most of the defects occur after the first few power on cycles. The High Side Driver and the RGND Resistor (120Ohm) gets really hot. The resistance between GND and the Status Pin is then much lower around 160Ohm to 2kOhm instead of 12kOhm. Might it be a Problem when there is only the 24V Power Supply and the Status / IN Pin has no reference Voltage? There are cases when the 5V comes later or not. Does this destroy the internal Logic Circuit? Did somebody had some similar defects? Any help is much appreciated. THX
I am attempting to display to an ILI9881C based panel. After successfully initialising and testing the panel using DSI only, I am working on DSI Video mode to pull data from a frame buffer via LTDC.I have the DSI configured as follows static void MX_DSIHOST_DSI_Init(void) { /* USER CODE BEGIN DSIHOST_Init 0 */ /* USER CODE END DSIHOST_Init 0 */ DSI_PLLInitTypeDef PLLInit = {0}; DSI_HOST_TimeoutTypeDef HostTimeouts = {0}; DSI_PHY_TimerTypeDef PhyTimings = {0}; DSI_VidCfgTypeDef VidCfg = {0}; /* USER CODE BEGIN DSIHOST_Init 1 */ /* USER CODE END DSIHOST_Init 1 */ hdsi.Instance = DSI; hdsi.Init.AutomaticClockLaneControl = DSI_AUTO_CLK_LANE_CTRL_ENABLE; hdsi.Init.TXEscapeCkdiv = 4; hdsi.Init.NumberOfLanes = DSI_TWO_DATA_LANES; PLLInit.PLLNDIV = 119; PLLInit.PLLIDF = DSI_PLL_IN_DIV3; PLLInit.PLLODF = DSI_PLL_OUT_DIV2; if (HAL_DSI_Init(&hdsi, &PLLInit) != HAL_OK) { Error_Handler(); } HostTimeouts.TimeoutCkdiv = 1; HostTimeouts.HighSpeedTransmissio
Hello! I am building a 50-600Vin flyback converter using the altair04-900 to power an LED as a student project. Due to the very light load I expect it to work in Burst mode. Currently I am looking for an adequate transformer. On this regards my question; which switching frequency should I expect? The datasheet talks about 2-8kHz around burst mode threshhold. Does someone have any experiences with the operation of this IC in burst mode?
Hello everyone, I am using an STM32 microcontroller and I am facing a problem when I try to mount an external flash memory. The problem is inside the function lfs_dir_fetch which is returning unexpected values in the test buffer here: struct lfs_disk_dir test; int err = lfs_bd_read(lfs, tpair[i], 0, &test, sizeof(test)); lfs_dir_fromle32(&test); the returned values are: Invalid size: test.size = 335610112, block_size = 40960 Invalid size: test.size = 335610112, block_size = 40960 lfs error:495: Corrupted dir pair at 0 1 lfs error:2214: Invalid superblock at 0 1 (*)Error in mounting external flash memory I have successfully communicate with the external flash, since I am able to read its manufacture ID. I have also configured properly the littlefs function and I test them by writing raw data to the external flash and I was able to receive them correctly. I cannot understand what is the test variable that is being declared and why
Hi, i am planning to use Steval Stwinbx1 to setup an IOT network for condition monitoring of wind turbine blades. i would like to know whether this board is compatible with Microsoft azure as the B-U585I-IOT02A Discovery Kit has the same micro controller in it. i would also like to know whether it is possible to monitor the data from sensors online since the board has a WIFI with azure or AWS or any other cloud serviceskind regards Jose John
So I made a custom bootloader that I use to update the MCU firmware. So I have both the bootloader and the main app in the Flash. What I wanted to do, is to write on a specific address (out of bootloader and application, of course) a kind of a flag that notifies the app when it is necessary to go to the bootloader to update the firmware. Any clue on how to do it? I am using a STM32U585, using the B-U585I-IOT02A board. Thank you!
I like to use SPI in continous DMA mode together with a SPI-slave that uses the falling-edge of the spi clock (AS5048A: https://ams-osram.com/products/sensor-solutions/position-sensors/ams-as5048a-high-resolution-position-sensor). So, I have to use CHPA=1. But setting this, the NSSP hardware management does not work.I'm looking for a solution that makes continous dma handling possible. As a workaround I am using an interrupt-trigger GPIO solution for the NSSP pin. But that results in a interrupt load, that would be unneccessary, it the dma could operate circular continous.I there another workaround? Maybe using some hardware modification?Thanks!
Hello, I'm using Nucleo H723ZG.In my project, i need to detect a rising edge to trigger a callback. What i have done is that i setup a GPIO as external interrupt, and i verified the code by manually connecting and releasing from 3v3 pin. The actual signal i want to trigger is high for approx 38ns , and the callback is not triggering.What is the best solution for this?System operating at - 480MHzPeripheral clocks - 60MHzTimer clocks - 120MHz edit : Can i use Timer input capture for that, does using it in one pulse mode mean it detects a rising edge and then resets until next trigger (as a slave timer)edit: I tried the timer input capture too, but still same effect, I used the HAL_TIM_IC_CaptureCallback , One pulse mode is enabled, it is in slave mode, I even applied a 1MHz signal still callback is not triggering, when i applied a 100KHz signal the callback triggers properly. edit: upto 400KHz signal the below callback is properly triggeringvoid HAL_TIM_IC_CaptureCall
Hi ST Community,once again I have found a USB PD Specification violation, that I can't find the reason for:Source operation: According to USB PD Spec the order of action is as follows:1. Detect Sink using CC lines and only if sink is detected continue with the next points2. Enable VBus to safe5V3. Once safe5V is applied send source capabilities message However current implementation of the ST Stack does not care about the state of VBus. It starts immediately sending out source capabilities messages.I guess the problem is that PE Task is started immediately on Attach event in USBPD_DPM_CADCallback. And it never checks for the bus voltage. I composed a crude minimal example that does not even do anything when it should enable VBus but still source capabilities message is blown out immediately. Please find the minimal example attached. Did I miss anything? Will I need to find a workaround or can we get a fixed version of the library?Best regards,Adrian
Split from this thread. Thank you for your previous responses and guidance. We are now planning to move to the STM32H750XBH6 (BGA package) with a 32-bit SDRAM (IS42S32400J-6TLSDRAM ) interface in our custom board design. Our project uses a 12.1-inch display with a 1024x768 resolution and the RGB to LVDS transmitter ic which is DS90C385AMTX_NOPB display ic In our previous design with a 16-bit SDRAM, we observed display rendering and FPS issues, which affected performance. To overcome this, we are considering upgrading to a 32-bit SDRAM for improved rendering speed and smoother graphics performance. Before proceeding further, we would like your confirmation on whether using a 32-bit SDRAM with the STM32H750XBH6 will actually improve the display rendering performance for our 1024x768 resolution. If there is no significant improvement even with 32-bit SDRAM, then moving ahead with this design would not be worthwhile. Please confirm this so that we can
Hello stm community. I am working on a project involving STM32H7 series MCU with Raw LCD panel of 24 bits. Since the display has no IC i am using the internal LTDC component to drive the lcd. So i have some questions can i drive the lcd backlight with My STM board or i just give some voltage to it . Some lcd says it needs 16 v power supply. Is there any complications in this and is it possible to do this way drive a Raw parallel 24 bit lcd with stm32 without lcd IC. give some expert opinions.
The serial port 1 code generated by the latest STM32CubeMX 6.13.0 will print garbled characters, and using the serial port routine UART_Printf in STM32Cube_FW_H7_V1.12.0 will also print garbled characters. It doesn't work when using the serial port routine UART_Printf in STM32Cube_FW_H7_V1.11.2. After comparison, there is a difference here. I can’t understand the function here. I will be careful whether changing it will affect other functions. *This post has been translated from Chinese to comply with the ST Community guidelines.
Hi everybody,This is the configuration of my setup:MC Motor Control Workbench v6.4.1LL library24V, 2 pole pairs, 5A, BLDC motor.Observer + PLL (Sensorless)Max speed 16000 rpmCustom board with STM32G491Control mode: speedCurrent measurement topology: 3 shuntI am testing motor control and tuning PID constants. When I apply some braking torque to the output shaft, sometimes the motor starts rotating in the opposite direction at full speed, and it stays there.I have experienced the same with v6.3.2It doesn't seem to be related to control constants.It looks like it has happened before in this forum (link) and it doesn't look like it was fixed.The plot with the reference and actual speed is attached.Has anybody experienced this before?Edit: 17/10/2025: add the missing attachment, board description, control mode and current measurement topology
Hey Guys,I’m facing an issue with motor operation using the STEVAL-ESC002V1 solution. Despite setting MC_set_speed(MAX_SPEED), the motor doesn’t reach full speed and runs unevenly with vibrations. It only rotates at a low speed instead of the expected maximum. I’ve attached my workspace configuration for reference. Kindly help me identify and resolve this issue to achieve smooth and stable motor operation. int main(void){ /* MCU Configuration----------------------------------------------------------*/ /* Reset of all peripherals, Initializes the Flash interface and the Systick. */HAL_Init(); /* Configure the system clock */SystemClock_Config(); /* Initialize all configured peripherals */MX_GPIO_Init();#if (defined(POTENTIOMETER)||defined(CURRENT_SENSE_ADC)||defined(VBUS_SENSE_ADC)||defined(TEMP_SENSE_ADC))MX_ADC_Init();#endif#if defined(ST_PWM_INTERFACE)MX_IF_TIMx_Init();#endifMX_LF_TIMx_Init();MX_HF_TIMx_Init();MX_ZC_TIMx_Init();#if defined(UART_COMM)MX_UART_Init();#endif MC_SixStep_I
使用千问大模型询问STM32MP157使用docket +vscode开发调试方式,它说VSCODE目前(大模型只能判断到2024初的信息)只支持A7用gdb调试,而M4只能用stlink+离线版的stm32cubide,2025.10发布的这新版能支持stm32mp157(特别是M4核的)开发吗?
Hello!As the title suggests, the demonstration program is generated from the options shown in the following figure.After the program is burned onto the board, it won't run. It enters the debug mode and stops at the "SystemInit" point. After clicking continuously several times, it will then enter the "main" section.Any help would be appreciated as I am losing hair over this haha.
This is to turn on MOSFETs that operate above 5.2V supply of the Boost regulator. I have followed a forward converter guidance roughly in one of the application notes, but I have not used a transformer but placed a high value resistor in the voltage doubler output. How much can I reduce the resistor values R6 and R69 without disrupt the operating of the SPV1040? Reducing them to 1 to 10K would be good. The input is limited to 4.5V so that a diode is not required between LX and Vout. The application is a generator start-up circuit for vintage/veteran car dynamo.An Engineers Perspective: Vintage and Veteran Car dynamo power management Thanks
Post edited by ST moderator to be inline with the community rules for the code sharing. In next time please use </> button to paste your code. Please read this post: How to insert source code. Hello! I connect one I2C target and one I3C target device both to PB6/PB7, which is configured to be "mixed I3C and I2C bus" through STM32CubeIDE. I3C parameter configuration is as below: /* USER CODE END I3C1_Init 1 */ hi3c1.Instance = I3C1; hi3c1.Mode = HAL_I3C_MODE_CONTROLLER; hi3c1.Init.CtrlBusCharacteristic.SDAHoldTime = HAL_I3C_SDA_HOLD_TIME_1_5; hi3c1.Init.CtrlBusCharacteristic.WaitTime = HAL_I3C_OWN_ACTIVITY_STATE_0; hi3c1.Init.CtrlBusCharacteristic.SCLPPLowDuration = 0x18; // 5MHz hi3c1.Init.CtrlBusCharacteristic.SCLI3CHighDuration = 0x18; hi3c1.Init.CtrlBusCharacteristic.SCLODLowDuration = 0x7b; //1MHz hi3c1.Init.CtrlBusCharacteristic.SCLI2CHighDuration = 0x7b; hi3c1.Init.CtrlBusCharacteristic.BusFreeDuration = 0x69; hi3c1.Init.CtrlBusCharacteristic.BusIdleDuratio
I'm trying to get a Raspberry Pi DSI display working with a custom board using a STM32MP157F. From the wiki I have the following. &dsi { status = "okay"; ports { port@0 { reg = <0>; dsi_in: endpoint { remote-endpoint = <&ltdc_ep0_out>; }; }; port@1 { reg = <1>; dsi_out: endpoint { remote-endpoint = <&bridge_in>; }; }; }; bridge@0 { compatible = "toshiba,tc358762"; reg = <0>; vddc-supply = <&reg_rpi>; status = "okay"; ports { #address-cells = <1>; #size-cells = <0>; port@0 { reg = <0>; bridge_in: endpoint { remote-endpoint = <&dsi_out>; }; }; port@1 { reg = <1>; bridge_out: endpoint { remote-endpoint = <&panel_in>; }; }; }; }; }; / { panel-rgb { /* Unknown; use a reasonably similar one */ compatible = "powertip,ph800480t013-idf02"; power-supply = <&reg_rpi>; status =
Hi,Im new to STM and trying to use 1 adc with DMA with 2 input and reading value.Board :STM32H753XI EVALADC 1 :INP0 rank 1INP1 rank 2Functions : void adc_dma_multi(void)void HAL_ADC_ConvCpltCallback(ADC_HandleTypeDef* hadc) Results :I tried to swap rank between INP0 and INP1 to check if my second entry was read correctly and there were no hardware problems, and the result is the same: rank1 is read correctly but rank2 = 0. I have attached main.c and IOC.
I have four languagese/translation with their translations in TouchGFX DesignerIs there a way to reorder them? I would like to have IT GB ESP FR
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.