Join conversations with your peers and ST experts. Explore the full potential of STM32 microcontrollers for your embedded design.
Most recent activity
Hello,I am trying to implement a USB HID keyboard on an STM32F042 without HAL or LL, just simple register defs. I took an example code generated in CubeIDE with HAL and a few other examples. I extended the example with HAL to also implement the LEDs which all works fine. I understand how it basically works. I define the descriptors and configure the Endpoints etc. Then I need to transfer the descriptors when the host requires them. But what I can not figure out is how exactly the descriptors are actually transferred. The HAL is so overloaded that it seems impossible to find the exact lines of code where the descriptors are transferred to the host and how that is done exactly. Also where do I put the report descriptor to send some key presses? Can anyone give me some info on how that is done?
I found https://community.st.com/t5/stm32-mcus-products/stm32g491kxu6-don-t-have-exposed-die-pad/m-p/625099#M231656 on differences between STM32G491KCU3 and KCU6. Is junction temperature range the only difference between these parts?
Hello,I am working with the STM32F303E-EVAL control board and the STEVAL-IPMNM2S power board, using IAR Embedded Workbench 9.40.I have struggled to get the motor running. I initially tried both MCSDK versions 9.3.2 and 9.4.0 separately, but in most cases, the motor either does not rotate or runs with excessive noise — overall, it fails to operate with error.However, on one occasion, I accidentally recreated a project using MCSDK 9.3.2 and then rebuilt it using 9.4.0. Surprisingly, that build worked — the motor rotated smoothly, and I was able to Motor Pilot control speed and torque successfully.Since then, I have tried many times (over 100 attempts) to reproduce the same working setup using both versions, separately and in combination, but without success. The motor fails to start or runs poorly.Could someone please help me understand what might have gone right in that one successful attempt and how I can reliably replicate it?Thank you in advance for your support.
Removed the ST-Link plastic jumpers and all four pins are free now - as shown on the blue rectangle. As well as, the yellow rectangle shows the 6 pins of CN4 on one column.It seems that pins 1 and 3 are 3.3 V and GND respectively based on the use manual (https://www.st.com/resource/en/user_manual/um1724-stm32-nucleo64-boards-mb1136-stmicroelectronics.pdf) but when I check those two pins using a multimeter I get no voltage! Any idea where is the issue?
Hi,I'm buiding a custom board which involve STM32H753XIH6 and IS42S32800J-6TLI, I noticed that STM32H7B3-EVAL schematic has the following:The SDRAM (IS42S32800J-6BL) does not use A12 and A13 — only A0–A11 are connected.The Bank Address pins (BA0, BA1) of the SDRAM are instead connected to FMC_A14 and FMC_A15.This raises my question:Why does the STM32 FMC map BA0/BA1 to FMC_A14/A15 specifically, instead of FMC_A12/A13?Can you confirm if the schematic is correct for this SDRAM interface given the below configuration. Thanks,Moahmmed
Hi,I'm working on the evalboard of the STM32H563. With a plain project I'm able to activate the memory mapped mode of a plugged nor-flash.If I change the project to have Trustzone activated and divided the application in secure/non-secure part, I'm not able to activate the memory mapped mode. The communication to the flash is basically working because I can read the ID. The hal functions don't give any error, so I expect that everything should work.Has anybody an idea what the problem can be? Best regards,Stefan
Hi everyone, I'm working on integrating the SBSFU (Secure Boot and Secure Firmware Update) into an existing project for a custom board using an STM32U585 microcontroller.At this stage of the project, I am trying to include the SBSFU_Boot (https://github.com/STMicroelectronics/STM32CubeU5/tree/main/Projects/B-U585I-IOT02A/Applications/SBSFU) to my firmware, in order to be able to create a more secure and upgradable environment. My goal is to successfully build and run the SBSFU_Boot bootloader from the ST example using my CMake toolchain, so it can eventually load my existing Secure/Non-Secure application.I have successfully configured CMake to compile the SBSFU_Boot project without any errors. However, after flashing the compiled binary to the microcontroller, the device fails to boot. The bootloader doesn't seem to execute at all.This issue appears to be related to migrating the build configuration from the provided CubeIDE project to my CMake environment, as the original ex
Greetings, I'm making a project, using a B-U585I-IOT02A board in which I made a Java program that can flash a firmware (using the USB DFU protocol) and also set Readout Protection to Level 1 through the Option Bytes. The program can flash the firmware and set RDP level 1 successfully, but I wanted to be able to flash a firmware, using the USB DFU while having the RDP set to level 1 and I can't. Every time I set the RDP level 1, I can't upgrade using USB DFU, I need to use the STLINK, go to the STM32CubeProgrammer and set the Option Bytes back to level 0, which will mass erase the flash. I know I can't do all this with the STM32CubeProgrammer, but I want to be able to do it with my program (for personal reasons).So the question is, how can I upgrade the firmware using USB DFU, with RDP set to level 1? Thank you!
Hi all, Can you please give me some pointers how to update the text and needle positions on the custom containers?I have a gui that has multiple images, exactly the same text and gauge positions. I created the custom container that has different text fields and one gauge.With single gauge and multiple text fields on the same view, I am successfully update these peripherals, but when I create multiple copies of the same custom containers I lost, and I don't know how to access the text fields and gauge's needle.For example:I created customContainer = 2 text fields and 1 gaugeIn then mainView I have customContainer1, customContainer2, customContainer3 and I don't know how to access those text fields and the the gauge.thank you for your time.
Hello,I have a DCMIPP example application in FSBL that runs fine on an STM32N6570 Disco when loading it with the Disco board's built-in ST-Link. It has a DCMIPP_HandleType Def structure with hdcmipp.Instance that needs to access secure peripheral memory at 0x58002000. It works fine on the Disco kit.I have very similar code on a custom board, using a J-Link debugger. Most of it runs, it communicates okay with the IMX355 image sensor over I2C. The ISP starts up okay. But it fails when the HAL_DCMIPP_CSI_Start() does a check of the hdcmipp.Instance and finds that all of the values are 0 instead of what's in the DCMIPP registers. It can't seem to read or write the DCMIPP registers.I run the same MX_DCMIPP_Init() function on both the dev kit and custom board before calling HAL_DCMIPP_CSI_Start(). The dev kit loads all the register values, but the custom board is stuck at all 0s.I'm only guessing that my problem is due to accessing the secure peripheral memory, but maybe it's something else
Hello, I am working on a project where I send accelerometer data with the NUCLEO WB55RG in BLE to my phone. I now want to add another NUCLEO WB55RG that acts as a repeater, so it both observes and broadcasts. Is it possible to do this on this type of board, and if so, how?
I'm using the nucleo-H753ZI board to test mcuboot.The setup works and I can successfully run the bootloader and the application in slot0_partition using zephyr sysbuild.However when trying to upload an image I get the following flash write error:[00:00:29.758,000] <inf> mcuboot_util: Image index: 0, Swap type: none[00:00:29.758,000] <inf> mcuboot_util: Image index: 0, Swap type: none[00:00:29.922,000] <err> flash_stm32h7: Status Bank2: 0x00040000[00:00:29.922,000] <err> STREAM_FLASH: flash_write error -5 offset=0x00100000[00:00:29.922,000] <err> mcumgr_img_grp: Irrecoverable error: flash write failed: 12Here is my flash0 dts: &flash0 { partitions { compatible = "fixed-partitions"; #address-cells = <1>; #size-cells = <1>; boot_partition: partition@0 { label = "mcuboot"; reg = <0x00000000 DT_SIZE_K(128)>; }; slot0_partition: partition@20000 { label = "image-0"; reg = <0x00020000 DT_SIZE_K(896)>; }; slot1_partition: partition@100
Hello, I have no problem storing images in the MCU's internal flash, but when storing images to external flash, it enters HardFault_Handler(). This issue only occurs when calling dynamicGraph Area image, while other images can be read normally. Why is this happening?thanks!
I would need to know how much power does an STM32G0 consume when kept in reset by pulling down the RST pin.Is it specified somewhere?I'm afraid it might be more than what the part uses running a well power optimized software, right?
I don't use the internal Step Down regulator. How should the pins be tied?Should VDDSMPS be tied to VDD and VSSSMPS to GND with VLXSMPS and VFBSMPS left open?OR - should they ALL be left open?Documentation only speaks as if they are to be used - no comments on what to do if not used.
Hi,where do I find the full HAL API documentation? Is there a wiki? And also is there a way to pull it up in CubeIDE (I'm not referring to the autocomplete)? Also is there a repository with all examples organised by topic, for example PWM, I2C etc.? Thank you
Hi ST Experts, Iam using STM32H745XIH6 microcontroller, I am unable to debug the dual - core in my application(getting an error - "failed in final launch sequence") when the image that I am using in touchgfx is placed in sdram memory using fmc(0xC0000000).And the dual core is running fine, when the same image is placed in the internal flash memory.I have configured the MPU, then I - Catche and also D - Catche. I am unable to identify the problem with the dual - core, when the image is placed in sdram memory.Thanks in advance...Shivani E
Hello all, i am looking for a solution for Parallel LCD with framebuffer in external sdram (using fmc) and capacitive touch with GT 911 on I2C is Touch GFX ready for that configuration ? i am kind of lost reading LVGL docs and touch GFX docs thank for help to start choosing
Hello everyone,We are planning to purchase a batch of STM32 microcontrollers via LCSC and, for our internal purposes, we would like to obtain a Test Report from a European laboratory confirming either:compliance of the chips with the manufacturer’s specifications (datasheet), and/orauthenticity of the chips (e.g. using X-Ray or similar methods).We have already contacted around 20 laboratories across Europe, but unfortunately most of them declined, explaining that such requests are outside their scope (they typically focus on EMC/CE testing of finished devices).The models in question are:STM32F103C8T6STM32F407VGT6Could anyone recommend a company or lab in Europe that is definitely capable of helping with this kind of testing?
Hi,I'm using a SMT32H562ZGT6 uC with RTC pheripheral enabled and clock source from LSE. But HAL_RTC_Init() function returns HAL_TIMEOUT. Investigating I found the method RTC_EnterInitMode returns HAL_TIMEOUT.Clock configuration is performed before calling the RTC initiazlization using The SystemClock_Config generated by cubeMX:void BSP::SystemClock_Config(void) { RCC_OscInitTypeDef RCC_OscInitStruct = {0}; RCC_ClkInitTypeDef RCC_ClkInitStruct = {0}; /** Configure the main internal regulator output voltage */ __HAL_PWR_VOLTAGESCALING_CONFIG(PWR_REGULATOR_VOLTAGE_SCALE0); while (!__HAL_PWR_GET_FLAG(PWR_FLAG_VOSRDY)) { } /** Configure LSE Drive Capability * Warning : Only applied when the LSE is disabled. */ HAL_PWR_EnableBkUpAccess(); __HAL_RCC_LSEDRIVE_CONFIG(RCC_LSEDRIVE_LOW); /** Initializes the RCC Oscillators according to the specified parameters * in the RCC_OscInitTypeDef structure. */ RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_HSI48 | RCC_OSCI
Hi folks,I am working with an STM32H745I-DISCO board and trying to run example projects as well as TouchGFX-generated applications.Board: STM32H745I-DISCOIDE: STM32CubeIDE (latest version)ST-LINK: Firmware updated to latest versionProgrammer: I can flash using STM32CubeProgrammer without issues (LED blink works fine)When I try to flash projects such as the LTDC_Display_1Layer (CM7) example or a TouchGFX application, I consistently encounter the following error in STM32CubeIDE (screenshot/log attached).What I have already tried:Full chip erase in STM32CubeProgrammerChecked Option Bytes (RDP = 0xAA, nDBANK set correctly, BOOT address = 0x08000000)Tried connect under reset in debug configUpdated ST-LINK firmwareVerified that CM7 project is selected (not CM4)Rebuilt/cleaned projectVerified that other small examples can flash correctlyCould you please guide me on what might be causing the flash operation to fail only for these larger / graphics-based projects, while simpler ones like LED bl
We designed a custom made board based on NUCLEO-U575ZI-Q schematic. Specifically, we copied the USB-C connection part including the TCPP01-M12. The design is BUS powered. The devices are only recognized if connected via USB-A to USB-C adapters or if the CC1/CC2 pins are shortly shorted to GND while plugged in an USB-C connector, i.e. forcing an re enumeration. In the Nucleo schematic capactors (C62 & C 63)are placed at CC1/CC2 between MCU and the TCPP01-M12: The TCPP01-M12 datasheets places them on the CC1c/CC2c pin, i.e. between USB connector and the TCPP01-M12:Furthermore it specifies:After rewiring the caps the boards are recognized more reliable but still some fail. So questions are:-is the TCPP01-M12 functionallity influenced by the placement of the capacitors at CCxc vs CCx?-what are potential reasons to fail negotiations while plugging in (i.e. only voltages at CCxc pins and VBUS is low - disconnected by host) but succeeding if CCxc is shorted shortly?&n
Hello, I'm using two H533 Nucleo Boards and I'm trying to establish an I3C communication between them. There are no specific examples for this protocol using two of these boards, instead there are only examples for a sensor which I don't have. So, I tried to copy the example presented in Introduction to I3C for STM32 MCUs Application Note. This did not work. Also, I tried to adapt the example for the H503 called I3C_Target_ENTDAA_IT, copying the main.c. Also didn't work. The Target is not ack when sending 7E.On the controller side, I'm just trying to send this:if (HAL_I3C_Ctrl_DynAddrAssign_IT(&hi3c1, I3C_ONLY_ENTDAA) != HAL_OK){Error_Handler();}On the target side, this is my code:/* USER CODE BEGIN Header */ /** ****************************************************************************** * @file I3C/I3C_Target_ENTDAA_IT/Src/main.c * @author MCD Application Team * @brief This sample code shows how to use STM32H5xx I3C HAL API to * manage a Dynamic Address Assignment pro
Hi, i encountered the problem on my stm32 G474RE board, that when i use the adc in dma mode i can not use a dac. The dac simply does not work. As long as i dont start the adc in dma mode, my dac is generating the right waveform, but when i start the adc the dac_setValue function is stuck and wont update? Has anybody encountered that problem? Am i doing something wrong?
Hello,I’m currently working with I3C communication using STM32H7S3L8 and encountered a case where the controller (master) sends a read request, but the target either does not respond or sends no data. This section explains: How to distinguish a NACK caused by an invalid address(target absent) from a situation where the target is present but hasn't provided data. How to ensure the controller receives 0x00 when the target has nothing to send.thanks in advance for your contributions!
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.