Join conversations with your peers and ST experts. Explore the full potential of STM32 microcontrollers for your embedded design.
Most recent activity
NemaGFX already works baremetal on the STM32U5G9J-DK2.It probably only needs a little tweaking to get it working baremetal on the STM32H7S78-DK.So the software runs from external flash (XSPI2 0x70000000) and the frame buffer is located in external PSRAM (XSPI1 0x90000000).When the MCU writes to the frame buffer, it's displayed correctly on the screen.Then I tried to use NemaGFX but it starts hanging or generating memory traps (Fixed by now).I know NemaGFX works with RAM and not cache, so I've checked my MPU settings to rule out cache issues.My LinkerScript.ld:/* ****************************************************************************** ** @file : LinkerScript.ld ** @author : STM32CubeIDE ** Abstract : Linker script for STM32H7Sxx Device ** 64KBytes FLASH ** 456KBytes RAM ** 256MBytes EXTFLASH ** 32MBytes EXTRAM ** ** Target : STM32H7S7L8 ****************************************************************************** ** @attention ** ** Copyright (c) 2025 STMicroelectronics
I'm currently working with STM32F469IIT6 with an SDRAM called W9812G6KH in my own PCB. I tried to show the TouchGFX UI with LTDC interface connected to a LCD screen. But now I've encountered with a problem:It works fine with a static UI. However, every time I change the framebuffer, the screen flashes. This appears both for the single and double framebuffer.I tried to figure out the source code of this issue, and here's the result. Everytime we pass the code, the screen flashes.I think I know the meaning of the code but I have no idea about the solution of this issue. I read the document "AN4861:Introduction to LCD-TFT display controller (LTDC) on STM32 MCUs", I read the chapter "LTDC and DMA2D/CPU synchronization" and I followed the instructions but it was not working.So is there any other recommended solutions or advices to synchronize the LTDC and DMA2D/CPU?
Hi, I’m working on porting TF-M to a custom hardware platform based on the STM32U545 running Zephyr. As a starting point, I copied the existing b_u585_iot02a platform and adjusted it for the STM32U545’s 512 KB Flash. However, I haven’t been able to get it working. Has anyone already tried this port, or is there an existing example for the STM32U545?I add parts of the platform configuration files in attachment.Any guidance or references would be greatly appreciated!Lezhi
I'm using an STM32H750XBH6 MCU with two external Flash(W25Q256 X2) chips connected via QSPI. I followed the guide (W25Q FLASH Memory || Part 10 || QSPI & External Loader on H750) to create a custom external loader (.stldr) using STM32CubeIDE, and I modified the loader to match my specific hardware setup.However, programming fails and I receive the following error messages when using STM32 ST-LINK Utility:16:07:41 : Timeout during flash programming16:07:41 : Error occurred during erase operation!16:07:41 : Unable to run On-Chip verification!16:07:42 : Programmed memory Checksum: 0x0000000016:07:48 : Cannot read external memory!I've attached my loader source code for reference.Could someone help me check if there are any mistakes or missing steps in my setup or configuration?Thank you in advance!
Dear ST,I developed a RF PCB with STM32WL Microcontroller. The goal was to create RF Transceiver for 868 MHz transmission. Before I started developing PCB I read thoroughly through documents: DS13105, AN5407 and AN5457. As I am familiar with STM32 microcontrollers and its peripherals I only struggled with RF design, so let HP RF Path only be a subject to the following analysis. I developed a simple board on a following stackup:\(Prepreg’s permeability is 4,1, RF signals are on Top layer, solid GND layer was on layer L2. Traces have matched 50 Ohm impedance. Again, GND plane is solid without any discontinuities on this layer) On PCB I put LC impedance matching filter for 50-Ohm U.FL connector. After it was assembled, I programmed it to emit a continous carrier frequency signal. I connected it through U.FL-BNC adapter and then connected it to IFR2398 spectrum analyzer. The result was a beautiful 20,5 dBm carrier frequency and a satisfactory range. The prototype was a
Hi everyone!In our project for stm32f446, we are trying to use X-CUBE-CRYPTOLIB to verify the firmware signature on the device using ED25519. Unfortunately, when trying to call the cmox_eddsa_verify method, we get the CMOX_ECC_ERR_MEMORY_FAIL error. The error occurs when memory is allocated. Tell me how to overcome this, or perhaps we are doing something wrong.Below is the codebool FirmwareCrypt::verify(const uint8_t* data, size_t size, const uint8_t* sign, size_t sign_size) { if (!data || !size) return false; cmox_ecc_handle_t handle; uint8_t ecc_buf[ECC_BUF_SIZE// 2048]; uint32_t fault_check = 0; memset((void*)&handle, 0, sizeof(cmox_ecc_handle_t)); cmox_ecc_construct(&handle, CMOX_ECC256_MATH_FUNCS, ecc_buf, ECC_BUF_SIZE); cmox_ecc_retval_t ret = cmox_eddsa_verify(&handle, CMOX_ECC_CURVE_ED25519, public_key, PUBLIC_KEY_SIZE, data, size/*~100Kb*/, sign, sign_size, NULL/*&fault_check*/); if (/*(static_cast<uint32_t>(ret) != fault_check) &&am
I want to provide external reference voltage to 16-bit ADC.So i need to remove the R36.And Vref is connected to Vref+ pin on the board.These two things are the only steps i need to do right, after that i have to connect my external source to the vref+ pin and it will be the reference voltage for my ADC. And i need to make sure Vref<= Vdda, small increase might not be an issue right? Are there anything else i need to look into
Hello, I developed my software with STM32F469I-B07. I bought a new card but this card is AU1. I can't transfer my old software to this new card because the screen they use has changed. What should I do to import my old software to the new card?
Hi,I am working on DAC on Nucleo-H563ZI board. I am using PA4 on ST Morpho header as DAC1_OUT1.In idle state when the USER USB port is connected (irrespective of ST-LINK port connection), it shows a constant voltage of 660mV on output.During sine generation using DAC, there is no offset of this voltage observed and the output is in range.But if the USER USB is not connected, the output remains 0V. What could probably be causing the 660mV idle state output?
Hello everyone,I’m working on a project using the STSPIN32G4 and running into an issue where the MOSFETs are not switching as expected. I’d really appreciate some guidance from the community.Setup:MCU: STSPIN32G4 (integrated STM32G4 + gate driver)Power stage: 3-phase inverter using N-channel MOSFETsPower supply: 48VControl method: Just attempting to drivethe InverterFirmware: Own Problem:The MCU is running and I can confirm firmware execution via debug.The MOSFETs are not turning on — no switching on the half-bridges.Gate driver outputs appear to stay low (no high/low drive pulses).What I’ve Checked:VBOOT and VCC supply rails are within spec.EN/FAULT pins are pulled correctly(High).PWM timer configuration looks fine in CubeMX.Dead-time insertion is enabled.No over-current fault is being signaled (nFAULT pin is inactive).Questions:Are there any common setup steps (jumpers, register settings, enable sequences) I might be missing before the gate driver will actually drive the MOSFETs
Hi,Can you please confirm if the STM32H743I-EVAL board can be used to evaluate the STM32H743VIT6 IC?While checking the documentation, I noticed that the evaluation board shows NRND status with the STM32H743XI.
It was working fine before, but has now stopped working. Upon investigation, we found that the RTC crystal oscillator is not oscillating. It won't return to normal with a reset. An investigation with the crystal oscillator manufacturer found no problems. Debugging showed a timeout at the following code. Do you know what the cause might be? /* Get Start Tick*/tickstart = HAL_GetTick();/* Wait till LSE is ready */while (READ_BIT(RCC->BDCR1, RCC_BDCR1_LSERDY) == 0U){if ((HAL_GetTick() - tickstart) > RCC_LSE_TIMEOUT_VALUE){return HAL_TIMEOUT;}}
Hello, I'm working on a project using the STM32WL55 MCU. I'm using the radio features for a LoRa application. The applications requires low power composition for it need to run un battery power. So far I have achieved low current measurement ~2uA while in stop 2 mode and implementing sleep and wake up routines. One of the latest requirements is to be able to use the channel activity detection mode (CAD) in the application. I have followed steps shown in the example and recommendations form the datasheet. The CAD is required to scan on Spreading Factor 10 and 500Kz Bandwidth. The operation works, however the current consumption is higher to that of other chips with similar CAD setup. The duration of the scan is ~14ms and the current measured during that time is ~4mA, which compared to other chips ~2mA which is about half of the current. These measurements where done while no activity was detected. Are there any recommendations or settings I should con
I want to use the EMMC as USB storage space, but I encountered another issue: I am trying to access the EMMC via SDMM1, and after implementing the MSC-related functions (read, write, USBD_STORAGE_GetMediaLastLba, USBD_STORAGE_GetMediaBlocklength) in ux_device_msc.c, the formatting operation on the PC side fails. The error message says: "Please insert a disk into the removable disk."I have already verified that after initializing SDMM1, the EMMC can be accessed and read/write operations are successful. What could be the reason for this issue?The attached file is my project.ux_device_msc.c:
Hello, I am working on the STM32G431RB Nucleo board, specifically on the internal temperature sensor. I am facing issues in getting accurate readings. For your reference, I have attached: My code implementation An Excel sheet comparing temperature readings with respect to a thermal chamber The sensor readings are not matching the expected values. Could you please guide me on the correct way to use this sensor and help identify any corrections required in my implementation? /* USER CODE END Header */ /* Includes ------------------------------------------------------------------*/ #include "main.h" /* Private includes ----------------------------------------------------------*/ /* USER CODE BEGIN Includes */ /* USER CODE END Includes */ /* Private typedef -----------------------------------------------------------*/ /* USER CODE BEGIN PTD */ uint16_t adc_val,ref_adc,ts_ref,ts_cal1,ts_cal2; float vdd,temp,vdd,avg_temp; float alpha =0.075; #define TS_CAL1 ((uint16_t * ) 0x1FFF75A
I'm starting a project using the STM32WL55JCI7 chip, but I'm getting the following error. How do I fix this?An error occurs when compiling with IPCC Activated checkedDescription Resource Path Location Type'IPCC_C2_RX_C2_TX_IRQn' undeclared (first use in this function); did you mean 'IPCC_C1_TX_IRQn'? ipcc.c /STM32WL55JCI7_CM0PLUS/Core/Src line 63 C/C++ Problem
When I run the debugger, it stops at this part and doesn't proceed any further.void MX_LoRaWAN_Init(void)-> MBMUXIF_Init();-> MBMUXIF_WaitCm0MbmuxIsInitialized();-> void MBMUXIF_WaitCm0MbmuxIsInitialized(void){while (pMb_RefTable->SynchronizeCpusAtBoot != CPUS_BOOT_SYNC_CPU2_INIT_COMPLETED){project : LoRaWAN_End_Node_DualCoreSelect radio driver : User boardHow do I solve this? Could something like the above happen if the custom board is not connected properly?solved it ^^
Post edited by ST moderator to be inline with the community rules especially with the code sharing. 1- In next time please use </> button to paste your code. Please read this post: How to insert source code. 2- Post is not related to CubeIDE usage but more to the product so it needs to be moved to "STM32 MCUs Products" forum. So please don't post your question in CubeIDE only if it's related to CubeIDE usage or to raise a limitation in it. I have a 110k resistor in series with a 110k thermistor as well, at the midpoint I connect PC0, the other leg of the thermistor to 3.3v, the sConfig.SamplingTime is 247.5. But the readings are 110 Celsius when it should read 22 Celsius, what am I doing wrong, this is my code, thanks define R_SERIE 115000.0f // resistor fijo del divisor #define BETA 3950.0f // coef. beta del NTC #define T0 298.15f // 25 °C en Kelvin #define R0 115000.0f // resistencia nominal NTC a 25°C ADC_HandleTypeDef hadc1; volatile uint16_t adc_va
I tried to search the forum so I'm sorry if there is a solution posted to this problem.I have been struggling with creating the pattern inside the image. Every 10 seconds I want a short heartbeat pulse generated by DAC. (DAC goes high, then low).The period can experience a bit of jitter, no problem, but ideally it's every 10 seconds. However, the pulse is very important to have the correct timing as it is not allowed to be longer. I have tried to drive a timer in OPM mode with a slower timer as trigger, and the timers worked, but I couldn't get DAC and DMA to function the way I wanted, if this approach is possible, configuration pointers would be appreciated.I have also tried to enable a timer in software and disable it on DAC DMA complete transfer interrupt but this didn't work too well. If there is any way I can toggle the DAC with help of a timers capture compare that would be great. Then I could just enable the timer on some sys tick interrupt, use two CC's and disable it
Where can I find the pinout of NUCLEO H533RE?
I am working with an STM32N6 microcontroller and need clarification about the electrical characteristics of its GPIO pins. How much current a GPIO can source and sink. Is it in micro Amps or mili Amps.
Hi, I am asking about the STM32 usb power delivery middleware. Is there a way to delay/stop the PS_RDY (power supply ready) message from being sent out, or is that completely automatic? Thank you.
STM32WB1MMCH:Can other values be written again after the otp area is written to 0xFF
Hi,We are using the STM32WLE5JCI6.In our design, the TCXO (HSE) is powered directly by the 3.3 V on-board power supply, and the VDD_TCXO pin is left unconnected. Is this acceptable?Should we avoid using the Set_TcxoMode command in this case?Thanks for any help
EDIT: After doing some more research and testing, I've discovered that doing a software reset of the STM32 actually pulls the nRST pin itself low briefly. I did not realize this. I assumed a software reset was purely internal.In my previous testing, I noticed that the LAN8742A PHY was recovering after resetting only the STM32, so I thought it was something in the startup initialization sequence that was pulling the PHY out. However, I now realize that the PHY is also being hard reset. (more details about this in latest reply below).ORIGINAL MESSAGE:Hello. We have a controller using an STM32F429 with a LAN8742A ethernet phy. That part of the design is roughly based on the STM32F429 discovery board. Long story short - what is the correct process/procedure for reinitializing everything related to ethernet and LWIP? We are experience ethernet lockups associated with electrical noise. Resetting the STM32 without resett
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.