Join conversations with your peers and ST experts. Explore the full potential of STM32 microcontrollers for your embedded design.
Most recent activity
Hi, for an old project of mine I need the STM32CubeF4 v1.21.0 + HAL v1.5.7 but I can't find the download links to that version anymore. It seems like they got deleted from GitHub? Can someone supply me with the old version of the STM32CubeF4 including the HAL? Cheers!
Hi Is there an example using a STM32C5 as a USB host controller connecting a USB HID (mouse/keyboard) as input device?
I have a 14-pin connector and a 6-pin fall back connector. I can connect the 6-pin SWD via st-link V2 on a nucleo board but I cannot connect with a V3 MINIE on the 14-pin. Any ideas? I followed the schematic for a 14-pin connector I found on a NUCLEO board, which had a 100 ohm resistor on GND detect. I have bypassed it but the result is still the same. Apart from that and the TX/RX, the wires are the same for the 6-pin connector that works?Here's my output:CDLiveWatchSetup Info : auto-selecting first available session transport "hla_swd". To override use 'transport select <transport>'. Info : The selected transport took over low-level target control. The results might differ compared to plain JTAG/SWD Warn : The selected adapter does not support debugging this device in secure mode adapter speed: 24 kHz none separate Info : Listening on port 50004 for tcl connections Info : Listening on port 50005 for telnet connections Info : clock speed 24 kHz Info : STLINK V3J14M5 (API v3) V
Bonjour,Je me permets de vous contacter afin de solliciter votre aide concernant le débogage d’une carte basée sur un microcontrôleur STM32L471 ( comme présenté dans les images suivantes ).Je souhaiterais pouvoir programmer et récupérer les logs de la carte, et je cherche donc le matériel nécessaire pour cela (interface de debug, câble, connecteur et éventuellement sonde de programmation type ST-LINK).Pourriez-vous s’il vous plaît me partager des liens ou références des produits compatibles recommandés pour ce type de carte ?Je vous remercie par avance pour votre aide.Cordialement,Google translation:Hello, I'm contacting you to request your help with debugging a board based on an STM32L471 microcontroller (as shown in the following images). I would like to be able to program and retrieve the board's logs, and I'm therefore looking for the necessary equipment (debug interface, cable, connector, and possibly an ST-LINK type programming probe). Could you please share any links or product
Hello. I am trying to encrypt/decrypt data in secure area of stm32h563 (Trustzone application), using code from one of the examples (using cmox_cipher_encrypt function). Running the function in non-secure area, everything works fine. Trying to run that in secure area immediatly hardfaults. It seems like problem might be that the library tries to access something in the non secure area. Initial thought was CRC engine, but in cubemx i specificly initialized that to secure area because it will be used in there. Is there some known workaround or updated libraries to use cmox_cipher_encrypt in secure area?
Hello everyone.I'm novice in cryptografic,I'm developing a project with STM32H7.I have a file on uSD and I can read it using FatFs.I have to crypto this file using CRYP_AES_GCM.I setup IOC in this wayThe IOC build this file for meMy file has 98MByte of size but I cannot fit the whole size in a Heap Buffer because free space in Heap is 60KByte but I can prefer to reserve at least 32KByte to have some space available for other c++ objects.So I develop a code that reads 32KByte-chunks from the source file and crypto this chunk before to write in the crypted file.But I have a dubt: to crypt this chunk of file I call HAL_CRYP_Encrypt(&hcryp, (uint32_t*)ptr, (byteRead+3)/4, (uint32_t*)ptr, 1000UL);But if I inspect this API I notice that it resets some sort o f counter So I think that I'm wrong because probably I have to not reset this counter and, instead, put the next chunk to the crypt. Is my doubt a certainty ? And there is a way to check, once the file i
I found I can not config ToucgGFX to APPmode.It's seems I have to config EXTEM Loader first.I tried many management,but still fail to use TouchGFX in APP.I wonder if there's other way to use GFX.By the way,I have to write the link files to fit in my HyperRam and Flash.Is there something to do with the"EXTEM Loader"and "EXTEM Manager"?Thanks a lot!
i am getting attached error,kindly suggest further
I started getting this message when I try to debug my code. However, there are currently no breakpoints in my code at all. I have gotten this in the past and I deleted and redownloaded the IDE which I really do not want to do again. I am running it on Mac. Any suggestions are helpful.// Simple ADC Reader // ADC1_1 on PA1 // Port A on AHB1 // ADC on APB2 #include "stm32f4xx.h" #include "printUSART.h" int val = 0; int main(void){ USART2_Init(); RCC->AHB1ENR |= RCC_AHB1ENR_GPIOAEN; GPIOA->MODER = GPIO_MODER_MODE0_0 | GPIO_MODER_MODE0_1; RCC->APB2ENR |= RCC_APB2ENR_ADC1EN; ADC1->CR2 = 0; ADC1->SQR3 |= ADC_SQR3_SQ1_0; ADC1->CR2 |= ADC_CR2_ADON; while(1){ ADC1->CR2 |= ADC_CR2_SWSTART; while(!(ADC1->SR & ADC_SR_EOC)){} val = ADC1->DR; printf("\n%d", val); } }
[PN]: STSPIN32G4 (custom board), AMT103 encoder[VERSION]: MCSDK v6.4.1[TOOL]: MC WB[DETAILS]:I need to implement torque control for my custom board and BLDC motor using a quadrature encoder as the primary feedback sensor.First, I successfully profiled my motor in sensorless mode using the SDK and incorporated those values into my Workbench project. When using this sensorless configuration outside of the Profiler, I can reliably drive my motor in both torque and speed control modes (using MC_FOC_SDK.qml). At this point I have also configured the encoder as an auxillary sensor, and can see its measured RPM in Motor Pilot match the sensorless RPM feedback. This encoder has an index pin, but I am not using it in my configuration since I do not want to run in Position Control mode.Now, I have reconfigured my project to use the encoder as the primary sensor and "sensorless" as the auxillary. The result in torque control mode is that the rotor locks into place and resists manual spinning. Thi
We are developing a safety-related application based on an STM32 microcontroller and aligning our design with IEC 60730 Class B requirements. In our application, we implement fault detection mechanisms for analog and digital signals (e.g., sensor inputs, voltage monitoring, heater control). Due to noise and transient conditions, we are considering adding a software debounce/filtering time before declaring a fault. We would like clarification on the following points: Does IEC 60730 Class B explicitly require or prohibit the use of debounce time for fault detection? Is it acceptable to introduce a software debounce (e.g., 100 MSto a few seconds) to avoid false fault triggering? Are there any recommended guidelines from ST for implementing debounce while still complying with Class B requirements? Does the STM32 IEC 60730 Class B self-test library include any reference implementation or best practices for handling such debounce scenarios?
I am using a Nucleo STM32F411, without any hardware modification.I am working on a project which involves only UART and Debug monitor interrupt, so my code does not write anything to flash nor to option bytes. Yet it seems that the board is bricked after running my firmware. I tried STM32_Programmer_CLI and STM32CubeProgrammer to erase the flash but both fail:is there a way to recover the board ?
What is the proper way with position control to reset the current angle by for example 50 rotations towards a smaller value?If the theta keeps increasing forever, with the float number representation, there will be an error during continuous operations in the same direction. (Smallest increment of a float that is not able to represent 1 as smallest number:mantissa_bits = 23 precision_bits = mantissa_bits + 1 // include implicit leading 1 N_max_exact = 2 ^ precision_bits = 2 ^ 24So if theta reaches 16.777.216 or 2.6 million rotations, there will be a significant error relative to the motor angle. Is that handled in the MCWB position control somehow? What is the intended usage for this problem?Below is the intended code-example with increasing position by 180°*of the output shaft after a gear ratio of 50 each cycle:/* * MotorControl_Interface.c * * Created on: 26.03.2026 */ #include "MotorControl_Interface/Inc/MotorControl_Interface.h" #include "main.h" #include <cmsis_o
Hiya. I'm having some trouble understanding how an STM32 MCU communicates with an image sensor via DCMI if they operate on different voltages.My STM32U5Gxxx operates on 3V3, whereas my selected image sensor has its VDDIO at 2V8 (max input of 3V1). How can I make sure that all the signals I send to the sensor are at 2V8 instead of 3V3? Is there a certain VDDIOx pin to be tied?Are there any reference designs or schematics that are helpful?
Hello,I created a new project by using the STM32 Motor Control Software Development Kit (version 6.4.1). The project code was generated. I need a CAD of the project circuit to connect all the hardware parts. Could you please specify how to generate a CAD of the circuit? Thank you.
Hello everyone!I’ve been struggling for a while with TrustZone projects on the NUCLEO-U575ZI-Q. I’ve tried both the STM32CubeU5 example projects (Templates/TrustZoneEnabled/ and Examples/GPIO/GPIO_IOToggle_TrustZone/) and my own CubeMX-generated project, but I can’t get any of them to run successfully. I'm using STM32CubeIDE.I've tried running the example projects, this is the error I get when building:make: *** No rule to make target '/home/Drivers/STM32U5xx_HAL_Driver/Src/stm32u5xx_hal.c', needed by 'Drivers/STM32U5xx_HAL_Driver/stm32u5xx_hal.o'. Stop.I've set the Option bytes correctly, Secure Area 2 is set to NonSecure and TZEN bit is set to 1.I've also generated a project with CubeMX:Enabled TrustZone, applied Application Regions Settings to Linker files/Peripherals.When the non-secure world calls NonSecure_ResetHandler(), I get a HardFault at address 0x08100d81.Questions:How can I fix the Makefile error in the GitHub examples?Why would calling NonSecure_ResetHandler() from a Cube
Hi,I'm working on a project with your STM32WB5MM module, I managed to enable ZigBee and connect to the network, but I'm having trouble changing the device name, it keeps identifying itself as default value (STM32WB).ZigBee Stack: 1.24.0FW Type : FFD Zigbee stackIn function APP_ZIGBEE_StackLayersInit() I add:struct ZbZclBasicServerDefaults basic_defaults = { .app_version = 1, .stack_version = 2, .hw_version = 1, .mfr_name = "0TestName", .model_name = "0LOCKZ1A", .date_code = "02026-03-31", .power_source = ZCL_BASIC_POWER_DC, .sw_build_id = "0v1.0" }; static void APP_ZIGBEE_StackLayersInit(void) { APP_DBG("APP_ZIGBEE_StackLayersInit"); zigbee_app_info.zb = ZbInit(0U, NULL, NULL); assert(zigbee_app_info.zb != NULL); // uint8_t device_name[] = {"0TestDevice"}; // device_name[0] = 10; // ZbZclBasicWriteDirect(zigbee_app_info.zb, ZB_ENDPOINT_BCAST, ZCL_BASIC_ATTR_MFR_NAME, device_name, device_name[0]); basic_defaults.mfr_name[0] = strlen((char*)basic_defaul
Hi everyone,I’d like to learn more about FOC algorithms and eventually design my own motor driver. For this purpose, I’m planning to use the STEVAL-CTM009V1 to drive a pump or traction motor similar to those used in forklifts.In general, forklifts with around 2-ton lifting capacity are based on a 48V architecture, and I already have access to such a system for testing.My main question is:Can I drive an ACIM (induction motor) with the STEVAL-CTM009V1? I’m not fully sure about its capabilities in this regard. If it is possible, are there any reference projects or examples that I can follow?Also, when using Motor Control Workbench, which control board would you recommend pairing with the STEVAL-CTM009V1?I should also mention that I’m already familiar with FOC concepts and have experience designing forklifts and telehandlers, but this will be my first time designing a motor driver from scratch, so I’d really appreciate any guidance or best practices.Thanks in advance for your help!
1. Requirement description It is expected that the terminal can join the network with the specified panid 2. Problems encountered during the test 2.1 It was found that the given function ZbStartup cannot enable the terminal to join the network with the specified panid. 2.2 Attempt to use a lower-level function, the network layer function ZbNlmeNetDiscReq, to make a network discovery request. This function returned successfully. In the corresponding callback function, use ZbNwkGetIndex to obtain the network list. This function also returned successfully. However, the network list information has never been obtained (the actual space does have a network). If the network information can be obtained at this stage, the panid can be filtered, but currently, the network information cannot be obtained. 2.3 By using the ZbNlmeJoinReq function of the network layer to join the network, it was found that this function was only declared in the header file zigbee.nwk.h. This function was not defined
I'm recently working on benchmarking a various implementations and configurations of cryptographic algorithms such AES-GCM on STM32. Two of these tested function are the following :void test_aes_hardware(void) { uint32_t plaintext[DATA_SIZE/4]; uint32_t ciphertext[DATA_SIZE/4]; uint32_t decrypted[DATA_SIZE/4]; uint8_t key_bytes[32]; uint8_t iv_bytes[16]; uint32_t key[8]; uint32_t iv[4]; uint8_t ikm[4]; uint8_t salt[4]; uint8_t info1[] = "HW_AES_KEY"; uint8_t info2[] = "HW_AES_IV"; uint32_t rnd; /* RNG */ HAL_RNG_GenerateRandomNumber(&hrng, &rnd); memcpy(ikm, &rnd, 4); HAL_RNG_GenerateRandomNumber(&hrng, &rnd); memcpy(salt, &rnd, 4); /* KDF */ xkdfBlake(key_bytes, 32, ikm, 4, salt, 4, info1, sizeof(info1)); xkdfBlake(iv_bytes, 16, ikm, 4, salt, 4, info2, sizeof(info2)); memcpy(key, key_bytes, 32); memcpy(iv, iv_bytes, 16); for (int i = 0; i < DATA_SIZE / 4; i++) { uint32_t w = (i*4 + 1) |((i*4 + 2) << 8) |((i*4 +
As addicated in DataSheet and CubeMX, there are two FDCAN1_Tx and two FDCAN1_RX in STM32G431CBT6. In my Prj, I used PA12 for Tx and PB8-BOOT0 for Rx, and my chip can only work in FDCAN_MODE_Ext._Loopback, and without any receive func be implemented. After I changed the FDCAN pin from PA12&PB8 to PB9&PB8 and adjusted my wire routing, the problem has be handled. so If the STM32G4 can use FDCAN pin from different port in some case? If not. I think it should be fixed in CubeMX, because CubeMX allows users to select CAN pin from different ports without any warning.
Config:stm32h743iiT6SDRAM 32mb model w9825g6khFLASH 32mb QSPI 1 bank 4 lines w25q256jv2Screen 7 inch 24bit rgb888I am really stuck on stm32 jpeg hardware vs libjpeg working 1 Decoding 1024x600 stored in qspi flash with jpeg harware stuck with the jpeg markers === FINDING JPEG IN QSPI === Found JPEG at offset 0x069000 (address 0x90069000) :triangular_ruler: Found SOF0 at offset 484: 160x94 Dimensions: 160 x 94 Found JPEG at offset 0x089000 (address 0x90089000) :triangular_ruler: Found SOF0 at offset 552: 160x93 Dimensions: 160 x 93the image is really 1024x600 stored has standard in photoshop to avoid progressive stuff.... Offset 7252: SOI (start) - Offset 7418: SOF for 160x94 thumbnail - Offset 11289: EOI for thumbnail - Offset 15044: SOF for 1024x600 main image ← Your real image! - Offset ???: EOI for main image Is there any body witch have faced those problems to hardware jpeg decode can you share your experience .....
Hi, I´m designing an USB host device (with STM32U5). Therefore I´ve ha a look at the schematics of the STM32U575I-EV. Could someone explain what the MOSFETs are for? Best regards, Achim
I am working on a project in which the sensor data that will calculated by stm32 will be sent via using the esp32 as a wifi module to aws , now the problem is i have inserted the stm32 and esp32 inside a pcb with the required circuit connection but i am having difficulty flashing the code to esp32 or connecting to esp32 , i have tried various methods but cant seem to find a solution. thing is the code cannot be flashed directly to esp32 , it has to be sent via stm32 due to circuit connections and no availability of usb connection ?current status right now:- i am using the process of semihosting to flash the code into stm32 and get results on the serial monitor since i dont have a usb connection for stm32 , i am using the st link of nucleo externally , if someone can help me regarding conversion of my stm32l476 to a bridge to flash code on esp32 or to convert esp32 to wifi module ,it would be very helpful ,this is the last step after this only calibration is required to
Hello, I am testing SPI5 TX by GPDMA on an STM32N6 device and I found behavior that seems inconsistent with the reference manual. MCU / Environment MCU: STM32N647X0H Toolchain: STM32CubeIDE 2.1.1 CubeMX / CubeN6 version: STM32Cube_FW_N6_V1.3.0 Issue summaryI configured SPI5 as: Master Simplex TX-only Software NSS SSI set high I configured GPDMA1 Channel0 as: Memory-to-peripheral Source = TX buffer Destination = SPI5->TXDR Transfer length = 8 bytes TX pattern = A5 5A A5 5A A5 5A A5 5A Observed behavior If I write data directly to SPI5->TXDR by CPU, MOSI outputs correctly. If I use GPDMA for SPI5 TX, SCK may appear, but MOSI stays low / no valid TX data is output. I reduced the project to a minimal LL test case and the behavior is reproducible. What I already verified Same SPI5 pin configuration is used in both tests. CPU TX path works with the same SPI configuration. TX buffer content is correct in memory (A5 5A ...). DMA source addres
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.