Join conversations with your peers and ST experts. Explore the full potential of STM32 microcontrollers for your embedded design.
Most recent activity
Hello ST Team, We are currently working with the STM32G0B1KCUX series MCU, which has 144 KB RAM and 256 KB Flash.Our objective is to measure the frequency of an incoming signal using TIM1 in Input Capture mode with DMA (Channel 2). Below are the key configuration and issue details: We are interested in capturing frequency using DMA mode without any interrupt callbacks. We need a way to synchronize the transfer completion to ensure the captured data is correct i have Attached timer settings and code snippet Timer Configuration: Timer: TIM1 (16-bit) Clock Frequency: 64 MHz (no prescaler) DMA: Used to capture values without interrupt Slave Mode: Reset mode with trigger on TI1FP1 Input Signal: Frequency Range: 15.8 kHz to 16 kHz Signal Period: Approximately 62.5 µs to 63.3 µs Observation: When checking the DMA_ISR_TCIF2 flag before reading, the time between frequency measurements varies inconsistently — sometimes 1ms, 2ms, or 3ms. However, if we remove the DMA com
I was wondering if anyone had managed to get the LoRaWAN End-Node example running on other MCUs than the STM32L series. I've been trying to get it to run on the STM32U5A9 combined with an SX1262, but I haven't had any luck. I'm trying to integrate this into a clean project structure, unlike the one from the example applications where there are files like sys_app.c that manually configure the SPI bus instead of using CubeMX generated code. I have manged to succesfully port the SX1262 driver code from Semtech itself (https://github.com/Lora-net/sx126x_driver), however I don't see how to integrate this with the LoRaWAN example. If anyone has succeeded or has any tips, any help would be appreciated!
Could you please help me with my Nucleo-H753ZI board power issue? I would greatly appreciate your assistance.Earlier, the nucleo-h753zi board worked normally when I applied external power from a power supply at 9 volts.When I applied power using a 9-volt battery, overcurrent occurred and the U12 component overheated. Could you please advise me on how to handle this situation?Other than the power supply, nothing else was connected - only GND and the external power supply pin were connected. Even without external power, when I connect USB, the overcurrent LED still comes on.I would be very grateful for your guidance on resolving this issue.I think the board has probably crossed the point of no return.
I'm trying to interface DHT22 with STM32F429i but the problem is that the sensor never responds with the high signal for 80 micro seconds after the initialization. Here you can find my code, so please tell me what could be wrong, I have been debugging this for the past week with no progress. if ((HAL_GPIO_ReadPin (DHT22_PORT, DHT22_PIN))) Response = 1; // if the pin is high, response is ok this if statement in line 126 never goes true. therefore the response is -1.
Hi All,Dears.I am studying how to make http requests with Nucleo-F429ZI. I have already had success with the web server example (HTTP Server), but now I need to make requests on another server, where a number of endpoints will be available. The difficulty I am having is that all the examples I found use the GET method, and I need to make some requests with the POST method. Is this possible?Could you recommend some reading material with examples?
Hello, I would like to know if fw developed in stm32cubeIDE for nucleo wl55jc1(there are some examples for it) is compatible with https://www.st.com/en/microcontrollers-microprocessors/stm32wle5cc.html mcu family(stm32wle5ccu6) or I should expect some differences in registers and initialization code to be necessary. Thanks, Mihai
STM32WB55 NUCLEOI have 2 ADXL362s on SPI1.They both have their own separate chip select GPIO pins.They are both configured the same.They are both in the same orientation (on the same breadboard).The output of both is processed using the same logic.One of them gives expected results, the other is consistent but wrong! Just as a sanity check, I am OK to run two sensors on the same SPI bus as long as I'm clear which chip is selected?
I have to receive a desired speed that is sent from the TX code, and receive it into the RX code of another different STM32 board that is connected to a Maxon 251601 motor, for it to work. If i write for example MC_ProgramSpeedRampMotor1(1500,2000) directly in the board that it is connected to the motor it works good. The problem that I have is that I try to send this from the transmiter board: char tx_buff[32]; int velocidad = 1500; while (1) { int len = sprintf(tx_buff, "SPD%d\n", velocidad); HAL_UART_Transmit(&huart2, (uint8_t*)tx_buff, len, HAL_MAX_DELAY); HAL_Delay(1000); } And the receiver has this in the main: char rx_buff[32]; int duration = 5000; while (1) { HAL_UART_Receive(&huart2, (uint8_t*)rx_buff, 8, HAL_MAX_DELAY); char *ptr = strstr(rx_buff, "SPD"); if (ptr != NULL) { int velocidad = atoi(ptr + 3); MC_StartMotor1(); MC_ProgramSpeedRampMotor1(velocidad, duration); } I was trying for it to receive "SPD1500\n" inside the rx_buff, to make the motor move
Hello,STM32F411CE microcontroller.Where can I find, which of command the Erase or Extended Erase command is supported by the UART bootloader?There is a note 4 in the AN3155 (page 7 and,also see Figure 1 below) which says that the Erase (x043) and Extended Erase (0x44) are exclusive. A device can support either the Erase command or the Extended Erase command, but not both. Figure 1:
Please help me.
I am trying to run the Secure Boot examples from STM32CubeL5 and have everything built, but on step 2 where I run `TFM_SBSFU_Boot\STM32CubeIDE\regression.sh` I am having an error where I cannot program the option bytes.(Another similar thread was with someone who bought a counterfeit part so I'll also mention that I bought the kit from ST.)This is the script output $ ./regression.sh regression script started Regression to RDP 0, enable tz ------------------------------------------------------------------- STM32CubeProgrammer v2.19.0 ------------------------------------------------------------------- ST-LINK SN : 004600313137510B33333639 ST-LINK FW : V3J13M4 Board : STM32L562E-DK Voltage : 3.29V SWD freq : 8000 KHz Connect mode: Hot Plug Reset mode : Software reset Device ID : 0x472 Revision ID : Rev Z Device name : STM32L5xx Flash size : 512 KBytes (default) Device type : MCU Device CPU : Cortex-M33 BL Version : -- UPLOADING OPTION BYTES DATA ... Bank : 0x00 Address : 0
Hello, I am trying to use one MCU to program another MCU, both of which are STM32 F746ZG boards.Let the MCU that is sending the commands be MCU 1, and the MCU in the bootloader mode be MCU2.I use the following command in the MCU2 to start its default bootloader:BOOT_JumpToAddress(DEFAULT_BOOTLOADER_ADDRESS); void BOOT_JumpToAddress(uint32_t address) { printf("Jumping to 0x%08X\r\n", address); // Function pointer to reset handler void (*app_reset_handler)(void) = (void *)(*((volatile uint32_t *)(address + 4U))); // Disable RCC, HAL, reset SYSTICK, and remap vector table offset HAL_RCC_DeInit(); HAL_DeInit(); SysTick->CTRL = 0; SysTick->LOAD = 0; SysTick->VAL = 0; SCB->VTOR = address; uint32_t msp_value = *((volatile uint32_t *)address); __set_MSP(msp_value); // Jump into application app_reset_handler(); }Then, on MCU1, I have coded the following functions so that I can send certain commands by typing them into my serial emulator PuTTY:printf("cmd: "); w
Hey everyone,I'm working on a custom board based on the STM32H753 MCU. I successfully programmed it using STM32CubeIDE initially, but ran into an issue when trying to re-flash it — I got the error:"Unable to erase flash memory to reprogram it"To work around this, I connected to the board using STM32CubeProgrammer and performed a full chip erase using the following settings (details below). I clicked Apply, and the flash erase appeared successful. After erasing, I’m no longer able to connect to the board via either Cube IDE or Cube Programmer. I now get:"Unable to get the core ID" Debug Interface: ST-Link externalBoard was connecting and programming before the flash eraseNow completely unresponsive via SWD.Does full flash erase wipe the area that contains the boot/configuration code, preventing debug access?What hardware signals should I verify?Is there a way to force the MCU into a recoverable modeI will also share the schematics Note:This is not exactly the same a
Here in the below image from the Cube MX it suggests that, SET all the free pins as analog (to optimize the power consumption). How does it help. Also is it applicable to all the controller families?
Hi I'm just starting to use TouchGFX designer, with a background in other UI design programs, and one thing I'm frustrated about is the lack of the ability to align and distribute assets on a screen. I do appreciate the snapping that happens but if I need to distribute a number of objects evenly or just batch align them all with one click, it becomes bit of a pain to manually type x and y locations for each one. I guess it's not that big of a deal, but just a feature that I feel is missing from a UI design software that others have and feels like TouchGFX is behind in this aspect. Also there is a bug in 4.25.0 where if you have multiple objects selected and then move them, when you deselect them by clicking elsewhere, the mouse automatically latches to the "box select" mode.
I have created a ui to that i am able to upload on the custom board(STM32H750VBT6) which i can successfully Debugging using IDE but display is empty.I dont know where I am wrong.I attached the library that I am using below.I have taken library from this GitHub with this pinout int main(void) { /* USER CODE BEGIN 1 */ /* USER CODE END 1 */ /* MPU Configuration--------------------------------------------------------*/ MPU_Config(); /* MCU Configuration--------------------------------------------------------*/ /* Reset of all peripherals, Initializes the Flash interface and the Systick. */ HAL_Init(); /* USER CODE BEGIN Init */ /* USER CODE END Init */ /* Configure the system clock */ SystemClock_Config(); /* USER CODE BEGIN SysInit */ /* USER CODE END SysInit */ /* Initialize all configured peripherals */ MX_GPIO_Init(); MX_DMA_Init(); MX_SPI1_Init(); MX_TIM3_Init(); MX_CRC_Init(); MX_TouchGFX_Init(); /* USER CODE BEGIN 2 */ // SCB_DisableIC
Hi,is it possible to select just the CPU and connect any display (e.g. via MIPI DSI)?Best regards,Achim
Hi, I have a question about this highlighted text in the AN2867 document refering to the "calculating external resistor" paragraph As I understood the condition to use a Rexternal is "if the power disipated in the crystal is higher than the value specified by the crystal manufacturer", as shown above so my question is how to check the power dissipated in the crystal? how to know if I`ll need to use Rext before have a physical implementation of my MCU thanks for your helpOne more extra question (not a technical one) is it normal to feel a little bit overwelmed some times doings this kind of desing? (is my first time designig the STM32 MCU lets say from scratch) Thanks!
I've installed TouchGFX . When I try to create a project, TouchGFX crashes at 88% and simply closes. When I checked the TouchGFXDesigner.log file the error is System.IO.FileLoadException: Failed to load native freetype library!same issue? Any idea how I can fix this?
I have been trying to figure out why I keep getting consistent hard faults when trying to access peripheral instances after waking from Stop Mode 2. Here is the code I am usingFor entering stop mode:static void SystemClockConfig_STOP(void) { /* A) Ensure V_CORE supports 120 MHz again */ HAL_PWREx_ControlVoltageScaling(PWR_REGULATOR_VOLTAGE_SCALE1_BOOST); /* B) FLASH: raise latency before any SYSCLK jump */ __HAL_FLASH_SET_LATENCY(FLASH_LATENCY_5); while (__HAL_FLASH_GET_LATENCY() != FLASH_LATENCY_5) {} /* C) Handle AHB overshoot if needed */ if ((RCC->CFGR & RCC_CFGR_HPRE) == RCC_SYSCLK_DIV1) { MODIFY_REG(RCC->CFGR, RCC_CFGR_HPRE, RCC_SYSCLK_DIV2); } /* D) Bring HSE & PLL back */ __HAL_RCC_HSE_CONFIG(RCC_HSE_ON); while (!__HAL_RCC_GET_FLAG(RCC_FLAG_HSERDY)) {} __HAL_RCC_PLL_ENABLE(); while (!__HAL_RCC_GET_FLAG(RCC_FLAG_PLLRDY)) {} /* E) Switch to PLL */ MODIFY_REG(RCC->CFGR, RCC_CFGR_SW, RCC_SYSCLKSOURCE_PLLCLK); while ((__HAL_RCC_GET_SYSCLK_
Hello,is it possible to create a dotted line using Canvas Widget line?Thanks
Hi Team,I’m currently working on a project involving the TouchGFX interface with an internal clock configured at 480 MHz. I’ve created a custom TouchGFX project using STM32CubeMX and successfully brought up both QSPI and SDRAM, verifying their functionality independently.Following the guidelines from TouchGFX Seminar -3, I proceeded to enable TouchGFX through CubeMX. I've attached screenshots showing my LTDC, DMA2D, Clock, and TouchGFX configurations for your reference.Project Details:MCU: STM32H750IBT6Display: 12.1-inch panel supporting RGB888LVDS Driver: DS90C385AMTX_NOPBInitially, with a simple background and the default designer gauge, everything worked fine.However, when I customized the gauge's background and needle graphics, I started encountering errors, including:TouchGFX rendering errors (specific message attached in screenshot)Occasional Hard Fault exceptionsI would appreciate your insights on what might be causing this issue—especially whether it could be related to memory
Hi I'm trying to drive a screen through a parallel interface. The screen has the ST7796 driver. I was able to initialize it, but it only displays noise. When data is sent through the parallel interface, it doesn't display. Do you know the necessary LTDC configuration? Or if special hardware is needed to connect the screen? I'm currently connecting the screen to the H7A3ZI core card with cables.
Hello all,I created an application with a 800x480 FSMC 16 Bits TFT screen (SSD1963 driver) STM32F429 CPU, I would like to create my screens with TouchGFX instead of creating lines of code on CubeIde, is it possible? If so, what should I take into account in my Cube Ide project?, I did project tests with TouchGFX (blank screen) and during compilation, there are errors that I cannot correct, (my project works without TouchGFX files) can someone help me ?Best regardsSeb
I have a Nucleo-L4R5 board that I want to power externally and for power consumption reasons, deactivate the ST-Link.For that reason I removed the jumper from JP6 and applied 5V power to CN8 pin 9 (5V)and 13 (Gnd).USB is plugged to the ST-Link and I program the board with the timedWakeUp-example from the STM32Duino-LowPower library.The builtin LED starts blinking as expected, but as soon as I pull the USB from the ST-Link part of the board, the blinking stops.Board version is MB1312-A01 to which I cannot find the documentation/schematic. Only newer A03 Version is available.When I look into the A03 schematic, all should be fine and the MCU running when JP6 jumper is pulled. The 3V3 regulator U6 is powered and I can measure that the 3V3 voltage is present. Any idea what might be wrong?
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.