Join conversations with your peers and ST experts. Explore the full potential of STM32 microcontrollers for your embedded design.
Most recent activity
We are developing SIgfox with STM32WL33KBV6, and we don't know how to deal with the 826-958MHz RF partial matching circuit, so we hope you can help.There is no specific reference value for this part of the circuit for the LC component.
I just got my NUCLEO-N657X0-Q board, since i have never used a stm32n6 board before, i decided to start from the stm32cubemx. I started my project from ST board, and created a simple test program for MDK-ARM project.After I opened the project in the Keil v5 and rebuilt the whole program, with no warnings or errors, I found that i can't download my project to the board. It showed an error of "invalid rom table".Then I decided to use the STM32CubeProgrammer to erase the whole chip, as I did before when developing stm32h7. I found that the flash size in the target information colums shows "null".And when I used the full chip erase function, it shows: Mass erase operation failed. Please verify flash protection.(p.s. I'm not a native English speaker, so pardon my poor grammer :( )
Working on bidirectional communication between CM4 and CM7 on the STM32H747I-DISCO using FreeRTOS stream buffers (CoreMessageBuffer). One-way communication works fine (either CM4 → CM7 or CM7 → CM4), but both directions at the same time do not work as expected.What Works:CM4 → CM7: Data is sent and received correctly.CM7 → CM4: Works fine when used independently.Current Issue:When both directions are enabled simultaneously, it fails to receive data in both the direction.Memory Section Mapping:Configured dedicated sections for each direction in both CM4 and CM7 linker files:.ld/* CM4 → CM7 */ .xCoreMessageBuffer_section_CM4_to_CM7 : { *(.xCoreMessageBuffer_section_CM4_to_CM7) } > RAM_D3_Z1 .xStreamBufferStruct_section_CM4_to_CM7 : { *(.xStreamBufferStruct_section_CM4_to_CM7) } > RAM_D3_Z2 .ucStorageBuffer_section_CM4_to_CM7 : { *(.ucStorageBuffer_section_CM4_to_CM7) } > RAM_D3_Z3 /* CM7 → CM4 */ .xCoreMessageBuffer_section_CM7_to_CM4 : { *(.xCoreMessageBuffer_section
I'm getting an hard fault when trying to start ECC on SRAM3 with a very simple project doing just ECC enabling. I tried clearing the SRAM before calling HAL_RAMCFG_StartECC or by using HAL_RAMCFG_Erase, but the result is exactly the same. Here attached the sample project I use. Any suggestion or code examples on how to solve this issue?
I am using STM32H747 MCU with OV5460 camera. The FPS i got from the camera is around12-13 fps is that any method to increase the frame rate.I tried by increase PLL clock but there is no image received.Thanks
Hello,We are currently using a STM32U5G9 with MIPI Port 2 lanes talking to ST7701S TFT driver. We found on power up when we have a lot of error in DSI_ISR0.PE3 and DSI_ISR0.PE4 are set, display do not start. Definition of this error is : This bit indicates the LP1(0) contention error ErrContentionLP1(0) from lane 1(0). Not finding to much info on this... Any idea?
I use stm32H750ZBT6 to built a LCD driver , when i finished configuring with freeROS , toouchGFX , but STM32CUBE IDE have some error after compiling , touchGFX can't run into target , also,target icon is grey. the error list photo as follows: TouchGFX don't run into target and target icon is grey: STM32CUBEMX add toucuGFX and freeROS : STM32CUBEMX error list after compiling : 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: SC550_43.elf section `.text' will not fit in region `FLASH' 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: SC550_43.elf section `TouchGFX_Framebuffer' will not fit in re
I wanted to generate without Phase shifted PWMs between HRTIM and Tim1 .How can I do it? thanks for your support!
tima 的pwm输出正确,但是timb的pwm一个周期出现无法reset的情况
I am developing a USB power delivery solution involving the STM32G0B1. I have already followed the tutorials for creating a simple DRP application on a Nucleo devkit and they work as expected.To my understanding there are two paths that we can take; the one is based on FreeRTOS (which comes as a CubeMX software package), while the other is to use a bare-metal flavour of the application with no RTOS.We have already our own special version of FreeRTOS internally in my company, so, in order to use this, I grabbed the do-while loop from USBPD_DPM_Run() that is executed when no RTOS is in place, and I created a FreeRTOS task that runs it. I ended up with the following snippet:while(true) { // Scheduler stuff uint8_t port = 0; uint32_t current_time = HAL_GetTick(); uint32_t next_delay = 0xFF; // Max. delay for (port = 0; port <= USBPD_PORT_COUNT; port++) { if ((current_time - DPM_Sleep_start[port]) < DPM_Sleep_time[port]) { uint32_t port_delay = DPM_Sleep_time[port
I can't find Try.SRC or Try.SNK features for DRP devices in ST's USB C Power Delivery Stack (USBPD Core). Did I miss something?If it is not in the stack yet. Is ST planning to integrate this feature? What timeline are we looking at?Is it easy to implement? I guess I would just need to define Rp or Rd values after initial connection, but will that work with the rest of the stack or will it result in a mess?Has anyone tried or even achieved it? Is there a sample implementation?
Environment:Board: STM32N6570-DKNetwork: RJ-45 Ethernet cable connected to a router, IP obtained via DHCP: 192.168.10.41Client: VLC 3.0.21 (64-bit) on Windows 10Stream URL: rtsp://192.168.10.41:554/streamSymptoms:VLC can successfully open the RTSP stream and display video.The video is very blurry, especially during motion, where details are hard to distinguish.The frame rate is very low (VLC statistics show high frame loss and decoding frame rate below 10 fps).Tried So Far:Increased network caching in VLC to 1000 ms.Questions:Why does VLC show blurry and low frame rate video when playing the same RTSP stream? Is it due to a low default bitrate or misconfigured encoding parameters?In the NetX Duo RTSP example, how can we correctly set H.264 bitrate, IDR (keyframe) interval, and RTCP minimum report interval to ensure clear image quality with minimal frame drops?What other common factors could cause blurry video and low frame rat
Hi everyone,we are moving our design from usb full speed to usb high speed using STM32F76VI.We want to use the suggested module STULPI01A in order to achieve this.On datasheet is specified to use a precise reference clock.Since our application use a gnss receiver which is quite sensitive we opted for using the PLLCLK routed out directly from MCU.Is this system enough precise or are there any weakness in using this? Thanks.
Hello everyone! I'm working on a project using an STM32U575 microcontroller, and I need to manage an SD card (read, write, etc.) via SDIO in 1-bit mode, but without using FreeRTOS. I noticed that FatFs is not natively supported for this MCU in STM32CubeMX, and the recommended alternative is FileX, which is tightly integrated with FreeRTOS. However, due to project constraints, I cannot use an RTOS. So I'm trying to manually integrate FatFs into the project, but I'm running into some difficulties with the integration and compatibility. I was wondering: Has anyone already done this kind of integration? Is it possible to use FileX in standalone mode, without FreeRTOS? Do you have any examples, documentation, or code references for using FatFs or FileX standalone on STM32U5 series? Any help, advice, or shared experience would be greatly appreciated. Thank you in advance and have a great evening! Stefano
Hello everyone,I am working right now in a project involving some of ST products. I have my custom HW board with a STM32G0B1 MCU for a specific functionality. In order to work with it and be able to program and debug my project, I was using two main devices: A NUCLE0-G0B1RE development kit to get familiar with the MCU and make some SW tests, and also a few STLINK-V3MINIE programmers to program and debug my custom HW with the STM32G0B1. The problem comes when the ST-LINK device stopped working with a new version of my HW where the MCU is still the same and the debug circuit also remains the same. With the previous HW version it works well and I am able to program and debug it. I also tried with the ST-LINK integrated in the NUCLEO board with SWD connection and this ones DOES work with my new HW. I am quite confused right know because I don't understand which is exactly the problem here. It's not the first time that the ST-LINK V3MINIE is not working as expected. I also tried t
I built a LCD driver with stm32H750ZBT6 , afliliatlister operation, touchGFX can't load into MCU with ST-LINK , the error list as follows: (remark: i try to set as stm32CUBE IDE or CMake) stm32CUBE MX GCC setting: touchGFX list error message:Compilemake -f ../gcc/Makefile -j8make: ../gcc/Makefile: No such file or directorymake: *** No rule to make target '../gcc/Makefile'. Stop.FailedFailed
Hi,Im trying to configure SDMMC 4 wide bus with FATFS for SD card.Im not able to see any DMA options or Platform setting to set SD detect GPIO pin.am I missing something? I have refered through most of the documentation and tutorials online but with this MCU there is no options for DMA or Platform settings menu in .ioc configuration.Could you please help me with a procedure to setup SDMMC and FATFS for this MCU?Thanks
I would like to make a basic application using BLE (to turn on an LED). I’m using the WB05KN1 shield and my application runs on the U545. I would like to know if it’s possible to carry out this project, if they are compatible, and if you know where I can find example codes because I can only find examples with Zephyr.ephyr.
Hi,I'm currently using an STM32G0B0CET6 and encountering an issue with writing a uint32_t variable to EEPROM using Write_U32_Variable(). The function works correctly during task initialization and in normal bare metal while loop too, but it fails when I try to save the variable at runtime (EE_WRITE_ERROR).This code was previously working without issues on an STM32G0B0KET6. I have configured the EEPROM emulation with START_PAGE_ADDRESS set to 0x08040000U and NB_OF_VARIABLES defined as 781.Could you help review or suggest changes to ensure compatibility with STM32G0B0CET6?void DaQ(void *argument) { /* USER CODE BEGIN DaQ */ Write_U32_Variable(__OPERATING_MODE, 12); // Working /* Infinite loop */ for(;;) { Write_U32_Variable(__OPERATING_MODE, 14); // Non-working osDelay(30000); } /* USER CODE END DaQ */ } bool Write_U32_Variable(uint32_t variable_id, uint32_t value){ /* Declaring 8-bit unsigned integer to store the EEPROM read/Write Status */ bool return_variable = true; u
Hi,While working on the code for an STM32H7B0, I'm having issues with the blanking function of COMP1. Specifically, it works correctly when the comparator is in non-inverting mode, but if I invert the comparator's output (to detect falling thresholds), the blanking stops working. According to the datasheet, the blanking gate should be placed after the output inversion, so it should work whatever is the outpup polarity in the same way. In practice, however, it seems to be positioned before. Does anyone have any ideas?I'm using dac1_ch1 as in- , analog signal connected to pin inp PB0,and tim1_ch5 as blank
Hi, SPI CR2 is missing from RM (RM0383 Rev 3) table in 20.5.10 SPI register map (page 610). Please update. Best,Alessandro
I am using two STM32H503 boards. One is programmed as an I3C controller, the other as an I3C target. My goal is to have the target send an IBI on the bus and the controller will receive the IBI and then immediately issue a pended read -- there will be no stop condition on the bus after receipt of the MDB of the IBI, the controller will issue a repeated start and then perform the read. The target will issue the IBI and then be ready to immediately respond with the data to transmit. So, I'm assuming I will need to pend the write on the target before issuing the IBI.I am looking at the controller diagram for IBI on figure 670 on page 2175 of RM0481 Rev 2. There is the following note with 2 asterisks :Repeated start (Sr) if there is a pending transfer to execute and if I3C_DEVRi.SUSP = 0, else stop (P) in push-pull Is there any information or example on how to pend an I3C read to happen immediately after the IBI with no stop -- just a restart? Also,
I've been working on a board bring up of a STM32U5G7 for a few days following https://support.touchgfx.com/docs/development/board-bring-up/board-introductionWhile the board is able to display the framebuffer and change colours, etc, when I finally complete the bring up process to include TouchGFX generation and TouchGFXDesigner, the project does not run out of the box and it's difficult to debug and tell what's missing. Instead, since the demos and examples from the STM32U5G9J-DK2 easily compile/run and that there are only a few differences between my board and the kit, would it be possible to modify/copy a DK based application to run on my board? The differences are:- MCU package U5G9 144pin vs U5G7 100pin- external flash not used I'd be happy to make sure the MCU pins are used correct and clock config, etc. but this way at least I know I'm not missing anything.
I am connecting a TCP/IP stack to the HAL_ETH driver of an STM32F7xx. I am using https://github.com/STMicroelectronics/STM32CubeF7/blob/master/Projects/STM32F767ZI-Nucleo/Applications/LwIP/LwIP_HTTP_Server_Netconn_RTOS/Src/ethernetif.c as a starting point. I see that low_level_output() calls HAL_ETH_ReleaseTxPacket() only if the ethernet driver runs out of DMA descriptors: do { if(HAL_ETH_Transmit_IT(&EthHandle, &TxConfig) == HAL_OK) { errval = ERR_OK; } else { if(HAL_ETH_GetError(&EthHandle) & HAL_ETH_ERROR_BUSY) { /* Wait for descriptors to become available */ osSemaphoreWait( TxPktSemaphore, ETHIF_TX_TIMEOUT); HAL_ETH_ReleaseTxPacket(&EthHandle); errval = ERR_BUF; } else { /* Other error */ pbuf_free(p); errval = ERR_IF; } } }while(errval == ERR_BUF); It seems like HAL_ETH_ReleaseTxPacket() will then deallocate all completed buffers and block if none of the scheduled buffers has been completed yet. So far so good. But:I
Hi everyone,I'm building a watchdog application on the STM32 NUCLEO-U385RG-Q using the Arduino IDE and the IWatchdog library. Since the library doesn’t support early interrupt callbacks, I modified it by adding some LL code (afterLL_IWDG_SetReloadCounter()) inside IWatchdogClass::set() as shown below. However, the early interrupt doesn’t trigger. Am I missing something, like NVIC config or enabling the interrupt line? LL_IWDG_SetEwiTime(IWDG, (uint32_t)EWITimeout); LL_IWDG_EnableIT_EWI(IWDG); Arduino Code#include <IWatchdog.h> extern "C"{ #include <stm32u3xx_ll_iwdg.h> #include <stm32u3xx.h> } extern "C" void IWDG_IRQHandler (void){ Serial.println("Wake up Interrupt"); } void setup(){ Serial.begin(115200); __enable_irq(); // Enables global interrupts HAL_NVIC_SetPriority(IWDG_IRQn, 0, 0); HAL_NVIC_EnableIRQ(IWDG_IRQn); IWatchdog.begin(10000000); }After further debugging, I found that EWI timeout is not being set if EWI interrupt is enabled and when&nb
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.