Join conversations with your peers and ST experts. Explore the full potential of STM32 microcontrollers for your embedded design.
Most recent activity
Dear all,I'm working on an custom hardware project using the STM32G0B1 MCU running ThreadX. My goal is to use/port the USBPD stack for both source as sink device, but I'm failing to do so partly because the stack provided is closed source.The CubeMX skeleton code generated for my project does not offer a working solution and all example code nor documentation available is not targeting ThreadX.Also I'm somewhat confused about which PD stack to use since X-CUBE-USB-PD is no longer recommended? Then what would be the alternative stack to use?Does anyone have practical experience, can provide meaningful documentation or example code porting USBPD to ThreadX? I would be forever thankful.Thanks and looking forward to your replies.With regards,Peter
Hi everyone, I am currently having the problem, that I cannot flash a working Program to a new STM32f746G-DISCO.The Software Is already written, and runs on 6 other STM32f746G_DISCO Boards, that were ordered in 2021.Now I wanted to flash this exact Software to a Discovery board that I bought a few days ago (production Date is November 2023), and I cannot get it to work. I am only using CubeProgrammer and the ".elf" File to flash the board. I tried one of the older Boards and it still works great, but with the new one I only get a fuzzy screen. Was there some kind of product revision? I tried:- Using the two different external oaders in CubeProgrammer- Creating a new sampleproject in TouchGFX Designer. This one can be flashed both to the new and the old board Thanks for any recommendations.I would really apprechiate your help! Here Is the Flash-Log:22:28:24 : Opening and parsing file: SamPlay.elf22:28:24 : Memory Programming ...22:28:24 : File : SamPlay.el
Hi. I have a NUCLEO-N657X0-Q board with MB1854B. Yes, exactly nucleo, not discovery one. Im trying to recreate RTSP example fron discovery board. As netxduo from cubemx is kinda buggy, i manually added it along with other necessary middlewares from github repo. After configuring all peripherals according to VENC RTSP example for disco board on video side and UDP ECHO Server example for nucleo board, i copied application files from VENC RTSP example.Application starts but fails to get IP by dhcp. I have tripple-checked all the things. ETH configuration and driver are correct for my board and my PHY(lan8742). ETH is inited without errors, memories for descriptors and buffers are marked as non-cached in MPU. Pin assignment also correct. Netxduo creates DHCP packets and descriptors for them. Then _nx_driver_packet_send is triggered. But i checked with my oscilloscope TX lines on the RMII interface, and there are no activity. I also checked, UDP Echo exam
As the title says, I've got a (circular) buffer of uint16_t values that I want to send to the DAC every time the timer updates. It seems like it's 95% working, in that if I manually trigger the DAC:for (int i = 0; i < 10000; ++i) { LL_DAC_TrigSWConversion(DAC1, LL_DAC_CHANNEL_1); HAL_Delay(1); }I can see my waveform on the output pin. But when I try to have the DMA send the values to the DAC, the output never changes.One complication is that I need to run in two modes - in one mode I'm taking the ADC input, processing it, and sending that to the DAC, in the other mode (I'm calling "inject" mode) the ADC is ignored and the DAC values come from my memory buffer.The code to switch between modes looks like this:if (inject && !Inject) { // Turn on inject mode // HAL_DAC_Start_DMA(&hdac1, DAC_CHANNEL_1, (uint32_t*)Transfer, 4096, DAC_ALIGN_12B_R); LL_DMA_DisableChannel(DMA1, LL_DMA_CHANNEL_3); while (LL_DMA_IsEnabledChannel(DMA1, LL_DMA_CHANNEL_3)); // Wait till of
Hello STM community,I am planning to use the Nucleo-H755ZI board (STM32H7 series) in combination with the X-NUCLEO-IHM07M1 motor driver expansion board, and I have a couple of questions regarding compatibility and setup:Compatibility:Is the Nucleo-H755ZI board fully compatible with the X-NUCLEO-IHM07M1 motor driver expansion when plugged directly into the Arduino-compatible headers (MORPHO header)? I want to ensure that the board can drive motors as intended without any issues in terms of voltage levels or pin mappings.Required Modifications:Does the Nucleo-H755ZI-Q variant (specifically) require any modifications or special considerations for proper integration with the X-NUCLEO-IHM07M1? I am aware that the STM32 Nucleo boards generally follow the same Arduino pinout, but I want to confirm if there are any specific steps or precautions I should take when using this combination.Any help or insights from someone who has already worked with this combination would be much appreciated!Than
Hi everyone!I am currently working on the steval-eth001v1 kit. If I open the project attached in the firmware, there is no problem. But when I want to create a new project using IAR or Keil C, an error appears that the c file is missing.Anyone who has encountered the same problem can help me?I can't find the c file containing the above functions in the new project, but when I run the project attached in the firmware, it doesn't report an error.
Hello,I’m working on a telephone‑line–powered device based on the STM32L072VBT6 and I need to push the MCU’s Run‑mode current down to ≤ 1.2 mA (ideally lower) while on‑hook. So far I’ve managed to get down to 1.6–1.7 mA by applying the following:CPU clock reduced from 16 MHz → 4 MHz (MSI). Any lower crashes my SPI2 link to the AS2522 line driver.GPIO: all unused pins set to Analog / No Pull.Regulator: switched to Voltage Scale 3.RCC gating: disabled clocks for every unused peripheral.Delay/tick: moved from SysTick → LPTIM1 (LSO domain), and completely turned off SysTick.External gating: used an EXTI line to physically power‑gate off‑board modules when not needed.Has anyone tried any of the above on an L0-series? Or do you have other exotic low‑power knobs I’m missing? Any concrete code/config snippets or CubeMX settings would be hugely appreciated.Thanks for your help!
Original title: Facing a debug issue. the code works in another board and gets firmware update. but its not working in my current stm32f103zet6 customized board.Shortened in accordance with Posting Guidelines .
I use stm32cube MX create a project to drive customed board and RGB screen , this step is successful to drive the screen ; but add the touchGFX , stm32cubeIDE have some error as follows after compiling with touchGFX D:/Project/SC550/sample/SC550_LCM/Debug/../Core/Src/freertos.c:116:(.text.MX_FREERTOS_Init+0x38): undefined reference to `TouchGFX_Task'undefined reference to `TouchGFX_Task'D:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/bin/ld.exe: ./Core/Src/main.o: in function `main':D:/Project/SC550/sample/SC550_LCM/Debug/../Core/Src/main.c:105:(.text.main+0x2a): undefined reference to `MX_TouchGFX_Init'undefined reference to `MX_TouchGFX_Init'D:/ST/STM32CubeIDE_1.18.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.win32_1.0.0.202411081344/tools/bin/../lib/gcc/ar
Hello. I am very very new to the world of STM32 microcontrollers and products. I've recently purchased the Nucleo-H563ZI board with RVA35HI Rev 1.1 display. I am starting slow, so to begin I tried utilizing the demo project in TouchGFX called "TouchGFX Demo 1 Alternate". After some troubleshooting, I've successfully flashed the demo project to my development board. The screen lights up white upon upload and I don't see the start up screen. Messing with it I discovered the project is uploaded, and still responding to touch because there is one screen that shows graphs, which for some reasons shows up. I've left the board in its default configuration as far as jumpers are concerned. I believe I have all required software downloaded. I've followed the instructions of some guides online and don't understand what I'm doing wrong.Thank you.See attached: Pictures of board lighting up, showing graph, and the simulator screen with the graphs.
Hi as part of my project I am trying to integrate the mentioned parts in subject to control modbus eth relay over tcpip.What I have done so far.1. Integrated Lan chip driver to stm32 library and initalization done.2. Integrated LwIP stack from online resources and confirmed LwIP integration succeeded. (Since i'm using STM32H563RGT6 MCU and it doesnt have inbuilt LwIP stack with in it).3. Initially tried to establish a connection with my PC and try a ping test.4. I'm facing ARP Resolution initally but somehow it resolved and now i can find my MCU ip and mac address on my PC, but still ping is not reachable.5. My POV is that if its capable of handling etherent packets then i can start work on with modbus packets to trigger the relay module.Pls help me with this case...
Heyho,a few questions to those who already used the PTP offload function (not via IP / UDP, but PTP directly over ethernet, MAC packet type 0x88F7), which can auto-generate SYNC and DelayRequest messages:1) As this feature does not auto-generate FollowUp messages (so no "two-step" timestamp), I assume that the timestamp sent with the auto-generated SYNC message is the "exact timestamp" when the packet leaves the STM32's MAC, so that 2-step is absolutely not required ?2) And was this ever tested at STM? -->> examples...3) Why was no automatism created for Announce messages? (Okay, these are timing-wise not important)Using the HW would greatly reduce speed and code size, because LWIP would be completely unused for PTP, and my modified PTPd could be reduced greatly (much less "manual" packet processing)Anyway, one more request for example source code!@STea please, or whoever ...
Hello, I’m trying to drive LEDs using all four PWM channels of TIM8 on a NUCLEO‑H755ZI, but I’m running into this issue:CH1 (PC6) and CH2 (PC7): When I measure with a multimeter, I see the expected voltage fluctuations/average corresponding to the configured frequency and duty cycle.CH3 (PC8) and CH4 (PC9): I’ve removed the LEDs and measure the pins directly with a multimeter; they always read 0 V. I’m attaching the project archive, which includes the CubeMX .ioc file, tim.c , gpio.c , the driver layer, and all HAL settings. I’d appreciate any suggestions or insights you might have. Thanks in advance!
Hello,I'm working with the STM32H723 and need to interface with an external ADC that provides a DRDY (PG2 pin) signal. I'd like to initiate an SPI transfer via DMA whenever the DRDY pin goes low. The ADC is connected to SPI6, and I understand that only BDMA can be used with this peripheral.My main question is:How can I configure DMAMUX to trigger a BDMA transfer for SPI6 when the DRDY pin goes low?I'm using STM32CubeMX for configuration. I’ve looked through existing forum posts and the STM documentation, but haven’t found a clear example or explanation for this setup. Any guidance, examples, or tips to get started would be greatly appreciated.Thanks in advance!
Hi @Jocelyn RICARD,im trying to enable the secure user memory on my custom bootloader for STM32H755 and STM32H7B3 MCUs.The bootloader is on the first bank and the app on the second bank. The secure user memory is enabled successfully on bank 1 but jumping on Bank 2 with the follwing instruction works. But the debug port is not reopened before jumping to the application. I can see that the app is running (through a blinky led) but i cannot attach using cube programmer in hotplug mode:RSS_API->exitSecureArea(userAppAddress, RSS_ENABLE_JTAG_AT_EXIT);My question is, what is the value of RSS_ENABLE_JTAG_AT_EXIT ? Is it mcu dependent?The reference Manual does not give any info about the value of the macro:Could you help?Thank you!@VPanc.1 , @gpeh, @Fred , @Tesla DeLorean
Hello, I flashed into WB55 FUS 2.1 and Wireless Stack V1.23. Then flashed BLE_p2pServer_reference.hex for an evaluation. But nothing happened. The device is not discovered. What is the problem? Something happened with the option Bytes after the upgrade?
Hello,From my understanding in FreeRTOS, there is a defined highest priority one should set for interrupts whose ISRs may call RTOS APIs (configMAX_SYSCALL_INTERRUPT_PRIORITY).For the same reasons, I would expect ThreadX to have a similar limitation, and to that extent I have found other ST forums posts suggesting one should set lower priorities for any interrupts whose ISRs may call RTOS APIs, but I can't find any documentation that explicitly states what the highest safe/allowable priority is, similar to FreeRTOS.How do I know what's the highest interrupt priority I can safely set in such cases? Is there any documentation from ThreadX that I'm missing, because I can't seem to find any mention of this.For context, I am using a U5 series MCU and I want to call queue related APIs in my CAN Rx callback.
I have the following clock tree for STM32L471I am using TIM2 as trigger for DAC, ADC1, and ADC2 at 2.4MHz. Clock frequency of TIM2 is 48MHz with a counter value of 19 and prescaler = 0.With oscilloscope, I confirmed that the DAC is generating the signal at 2.4MHz sampling frequency.The ADC1 and ADC2 are running in dual mode with single DMA channel. The following is the ADC configuration/* USER CODE BEGIN Header */ /** ****************************************************************************** * @file adc.c * @brief This file provides code for the configuration * of the ADC instances. ****************************************************************************** * @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. * ******************************
Dear Community, I'm using a custom board based on the EVSPIN32G4 with an STLINK-V3MODS probe.I want to power the LDO using only the 5V from USB, just to flash the microcontroller.My REGN voltage is 4V(VUSB), but the 3.3V output from the LDO is 0V.I don't understand why. Any ideas? Thanks,
I am developing using X-Cube-Matter v1.4.0.I imported the BLE_Ota project onto MDK Arm and built it, but the following error occurred and I was unable to compile it.../Core/Src/app_entry.c(28): warning: In file included from...../STM32_WPAN/app\app_thread.h(30): error: 'stm32wbxx_core_interface_def.h' file not found30 | #include "stm32wbxx_core_interface_def.h" Please tell me the cause.
Hello,I am using TouchGFX with freeRTOS on an STM32G0 board.I call the touchgfxSignalVSync through a Timer Interrupt and quickly after I get an HardFault in the blitCopyARGB8888 function. As this is a library I cannot debug further. I am trying to go around the issue by increasing the stack size (24*3072 = 73728 bytes) but this does not fix the issue. Commenting the draw function in the touchgfxDisplayDriverTransmitBlock function does not help either.Doing a step by step debug, I see that the load looks to be the issue where the address 0x2000cXXX is loaded. Let me know if you need any more information.Thanks! if (htim->Instance == TIM4) {touchgfxSignalVSync();}
Hi All, This is shiva am uable to communicate with external flash using QSPI on stm32h750 controller.could you please help me to clear the issue.Thankyouregards shiva chary kannoju
Hi,I'm currently working with the Dynamic Graph widget in TouchGFX, and I want to display X-axis labels in the format hh:mm:ss to show timestamps (e.g., 00:01:10, 00:01:20, etc.).Right now, the X-axis labels are just integers, in the range which correspond to the maximum X-range I’ve set in the widget.Is there any example or recommended method to customize the axis labels on the Dynamic Graph to show such formatted timestamps instead of plain integers?Any suggestions or code references would be appreciated.Thanks in advance!
Good day folks!I trust you are well.Do you know where I can find the example that was used to take the VENC power measurements as outlined on this Wiki page ?I can't seem to find it under the Applications and Examples in the STM32CubeN6 v1.2.0 Specifically I want to see how the part was configured to support the 1080p resolution.Warm regards
Hi everyone, I am having issues interfacing an ADS1298 board with a NUCLEO F767ZI. void ADS1298_ReadConfig1(SPI_HandleTypeDef *hspi) { uint8_t command[2] = {0x20 | 0x00, 0x00}; // RREG command for sending ID uint8_t sdatacCmd = 0x11; // SDATAC mode command for sending data GPIOA->BSRR = GPIO_BSRR_BR4; // CS LOW *(volatile uint8_t *)&SPI1->DR = sdatacCmd; // SDATAC command, stop reading data so the ADS1298 can receive commands -- direct register access method while (!(SPI1->SR & SPI_SR_TXE)); // Wait until TXE (Transmit buffer empty) is set while (SPI1->SR & SPI_SR_BSY); // Wait for transmission to complete while (!(SPI1->SR & SPI_SR_RXNE)); // Wait until RXNE (Receive buffer empty) is set volatile uint8_t sdatac_status = *(volatile uint8_t *)&SPI1->DR; // Discard *(volatile uint8_t *)&SPI1->DR = command[0]; while (!(SPI1->SR & SPI_SR_TXE)); while (SPI1->SR & SPI_SR_BSY); while (!(SPI1-
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.