Join conversations with your peers and ST experts. Explore the full potential of STM32 microcontrollers for your embedded design.
Most recent activity
I am using MCSDK 6.4.0 and am creating a new inverter board using STMC Board Designer. I am using the STM32G474RETx MCU.When I select the Clock Source as "24 MHz External Crystal", save the project, and exit back to the list of boards, the "Clock Source" column correctly shows this board is using "24_cristal". When I edit the board, the clock source reverts back to "Internal RC Oscillator". In the figure below, I have selected 24 MHz External Crystal. I press "Save" and am taken back to the list of boards. The list correctly shows the clock source as "24_cristal"Now if I edit this board again, the clock source has reverted back to Internal RC OscillatorCould this be a possible bug, or is MCSDK forcing the STM32G747 to only operate in Internal RC Oscillator mode?
Hi, We use NUCLEO-H753ZI. Input signals to all ADCs are 60Hz/50Hz, the sampling clock is set as 5Mhz. The sample time is set to 12.clock cycles. We found the cross talk (interference) between two ADC adjacent channels in STM32H753 assigned to two ADCs and sampled simultaneously. Is it normal? If it is normal, the the number of useable ADC channels would be cut to a half. If it is not normal, how to make the corrections? Thank you for your help,Rong
Hello,Trying to implement SPI bus (Master only) to transmit 16 bit to LCD, utilize linked list GPDMA ch 6, I looked at the UART linked list example and tried to modify it to work with SPI with no success, only the first half word is sent and then it stops without any interrupts...I'm using the "HAL_SPI_Transmit_DMA" after initiate all linked list array by CubeMx.Does any one has any SPI linked list example?
Hello everyone,I was trying to build communication between 2 LoRa devices. Sending a "Hello" from Tx board and receiving on Rx board. I tried to debug using UART (printf through Tera Term). But I am stuck at transmitting data. Do any of you have an idea about what to do?Thank you.
I have a STM32L432 Nucleo-32 board and I'm trying to use ITM printf trace. I created new project with configuration: "Targeted Project type: Empty" "targeted language: C++". I'm not using HAL libraries.In the syscalls.c I added following code://Debug Exception and Monitor Control Register base address #define DEMCR *((volatile uint32_t*) 0xE000EDFCU ) /* ITM register addresses */ #define ITM_STIMULUS_PORT0 *((volatile uint32_t*) 0xE0000000 ) #define ITM_TRACE_EN *((volatile uint32_t*) 0xE0000E00 ) void ITM_SendChar(uint8_t ch) { //Enable TRCENA DEMCR |= ( 1 << 24); //enable stimulus port 0 ITM_TRACE_EN |= ( 1 << 0); // read FIFO status in bit [0]: while(!(ITM_STIMULUS_PORT0 & 1)); //Write to ITM stimulus port0 ITM_STIMULUS_PORT0 = ch; } __attribute__((weak)) int _write(int file, char *ptr, int len) { (void)file; int DataIdx; for (DataIdx = 0; DataIdx < len; DataIdx++) { ITM_SendChar(*ptr++); } return len; }I didn't make any changes t
Reading through the docs for the STM32 G474 FDCAN TX sections, it seems like if FDCAN is in FIFO mode, there is no way to cancel a pending message. The message can only be dequeued from being sent. If this is the case, how should one handle the case of the currently TX'ing message not ever being acked? In this case, if the message is never acked, it cannot ever be dequeued and the FDCAN TX will essentially be stalled for any other messages. I do see the cancellation functionality, but it seems as though none of it applies to FDCAN in FIFO mode?
Hello everyone,I am currently working on a project using an STM32H755ZIT6 MCU and want to use the USB CDC class to send data over USB. I can successfully program the MCU and the system clock configuration is correct. However, when I plug in the USB, the device is not recognized by Windows. I receive the following error message:"Unknown USB Device (Device Descriptor Request Failed)""The last USB device you connected to this computer malfunctioned, and Windows does not recognize it."Schematic details:I have attached the schematic of the USB circuit to this post.USB_DP is connected to PA12.USB_DN is connected to PA11.The circuit is powered via USB as well.Currently, only R45 and R50 are mounted (0 Ohm), R47 and R49 are not mounted.The TS3USB30EDGSR chip is not activated at this stage. I have the option to activate it if needed.To make sure the MCU has enough time after power-up, I added a 3-second delay before initializing the USB stack.Still, the USB device is not recognized.If anyo
Hello everyone,I’m working on an STM32 project using TouchGFX and STM32CubeIDE. The code compiles fine on the real target, but when I try to build the TouchGFX Simulator, I get the following error repeatedly:fatal error: i2c_data.h: No such file or directory The i2c_data.h file is present in my project under Core/Inc.It seems the simulator build does not include the folder containing i2c_data.h in its include paths.Any guidance on:How to add additional include directories for the TouchGFX simulator? Thank you very much for your help!
Hi, I want to start using the STM32U073KCU6 MCU in an upcoming product but don't have a ton of familiarity with STM MCUs. My attraction to the device is based around the integrated USB functionality and I am trying to figure out if it can be field programed using the USB lines only (and of course being powered on). What do I need to do in my pcb to make sure this is possible? what software tools (command line scripts or otherwise) do you recommend for this programming step? Best, Teva
I'm having difficulties in approaching GPDMA in H5 architecture. In another thread I'm trying to run a DMA, which keeps going itself (circularly?).Does that mean inherently that always a linked list has to be used?And would uneviteably go along with an interrupt being generated?If the buffer length is 1 (in my case), that would be very costly and would foil the benefit of DMA.Where can I find a good source for reading on (tutorial, examples)?
Hi,I have a situation where the configured watchdog on my STM32L031 does not trigger even though the MCU gets stuck in an I2C function. In my program flow, I first run through some initializations (as well as I2C_Init()) and then start the IWDG (Start_WDG()). I then try to establish an I2C connection to another device. In some cases this fails and I get stuck on line "while(!(I2C1->ISR & I2C_ISR_TXIS));". Surprisingly, in this situation the watchdog does not trigger as expected. I am of course aware that the code in this form is not properly programmed and error handling in this situation solves the problem (implemented a timeout which itself does a system reset). Nevertheless, it would be interesting to know why the IWDG in this version does not trigger.Thanks in regard.Greetings from Salzburg
Buongiorno a tutti sto provando ad interagire con un flexbutton voglio rilevare la pressione del rilascio, ho visto molti esempi di altri post, ma alcuni esempi che trovo in rete includono un file flexbutton.hpp che la mia demoboard "touchgfx 4.24 stm32u5g9j dk2" non genera, ho cercato in tutte le cartelle ma niente e anche in rete non riesco a trovare dove scaricare il singolo file, c'è qualcuno che può darmi una mano o illuminarmi, grazie Translation: Hello everyone, I'm trying to interact with a flexbutton, I want to detect the release pressure, I've seen many examples in other posts, but some examples I find online include a flexbutton.hpp file that my demoboard "touchgfx 4.24 stm32u5g9j dk2" doesn't generate, I've searched in all the folders but nothing and even online I can't find where to download the single file, is there anyone who can give me a hand or enlighten me, thanks
I am configuring wakeup pin PA0 to WAKEUP1 by wirting 01 (pull-up) at WKUPPUPD (PWR_KUPEPR) as said at RefManual by using "HAL_PWREx_EnableWakeUpPin ". PWREx_WakeupPinTypeDef sPinParams; sPinParams.PinPolarity = PWR_PIN_POLARITY_LOW; sPinParams.PinPull = PWR_PIN_PULL_UP; sPinParams.WakeUpPin = PWR_WAKEUP_FLAG1; HAL_PWREx_EnableWakeUpPin (&sPinParams); After that i go to standby mode by using: HAL_PWR_EnterSTANDBYMode(); Then at standby mode, there is no pull up at PA0. At the manual it is said that the pull up config is kept at standby mode. Do i have to do something else? Thanks!!
Hi,In the motor program generated by MCSDK, I have doubts about the configuration of interrupt priority for USART and TIM. In the program, the interrupt priority for USART is (3.1), while Tim's brake interrupt is (4.1).In practical driving, the brake interruption of TIM involves overcurrent protection of the motor, which directly affects the safety of the motor and controller. However, its priority is lower than that of USART. In this configuration, will it increase the safety risk of the motor and controller when USART is frequently disconnected or in other unexpected situations? Can you help me unravel this doubt? thank you.Duan Additional program screenshot:
I am trying to figure out if we can both use secure boot (with Trustzone) and dual bank at the same time. I see in AN0007 that "SWAP_BANK activation by option byte is not supported by STiRoT." Is there some other way to swap banks without using the option byte, or does STiROT effectively make dual bank unusable?
am developing smart meter with stm32h750vbt6,I develop my own stm32 PCB board and is working well if I run the project with other hardware that has libraries .the problem is for the ac voltage current and voltage sensor am using ACS758 for current and ZMPT101B for voltage ,the ADC are not reading any thing while everything is well .does any libraries exist for them or any way I can use to get the measurements so that the smart meter will work well?
Recently I’ve been developing a host application on a Mac Mini (Apple M4, Sequoia 15.5) using Xcode. It communicates with a STM32H7 board via USB CDC, using the internal PHY at 12 Mbps. The USB CDC code is auto-generated by CubeMX with all default parameters. The board works perfectly with serial tools on Windows.When the same board is connected to the Mac Mini, it successfully enumerates two devices: /dev/tty.usbmodem and /dev/cu.usbmodem. Regardless of which one selected to communicate, writing always succeeds and the board receives the data correctly and sends respond back.However, for some reason, the Mac computer “drops” the incoming data—the application’s read() function never gets anything.I’ve already tried the following combinations:Reading and writing from tty or cu deviceBlocking and non-blocking reads (including background event-listening methods)Enabling DTR and/or RTSUsing third-party libraries like ORSSerialPortNone of them worked. Also tried some serial tools on Ma
Hello,I'm having problems with the FUS not starting and the Wireless stack not responding.In my code, the wireless stack can be updated. In the process of updating it, the STM32WB55 was interrupted by an external reset, and the FUS was left unresponsive.These are the option bytes:I tried to reenable the FUS by following these steps: Unable to start FUS. FUS version is 0.0.0.0 and FUS_STATE_ERR_UNKNOWN Since most of the things mentioned looked almost the same. I attempted to toggle the RDP to BB apply it and back to AA, and momentarily it looked like it worked, but when I tried to update the wireless stack afterwards, it failed again and I wasnt able to make it work again.Any help is appreciated.
Hi, I assume there have already been posts on this topic, but I can't handle this problem. I have an STM32F429I-DISC1 board and I'm trying to connect it as a USB HID keyboard. Unfortunately, all the guides and articles don't work, and my board isn't even detected by the computer after uploading the program. Why? Has anyone else had this problem and would like to share a solution?
An application created directly for the configurator where TIM3_CH! is set to PB4 where the internal clock is either ticked or not ticked it crashes at if (HAL_TIM_PWM_Init(&htim3) != HAL_OK) with No source available for "uwTickPrio() at 0x20000004" STM32CubeIDE Version: 1.18.1Build: 24813_20250409_2138 (UTC) static void MX_TIM3_Init(void) { /* USER CODE BEGIN TIM3_Init 0 */ /* USER CODE END TIM3_Init 0 */ TIM_MasterConfigTypeDef sMasterConfig = {0}; TIM_OC_InitTypeDef sConfigOC = {0}; /* USER CODE BEGIN TIM3_Init 1 */ /* USER CODE END TIM3_Init 1 */ htim3.Instance = TIM3; htim3.Init.Prescaler = 0; htim3.Init.CounterMode = TIM_COUNTERMODE_UP; htim3.Init.Period = 65535; htim3.Init.ClockDivision = TIM_CLOCKDIVISION_DIV1; htim3.Init.AutoReloadPreload = TIM_AUTORELOAD_PRELOAD_DISABLE; if (HAL_TIM_PWM_Init(&htim3) != HAL_OK) { Error_Handler(); } sMasterConfig.MasterOutputTrigger = TIM_TRGO_RESET; sMasterConfig.MasterSlaveMode = TIM_MASTERSLAVEMODE_DISABLE; if (H
Hi all,I'm looking to integrate our translations from TouchGFX designer into a localization program, but does anyone have an idea how to convert TouchGFXs xml format to XLIFF or other more general formats easily?
Hi, I'm working on STM32H7A3NIH6Firmware Package: STM32Cube FW_H7 V1.11.2 I have a very interesting issue with bootloader jumping.According to the file "an2606-stm32-microcontroller-system-memory-boot-mode-stmicroelectronics", the bootloader address is 0x1FF0A000. The issue: Sometime its works (succeed to jump into the bootloader, and succeed to program by STM32CubeProgrammer), and sometime is not. After investigation, I found that when it is not works, it is because the jumping function stuck in HAL function named SCB_DisableDCache().In SCB_DisableDCache(), there is a while loop that reduce a variable named "sets", and when it came to be zero, the loop is done, and the jumping is continue.The variable "sets" value starting with some value, 127 for example, and sometime without any reason it changed to a non-reasonable number (605028303), and the loop is continued and continued. SCB_DisableDCache() is a pure HAL function. I'm using thi
The 32-pin package doesn't seem to have any kind of external clock input at all, and the device does not feature "crystal-less USB". How do we provide a stable clock for USB then?
Hi,I'm working on a project using an STM32G series MCU alongside a processor. The processor runs an application that handles firmware flashing for the STM32.We’re planning to implement firmware upgrades over I2C or UART. However, due to hardware limitations, the I2C line we selected does not support bootloader flashing. So, we're now considering UART for the firmware upgrade.The current schematic only provides access to the MCU's RX pin—its TX pin is not connected. Can we connect the processor's TX pin to the MCU's RX pin and still perform the firmware upgrade using the STM32 bootloader? Will this unidirectional connection be enough?
Hello,I am trying to import several images into my TouchGFX assets. I'm able to load them in and build, but when I flash my application hard faults. I've noticed the error once I exceed ~8Mb in the external flash.I believe I should have 64Mb of external flash. Is there a way to adjust the partitions? Has anyone else seen this problem? Thanks
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.