Join conversations with your peers and ST experts. Explore the full potential of STM32 microcontrollers for your embedded design.
Most recent activity
Hi,I am experiencing a packet loss issue using Peripheral-to-Peripheral DMA between UARTs.While Peripheral-to-Peripheral configuration is referenced in the STM32U585's Reference Manual, it is not available in the HAL library. Therefore, the DMA is configured for Peripheral-to-Memory mode, with the destination address set to the UART's Transmit Data Register (TDR). FIFO mode is not used.The reference setup I am using is based on the B-U585I-IOT02A, where no packet loss occurs.(MSI Clock)USART2_RX → USART3_TXUSART3_RX → USART2_TXThe packet loss issue occurs on another STM32U5 (u585cit6q) with the same software but different UART configurations. (HSE Clock)USART3_RX to UART4_TXUART4_RX to USART3_TXUSART3 is configured to use the RS485 protocol.The packet loss varies between 0.0025% and 10%, depending on the baud rate, and it is not correlated to an increase in speed.Is it possible to experience synchronization issues between USART and UART? Can the addition of the RS85 be the so
Hello, I use an external flash in memory mapping mode and I have a strange problem. The application is executed from the internal RAM, while the checksum is calculated on the data from the external flash (simple summing of successive bytes in a loop). Interestingly, sometimes I get an incorrect result, i.e. the sum is a bit smaller, e.g. instead of 3233257 it is 3233225 as if one byte had not been counted. Interestingly, later the program jumps to the application that is executed from the external flash and it works normally (does not crash). I tried to turn off D-Cache but it does not help. Since the program from the flash executes correctly, I assume that it is not a problem with the memory configuration. What could it be?EDIT:I will add that the memory is configured using the ExternalMemory manager. I added a second identical image in flash memory in a different location and for which I calculate the checksum simultaneously and interestingly for both the same problem occurs alternat
Hi Team,Currently I am working with STM32U575ZIT6 SOC and I am using Timer for counting external clock pulses,Below is my requirement :1. I have a requirement to count external pulses using timer for 6 channels, All those channels are connected to spin rate of a physical system; a wind-turbine RPM or something similar.2. The maximum frequency of the incoming signal To ensure the timer can handle it without missing counts is up to 100 kHz and probably closer to a max of 3600.3. The counter will roll over and is expected to reset on reboot.4. Also noticed that a single timer can support only one counting element to count its pulses, Can anyone suggest How I can add a support to count 6 external pulses coming from wind turbines ? Thanks and Regards,Ram Jan
Hi all, I try to use the HAL lib in Zephyr. Anyone knows, why I cant select the hal_st modules/drivers? Best regards Lukas
Hello,I have a question regarding VBUS sensing on STM32N6.First off, I found theGuide to USB development resources on STM32https://community.st.com/t5/stm32-mcus/guide-to-usb-development-resources-on-stm32/ta-p/790803I also read AN 4879. I want to use OTG1 of my MCU to establish a USB connection to my PC. The MCU is a self-powered device.Since it's a self-powered device, VBUS sensing becomes mandatory.In all ressources it is written that PA9 (or PB13) are used for VBUS sensing and are 5V tolerant. However, on the STM32N6, it seems that:- PA9 is not 5V tolerant- there is no mentioning of VBUS sensing functionality to this pin. The datasheet returns nothing if I search for VBUS.The Ref Manual 0486,Rev2 has a chapter 72.2.6 about VBUS detection but it doesn't help me much. But page 3750 states the following:If needed, VBUS detection must be managed by an ADC channel or an externalcomparator. It cannot be managed by OTGPHY1 since it is forced in external comparator mode
I have a stand alone ST-link/V2 and I need to use it to flash the FW to a STM32H743 Nucleo-144 "Nucleo-H743ZI"I removed the two jumpers on CN4 to disconnect the on board ST-Link and Connected the following Signals, the table show mapping from Nucleo CN11 pinSignalNucleo CN11 Pin#ST-Link ICD20-Pin# VDD12 - 3.3V1 - MCU VDD GND8 - GND4 - GND SWDIO13 - SWDIO7 - SWDIO SWCLK15 - SWCLK9 - SWCLK NRST14 - NRST15-NRSTOptionalthe board is powred through CN1The Programmer is connected but the target Volatage is not 3.3Vand when I try to connect I get this error13:26:57 : STM32CubeProgrammer API v2.19.0 | Windows-64Bits 13:29:41:379 : UR connection mode is defined with the HWrst reset mode 13:29:41:518 : ST-LINK SN : 57FF6D067186535413301487 13:29:41:518 : ST-LINK FW : V2J46S7 13:29:41:518 : Board : -- 13:29:41:518 : Voltage : 0.58V 13:29:41:519 : Error: Unable to get core ID 13:29:41:519 : Error: No STM32 target found! If your product embeds Debug Authenticatio
The configuration:STLINK-V3SETConnected the two PCBs together via the three connectors (page 11).Attached jumper JP7 CAN_ON on MB1440 PCB (page 18).(STLINK-V3SET pages 17 & 23) & (NUCLEO-H723ZG page 37) & (Bootloader AN page 199) & (STM32H723 Manual page 143):Connected the T_CAN_VCC to 5V of NUCLEO-H723ZG; tried also the 3V3, same outcome.Connected the T_CAN_TX to the PD0 CAN1_RX pin 29 of CN9 connector of NUCLEO-H723ZG.Connected the T_CAN_RX to the PD1 CAN1_TX pin 29 of CN9 connector of NUCLEO-H723ZG.Reversed the PD0 and PD1, same outcome.NUCLEO-H723ZGConnected the boot0 pin to 3V3.Power cycled the Nucleo and verified that the bootloader is running and communicating via USB with the latest Cube Programmer.Power cycled the Nucleo and attempted to connect via CANBus. The Nucleo does not respond. The Cube Programmer reports a connection error message (similar to this). I have attached a logic analyser to the T_CAN_TX, CAN1_RX, T_CAN_RX and PD1 CAN1_TX and I see
Dear Gfx Team,I worked on a project using CubeIDE 1.17.0 and GfxDesigner 4.24.1.I installed and un-installed 4.25.0.Now, when I open \TouchGFX\mcu_project.touchgfx with 4.24.1 and press F4/F5, the version in \mcu_project.ioc is changed from 4.24.1 to 4.25.0.Why is that and how to stop it please ? Thank you
So, I'm trying to have a text that scroll automatically if the container width is too small.My costume container will set the text and then calculate the width withtextLightSoundSettings.setTypedText(TypedText(T_AVVSONORITEXT)); if (textLightSoundSettings.getTextWidth() > scrollTextLightSoundSettings.getWidth()) { scrollText = true; pixelToScroll = textLightSoundSettings.getTextWidth() - scrollTextLightSoundSettings.getWidth(); }Then, in the container's tick handle eventvoid lightSoundItem::handleTickEvent() { lightSoundItemBase::handleTickEvent(); if(scrollText) { static int16_t pixelScrolled = 0; static bool scrollRight = true; if (scrollRight) { if (pixelScrolled < pixelToScroll) { scrollTextLightSoundSettings.doScroll(1, 0); pixelScrolled += 1; } else { scrollRight = false; } } else { if (pixelScrolled > 0) { scrollTextLightSoundSettings.doScroll(-1, 0); pixelScrolled -= 1; } else { scrollRight = true; } } } scrollTextLightSoundSettings.in
Hello,Where can I find the HAL API files and descriptions of the HAL API for the STM32F411 microcontroller?
I know this matter is dense and niche, so ill try to articulate my process in a digestible manner and add some memes.I Recently downloaded sbsfu-v2-7-0 (legacy) package.After some YMODEM bug fixes, i have a working example SBSFU for only one ACTIVE SLOT and single Download SLOT. STM32CubeExpansion_SBSFU_V2.7.0\Projects\NUCLEO-G474RE\Applications\2_Images The codebase readme says it supports more Download SLOTS, Great!, this way we could have two different UserApp downloaded, in order to activate more SLOTs : (app_sfu.h) /* Multi-images configuration : - Max : 3 Active images and 3 Download area - Not necessary same configuration between SFU_NB_MAX_ACTIVE_IMAGE and SFU_NB_MAX_DWL_AREA - Active slot identified with SFU magic (1,2,3) information from header - Do not forget to add keys for each image in SE_Corebin/Binary folder - Master slot : image started in priority if valid - FW image valid all feature authorized from master slot */ #define SFU_NB_MAX_AC
Hi,I have a custom board and im keen to get my design to be able to have buttons that trigger events when the user releases (onRelease) the button, as well as onPress.Is this possible and how would i go about achiving it ?Im using TouchGFX 4.20
Hello ,I am working with nucleo-H743Vitx. I have created Shtml pages which has different tags. When I executed the code, it is working fine.I want to display some more dynamic data . So, I added few more tags to the shtml file and I included these tags in ssi handler function as well as in ssi tags like I did for working ssi tags. When I run this code, I can see my project is working fine but the webpage is not loading and it is giving error but my other hardware is working fine. I checked the console window but there is no error related to shtml file.Then, I commented the another tag which was working and executed the code, Then the code with new tag is working fine. Again I tried with all the tag and the webpage is not displayed. I found all the tags are working fine indepenedtly but not together.I checked the tag length and it is fine . I think the issue is with number of tags or memory. Do we have any limitations on adding number of tags? if yes, Could yo
Hello everyone! BackgroundWe are working on STM32G474VET6 based custom board for some specific motor control application. Project demands to have a custom bootloader on FD-CAN with 500kbit/s arbitration baudrate and data rate with 2Mbit/s with BRS option turned ON. Bootloader is done and working fine.Board has a support for three CAN buses, therefore using FDCAN1, FDCAN2 and FDCAN3 periphery. All CAN buses has the same bus configuration and are not inter-connected. Everything works perfectly with running only application on uC. As soon as we add bootloader that runs on FDCAN1, that same application (adjusted to be bootloadable ofcourse - offseted in flash, vector table adjusted) that was running all three CANs, now hangs if any message is received/transmitted on eihter FDCAN2 or FDCAN3. If there is no traffic on FDCAN2 or FDCAN3 everything is working as expected. Beside CAN periphery we're running also ADC1&2 with injected and regular channels, triggered by cent
Split from this thread, as it's a different question.Hi @ASEHST,the example projects are made for the NUCLEO-N657X0-Q board. I tried to adapt one of that for the STM32N6570-DK board but keep on getting stuck during the DHCP resolution. Checking the schematics I realised that the pin assignment is different. But even changing the pins does not fix my problem and I keep getting stuck in the following section of "app_nextduo.c". printf("Looking for DHCP server ..\n"); /* wait until an IP address is ready */ if(tx_semaphore_get(&DHCPSemaphore, TX_WAIT_FOREVER) != TX_SUCCESS) { /* USER CODE BEGIN DHCPSemaphore get error */ Error_Handler(); /* USER CODE END DHCPSemaphore get error */ } I checked the network traffic and can confirm that the DHCP server does not receive discover package. Do you have an idea what might the problem be and if there are any known issues regarding ethernet/the tcp stack?Kind regards
Hello.I try to write a dynamic changed value in a text area.But it isn't possible to make a value output.I get allways "???" instead of my value.I used the video from ST: https://support.touchgfx.com/academy/how-to/textareaand try to change the text on runtime, but i get allways "????" as result. Even if i thy to write a unicode-string, a char string, a unicode-value...The only way to change the text at runtime is to use a static text and an additional wildcard text. counter++; Unicode::snprintf(Screen1View::textArea1Buffer, Screen1View::TEXTAREA_SIZE, "%d", counter); textArea1.invalidate();If i use only a Wildcard, all characters are a "?".If i use two text's -> Auto-generated fixed Text "RPM:<value> and a Wildcard1, most of the characters are a "?" (RPM: is correct). Is there a way to suppress the question marks, or does TouchGFX always display a question mark when trying to change a text or value?
Hi everyone,I'm currently working on a custom board featuring an STM32H747, and my goal is to implement a firmware update mechanism via the I2C interface. Since I'm a beginner when it comes to bootloaders (especially with dual-core microcontrollers), I'm reaching out for some help.I don't have physical access or the ability to control the BOOT0/BOOT1 pins of the MCU. This means I must rely exclusively on a custom bootloader residing in the internal Flash. This bootloader will need to handle receiving the new firmware via I2C and subsequently programming the Flash.Can anyone help me out? I'm not sure where to start.Thanks a lot for your time and support!
Hello ST Community,I’m currently developing a project on the STM32U5G9J-DK2 board and working to implement a FileX + LevelX-based file system on the external NOR flash via XSPI.I found the example project Fx_NoR_Write_Read_File in the STM32Cube firmware package, and while it’s functionally suitable, it does not include the .ioc file. This has made it challenging to fully understand and replicate the setup, especially regarding the XSPI (OctoSPI) peripheral configuration and the use of the lx_stm32_xspi_driver_glue.c for flash communication.Why This Is Important:The CubeIDE (latest version) does not provide this driver (lx_stm32_xspi_driver_glue.c) and configuration by default, making manual recreation risky and error-prone.Without the .ioc or clear documentation, it’s difficult to ensure correct XSPI timings, GPIO assignments, and memory-mapped mode settings.My current development progress is blocked until I can correctly mirror the peripheral and middleware configuration from this exa
My company has purchased STM32F407G-Disc 1 board for evaluation in order to use STM32F407VE in our hardware.UART6 (PC6 + PC7) works fine but UART 1 (PA10 + PA9) does not work.I found in some old posts that in the discovery board there is a large capacitor connected to PA9 that prevents the uart from working.Is this true? Does this mean that in my final hardware design there will be no such issue and UART 1 will work fine?Thanks.
Hi,I have a question that might be helpful for many others as well.I am currently using the MB2046B development board, which features the STM32C071RB microcontroller, along with STM32CubeMX for code generation.I also have a custom board that uses the STM32C071CBT6 microcontroller.Will the same code developed for the MB2046B board (with STM32C071RB) work on my custom board that uses the STM32C071CBT6?if Not can you please tell me the Why it not works for instant we forgrt about the pins
Hi I am testing the Nucleo-L433RC-P board with a BlueNRG-2 BLE interface. I configured the setup, but the BLE device is not being detected in the ST BLE app. Look at pic, Any modifications require are not ?
When I connect a USB cable and use b-g431b-esc1, the U5 IC overheats and becomes unusable. Could you please advise me on the cause of this phenomenon and how to make b-g431b-esc1 usable again?To use the b-g431b-esc1, I soldered the power input/output pins, CAN pins, and the pins near the CAN pins (likely J8). Please let me know if you need any additional information.
Hello,I am trying the sleep example for the development board B-U585I-IOT02A, called PWR_SLEEP. I decided to add a channel from ADC1 module and I want to test, but I do not see any header file on the project. I enabled ADC1, channel 1 on pin PC0 in the .ioc file. Is it allowed to modify and add modules there?How do i see the complete code? Furthermore, I see the file from hal_adc contains #ifdef HAL_ADC_MODULE_ENABLED and currently the whole file is in grey as if the ADC module has not been enabled. I am not sure it should be like that.Regards,Gergana
Is the DevEUI ID also provided in the hardware for stm32wle , in datasheet it is mentioned it is DevEUI compliant. Does it also have a UID64 register from where it can be read?
Hi everyone,I faced a frustrating issue with lwip_connect() hanging forever when trying to use an STM32 as a TCP client (FreeRTOS V1 + LWIP stack). 🧠 Problem SummaryCalling lwip_connect() inside my STM32 TCP client code caused the system to hang indefinitely.It was getting stuck at this internal LWIP line: sys_arch_sem_wait(LWIP_API_MSG_SEM(msg), 0);This only happens when the TCP/IP stack is waiting for the connection to complete, and never gets a response.🧪 Observations- I could ping the server (PC) from STM32 successfully.- My STM32 TCP server mode worked perfectly.- But when STM32 tried to connect to Hercules TCP server on port 503 — it hung forever.- LWIP debug logs showed that:- tcp_connect() was called- But the TCP state machine never moved forward- The stack kept calling tcp_slowtmr: polling application LWIP Debug Logslwip_socket(PF_INET, SOCK_STREAM, 0) = 0 lwip_connect(0, addr=192.168.1.1 port=503) tcp_connect to port 503 tcp_slowtmr: processing active pcb tcp_slow
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.