Join conversations with your peers and ST experts. Explore the full potential of STM32 microcontrollers for your embedded design.
Most recent activity
Our product requires FIPS certification, and the chip is stm32u595. I found that the stm32 cortex-m33 core already has a library certified by the CAVP algorithm, but the version of the STM32CubeExpansion_Crypto-V4.2.0 library does not match the certified version. Where can I download the certified version 4.0.0 build1 ?Because the client and FIPS certification require code review, can you provide the source code? Cryptographic Algorithm Validation Program | CSRC Data brief - X-CUBE-CRYPTOLIB - STM32 cryptographic library software expansion for STM32Cube
I am trying to drive a lc resonator from a h bridge. Frequency of the resonator changes when inductor is loaded. TIM15 creates the complimentary PWM for the H bridge. I need TIM2 to read the new frequency of the resonator so i can adjust the PWM frequency of TIM15. TIM2 will be reading a square wave.I tried this guide(and every other one I could find). I tried DMA. I tried interrupts. I even put a breakpoint inside the HAL_TIM_IC_CaptureCallback. It didn't even get triggered.https://community.st.com/t5/stm32-mcus/how-to-use-the-input-capture-feature/ta-p/704161At this point i am not sure if my code is wrong or if there is an actual problem with the board. Would it be possible for someone to send me a code for TIM2 interrupt that is confirmed working or test my code on a stm32 that is confirmed good?I am questioning my sanity. The board programs and debugs just fine. cubeide or cubeprogrammer gives no error codes.here is all the edits I have done to my main.c file/* USER
SPI communication using DMA on the STM32H743.We have created a program for SPI communication using DMA, The first send/receive with HAL_SPI_TransmitReceive_DMA is successful.However, when the exact same process is executed afterwards, all received values are 0.The second send/receive with HAL_SPI_TransmitReceive_DMA is not successful.Does anyone know why this is happening?
Hi! Apologies up front that I realize this is a relatively entry-level question - I am trying to build some experience selecting TVS diodes. My design uses a TagConnect footprint for SWD to an stm32u0. I intend to run the MCU at 1.8V, though I'm unsure how much that matters. I found this very excellent Application Note from ST, and in section 3.6 there are even some parts provided for this exact use. When I look at the datasheet for the ESDALC6V1W, however, it seems like it's showing a working voltage of 3V, with a breakdown voltage of 7.2V. I'm confused by this - it seems like a typical working voltage for a 3.3V MCU would want to be >3.3V. If I understand correctly, a working voltage of 3V in such a system would distort the SWD data signals a bit (though, as I understand it, this would work fine if we're operating the MCU at 1.8V).More confusing to me is that the breakdown voltage of 7.2V seems much higher than the Absolute Maximums listed for most GPIOs (particular
Hello,I built two PCBs, one with the STM32WL33KCV6TR (QFN32 version) and one with the STM32WL33CCV6TR (QFN48) version. Both schematics are identical (48MHz + 32768Hz crystal connected, SMPS used, decoupling capacitors on power pads, otherwise nothing is connected to the chips). On both versions I flashed the PWR_DEEPSTOP_RTC example. On the *CC* the original version from the example library, on the *KC* I used cubeMX to change the .isc file to the *KC* version. Afterwards I used a diff tool to make sure both project folders are identical (apart from the KC/CC difference).My expectation would be that both PCBs draw the same amount of current.However during "active" time in the software example the CC current draw is 4.3mA vs 3.0mA of the KC version. During deepstop the CC version draws 1.3mA while the KC version draws the expected 1.2µA.These measurements have been done at 3.3V.Here are more measurements. activedeepstopSTM32WL33KCV6TR @ 3.3V4.3mA1.3mASTM32WL33CCV6TR @ 3.
I want to write data to an external flash (w25q128 with SPI) by sending a hex file from a PC to the STM32 over UART using tools such as Realterm or a python scriptI have seen examples using the external loader with STM32CubeProgrammer, but I want to avoid doing it this way and just use UART. The reason being is that for production I want the user to be able to simply flash new data without the need for ST programming hardware and software tools. Are the any examples or can anyone help me achieve this ?I am using the NUCLEO-L433RC-P board with the w25qxx driver....https://stm32world.com/wiki/STM32_W25Qxx
Hi team,We are working on the custom bootloader on stm32u073RC. not able to jump on the specific location.#define APPLICATION_PARTITION_1 0x0801D000 void jump_to_application_partition_1(void) { /* Disable Interrupts */ __disable_irq(); /* Get the stack pointer and reset vector from the backup application section */ uint32_t app_stack_pointer_1 = *(volatile uint32_t *) APPLICATION_PARTITION_1; uint32_t app_reset_vector_1 = *(volatile uint32_t *) (APPLICATION_PARTITION_1 + 4); /* Mapping of the backup application reset vector */ pfunction app_entry_1 = (pfunction) app_reset_vector_1; /* Setting of the vector table to backup application */ SCB->VTOR = APPLICATION_PARTITION_1; /* Setting MSP - (Main Stack Pointer) */ __set_MSP(app_stack_pointer_1); /* Enable Interrupts */ __enable_irq(); /* Jump to backup application */ app_entry_1(); } Thanks,Shubham
Hello,I am using an STM32U585 (evaluation board B-U585I-IOT02A), and I would like to enable debugging via Debug Authentication while the device is in RDP Level 1 and with TrustZone (TZEN) activated.I have looked for documentation or examples but have not found any resources specifically covering this configuration.Do you have any references or guides that explain the necessary steps (e.g., STM32_Programmer_CLI commands) to set up Debug Authentication in this context?Thank you in advance for your help.Best regards,Paul Goulpié
How can it be, that the CMOX library implements `append` functions for hashes (like cmox_hash_append) but the equivalent for verification or signing of ECC algorithms does not exist?How should we check the signature of a 10 MB update package on a device which just has 512 kB RAM?We are using EDDSA, which already includes SHA-512 hashing. One workaround would be to sign the hash of the binary file, but that goes against the idea of EDDSA.
I am trying to add the NUCLEO-N657X0-Q (MB194-N657X0Q-C01) to the IMBootloader project, which currently uses the Legacy Classic USB device middleware. I ran into a problem where, after calling the HAL_PCD_Start() function, I receive an unexpected interrupt. If I comment out the line USBx_DEVICE->DCTL &= ~USB_OTG_DCTL_SDIS; the issue no longer occurs.Exact position of line in the code:https://github.com/IMProject/IMBootloader/blob/add_nucleo-stm32n657x-q/Drivers/STM32N6xx_HAL_Driver/Src/stm32n6xx_ll_usb.c#L1152The full code is available in this branch:https://github.com/IMProject/IMBootloader/tree/add_nucleo-stm32n657x-q It can be built with a simple command: make nucleo_n657x0_q_ram Also attaching a video showing how the issue occurs. Any pointers to help save time would be appreciated. Thanks in advance!
Hello,I have a H7 design with multiple UART/USART used to communicate via RS485 drivers (XR3072).I have programmed kind of loopback test by connecting the A/B signals of two RS485 busses.For this I use 2 DMA channels for each UART, one for RX and one for TX.Test runs fine, but if I connect a probe to RX signal, I get an UART IRQ with frame error flag set.I found out that the RX output of the RS485 driver is tri-state during transmit, so this the source of the frame error. It can be solved using external or internal pull-up resistors. This is not the problem, just FYI. What puzzles me:First, I have no clue why this IRQ is fired at all. In my understanding, in order to fire an UART IRQ, the appropriate enable bits must be configured in CR1-3. In this case, only in CR1 the RE, TE and UE are set.Here is the content of CR1 and IRQ registers when the UART IRQ handler is fired:Second, to my surprise, the HAL IRQ handler simply does nothing, no error is thrown or error callback is run. Se
Hi, I am working on NUCLEO-H533RE board. I am checking all the configurations before start of my work. As attached below, The datasheets says that PKA is supported when i opened .ioc file, It is visible as greyout. I am not able to activate it. Even i configured the clock configurations for the board. I am not able to find documentation regarding H533RE. mostly it was written about H563 or H573 series. Could you please also help me out regarding the documents.
Hello,I followed https://community.st.com/t5/stm32-mcus/how-to-create-a-project-for-stm32h7-with-ethernet-and-lwip-stack/ta-p/49308 tutorial from the scratch to the end, including the Hello UDP part, and adding the "ETH CODE" code.However, I can't ping my board. After some debug, I found that I am locked in HAL_MspInit. I tried this on 2 eval boards, with same results. I do not have further ideas to try.Please find attached my projects.Also, I wanted to know if FreeRTOS is mandatory for a project using Ethernet ? If somebody have a "plug and play" project for STM32H757, I would be happy to try it out.Thank you very much,Matteo
Hi STTwo-32, I have 2 more questions: 1. What jumper to remove - so the NUCLEO board will stop advertising ? 2. What to do - to change power on STM32WB5MMG module from current 2.4-2.6V to 3.3V ? Thanks
I’m working with an STM32-based system where the RTC is running on the internal LSI. My goal is to maintain reasonable time accuracy (within a few seconds) while periodically receiving the correct world time over an external communication interface.To do this, I preset the expected LSI frequency and continuously calibrate it based on time updates I receive. This logic seems to be working well. However, I'm encountering an issue where the RTC alarm interrupt triggers unexpectedly after modifying the `PRER` (prescaler) register — even though the alarm is configured to trigger only once per minute.Below is the code I'm using to adjust the `PRER` value (executed from within the RTC alarm IRQ): hrtc.State = HAL_RTC_STATE_BUSY; __HAL_RTC_WRITEPROTECTION_DISABLE(&hrtc); status = RTC_EnterInitMode(&hrtc); if (status == HAL_OK) { hrtc.Instance->PRER = synchPrediv; hrtc.Instance->PRER |= (asynchPrediv << RTC_PRER_PREDIV_A_Pos); print("[RTC] - DR:%08X, TR:%08X\n", (hrt
Why there is no NUCLEO-WBA52CG projects in STM32CubeWBA?What caution should be taken when using STM32WBA52 in STM32CubeWBA?
[VERSION]: MCWB v6.3.2[TOOL]: STM32CubeMX v6.13.0, STM32CubeIDE v1.11.5[BOARD]: STEVAL-PTOOL1V1[PROJECT]: STEVAL-PTOOL1V1_6S_SLWhen the external power on/off input is used to start and stop the motor, if a fault is encountered when running, the motor stops and the board must be powered cycled or hard-reset to clear the faults and resume normal operation.I would like to make it so that when the external on/off input is set to off, that the firmware performs a software reset or clears/reinitializes the status so the next time the external input is set to on, that it tries to start running the motor again.What would be the best way to do this?Thanks,Angelo
Kindly confirm whether STM32H723VGT6 supports Zephyr using the NUCLEO-H723ZG evaluation board.
Having checked the ST Website for LoRaWAN kits I settled on the LoRa LF Sensor and Gateway kit (P-NUCLEO-LRWAN3) There is no mention on the website that this pack is obsolete or end of life. I always check that because I have been burned before by ST products being stocked by distributors, but being no longer supported.The first issue I encountered was the instructions telling me to sign up for a Cayenne account, but the Cayenne project was shuttered in 2023. Dead end number one.Then when trying to install the I-CUBE-LRWAN packeage into CubeIDE it gives the following error after selecting the zip package:(And don't get me started on how awful the UI for adding expansion packs is.)Are ST are no longer supporting this pack, since there are no errata or updates on the product page to cover any issues like Cayenne being shuttered? (I know that Cayenne is not essential, but there should at least be an errata with differential instructions to cover it.)I am so fed up spending good money
Hello everyone,I'm facing an issue with jumping from my application to the bootloader on an STM32H747 microcontroller. I'm using a 7-inch Riverdi display and have developed graphical interfaces using TouchGFX. My application, which I've built using only the M7 core (disabling the M4 core) and FreeRTOS for task management and graphics, has its main file structured as man1.c attached.I've also created a bootloader program with the following structure: The bootloader works perfectly when the STM32H747xx_FLASH.ld file contains the following instruction:Assolutamente! Ecco la traduzione del tuo post in inglese, adatta per un forum tecnico come quello di STM:Subject: Trouble Jumping to Bootloader from Application on STM32H747 with Riverdi Display and TouchGFXHello everyone,I'm facing an issue with jumping from my application to the bootloader on an STM32H747 microcontroller. I'm using a 7-inch Riverdi display and have developed graphical interfaces using TouchGFX. My application,
Hello , I have a steval-ctm010v1 , a STLINK V3 MINIE. I want to use Motor Pilot Tool . But J3 on steval-ctm010v1 is DP9 interface (232), and STDC14 on STLINK V3.How can I do the connection between these ports ?
Hi,I’m using the STM32U5G9J-DK1 board and working on implementing a FileX-based filesystem on the onboard eMMC. On the first run, I format the eMMC using fx_media_format(), open the media, create a file (e.g., file1.txt), write data to it, and read it back — all of which works correctly. However, in the second run, I flash new firmware that skips the formatting step and attempts to open and read from file1.txt. In this case, although the media opens successfully and checks for the file’s existence, it returns FX_ALREADY_CREATED, but trying to open the file results in an FX_FILE_CORRUPT error.If I do only the formatting in the first run and perform the file creation and access in the second run, everything works fine.I’m unsure why the file becomes unreadable across firmware flashes unless the file is created again after formatting. Thanks!
Hi,I have created a simple GUI using TouchGFX Designer for the STM32N6570-DK, generated the code, built it, and ran it. Everything works fine.Then I noticed that the TouchGFX_Framebuffer is located in internal SRAM. However, I plan to use that SRAM for the NPU and other purposes. So, I moved the framebuffer to PSRAM, and now the GUI becomes partially corrupted after pressing buttons or sliding.It seems that additional adjustments are needed when using the framebuffer in PSRAM. Could that be the case?Below is a snippet from *.ld: BufferSection (NOLOAD) : { *(TouchGFX_Framebuffer TouchGFX_Framebuffer.*) *(.gnu.linkonce.r.*) . = ALIGN(0x8); } >PSRAM /*FB_RAM*/ UncachedSection (NOLOAD) : { *(Nemagfx_Memory_Pool_Buffer Nemagfx_Memory_Pool_Buffer.*) *(.gnu.linkonce.r.*) . = ALIGN(0x8); *(Nemagfx_Stencil_Buffer Nemagfx_Stencil_Buffer.*) *(.gnu.linkonce.r.*) . = ALIGN(0x8); } >PSRAM /*CMDLIST_RAM*/
Hi, I have generated code for HSO on a workbench as recommended by the release note. I need to view definitions of following functions: But not able to view the definitions of these functions. Could you please help me to open these functions? As I need to port this code into STM32F4 Series code. Thanks, and Regards,Rahul D
I am using this example to read data from an external flash (W25Q128) using SPI on a NUCLEO-L433RC-P board...https://stm32world.com/wiki/STM32_W25QxxThe code is here...https://github.com/lbthomsen/stm32-w25qxxHow do I modify this example to use SPI with DMA ?The end result is to read a WAV file from the external flash and play it using the internal DAC.I have enabled DMA for SPI... But don't know what other modifications I need to make.In w25qxx.c, I tried changing...if (HAL_SPI_Receive(w25qxx->spiHandle, buf, len, HAL_MAX_DELAY) == HAL_OK) {to...if (HAL_SPI_Receive_DMA(w25qxx->spiHandle, buf, len) == HAL_OK) {but when I step through the code it jumps to the HardFault_Handler.I will need to use double DMA buffers, so that the DAC reads from one buffer whilst the external flash writes to the other buffer (for glitchless playback)
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.