Join discussions in the Product Forums. Ask questions, learn from your peers, and share insights on ST solutions to accelerate your design journey.
Most recent activity
Heyho, just found that the N6 has gigabit ethernet - which might help me staying away from the monstrous MPUs... :D Is there kinda compatibility list between the STM32 families for the peripherals? ethernet interface, surely different HW concerning GbE vs 100M, but maybe the registers / descriptors work basically the same? CANFD and the SAIs? OCTOSPI / XSPI with memory-mapped HyperRam? the (partly) more simple peripherals like ADC, timers, UART? Merci!
Hi, I'm using STM32F407 TIM1 channel 1 to measure the frequency of a square wave. The result is not accurate. For example, when input frequency is 1000.0Hz, the result is around 1006Hz. Input frequency has been verified by an oscilloscope, with probe attaching directly to STM32 pin. My ioc configuration:1. APB2 peripheral clock frequency is 42MHz, APB2 timer clock frequency is 84MHz. (in the datasheet, TIM1 connects to APB2)2. Pin PE9 is configured as TIM1_CH13. TIM1_CH1 uses Input Capture Direct mode4. Prescaler=1 (so TIM1 frequency=84/(1+1)=42MHz)5. Counter mode is Up, Counter Period is 65535. auto-reload preload is Enable6. A DMA connects to TIM1. DMA Request is TIM1_CH1 to capture TIM1->CCR1's value My code:#include "main.h" #include <assert.h> #include <stdint.h> #include <stdlib.h> TIM_HandleTypeDef htim1; DMA_HandleTypeDef hdma_tim1_ch1; #define ARRAY_LEN(a) (sizeof(a) / sizeof(a[0])) #define TIM_FREQ 42000000 // TIM1 frequency is 42MHz // g_timD
I am looking to use Ceedling for a unit test framework and want to use STM32CubeIDE's Unit Test support for running it in the IDE. I have successfully set up Ceedling and am able to run from command line, but it would be nice to at least understand how to run in the IDE. I have read over a couple different tutorials for setting up unit testing in the IDE, but haven't found guidance on addressing the issue(s) I have; perhaps I am not approaching the problem correctly. I use Ceedling to set up the initial unit test folders and project.yml file in my project folder structure. From searching around the internet, it would seem that I need to set up a Run Configuration specifically for running tests. I got the Eclipse C/C++ Unit Testing Support plugin, created a Unit Test Run Configuration for my project and added details for Ceedling. I am using Google Test runner for the output, and have the project.yml file set up to output gtest like reports. I have set up th
We have a board with an STM32H7S3, using STiROT and OEMuROT to run our own application. The application runs in place from external flash, and uses external RAM for data.The process has proven extremely challenging, but we have been able to get the application to run...up to the point where it needs to initialise a peripheral which uses a PLL-dependent clock.OEMuROT does some clock initialisation, but we need to change some of those settings, including turning on additional PLLs.I've tried adding clock setup code to the app (originally generated by CubeMX), but it fails because you can’t change PLL settings while they’re running. So I added a call to the HAL function to reset the clocks first – but that also doesn’t work because we’re running from the external flash at this point, which relies on a PLL!I then tried moving the clock setup code into the bootloader – in the code which runs at the end of proceedings, or at the start – but they also failed.This code has to run from internal
I've interfaced the VL53L4CD with ESP32-S3, but I'm unable to get accurate ranging values below 70mm.I'm using the ESP32-S3 with Arduino IDE.How can I resolve this issue ?#include <Wire.h> #include "vl53l4cd_class.h" #define SDA_PIN 8 #define SCL_PIN 9 VL53L4CD sensor(&Wire, -1); // -1 = XSHUT not used void setup() { Serial.begin(115200); delay(1000); Wire.begin(SDA_PIN, SCL_PIN); Wire.setClock(400000); Serial.println("VL53L4CD Init..."); if (sensor.begin() != 0) { Serial.println("VL53L4CD not detected"); while (1); } Serial.println("VL53L4CD detected"); sensor.VL53L4CD_SetRangeTiming(50, 0); // 50ms timing sensor.VL53L4CD_StartRanging(); } void loop() { uint8_t dataReady = 0; VL53L4CD_Result_t results; sensor.VL53L4CD_CheckForDataReady(&dataReady); if (dataReady) { sensor.VL53L4CD_GetResult(&results); sensor.VL53L4CD_ClearInterrupt(); Serial.print("Distance: "); Serial.print(results.distance_mm); Serial.println(" mm"); } delay(20);
Title edited to clarify the speed is Mbytes per secondThe following example demonstrates how data can be sent from STM32 to a PC via FT232H/FT2232H through an asynchronous FT245 FIFO interface at a speed of over 7.5MB/s.Motivation:I need to send data from STM32 to a PC with a data rate of over 3MB/s as simply as possible. Ethernet and USB2.0 High Speed directly from STM32 would require a lot of self-education. So I first tried to use synchronous parallel interface of FT232H/2232H (up to 40MB/s) or FT600 (up to 400MB/s) with the help of STM32 PSSI. Unfortunately, this proved unfeasible, so i revived at least the asynchronous parallel interface with a theoretical maximum speed of 8MB/s.At first, I tried to fit FSMC to this task, but I couldn't find a way to take "flow control" into account, so I ended up using "brute force" in the form of a combination of TIM+DMA+GPIO, and it seems to work. Since I came across programmers on the internet who would also like to use a similar approach, I d
Dear ST community, We've been evaluating STM32N6 NPU since early january. We aim to deploy yolov8n / yolov11n inside the NPU.So far we've been able to use modelzoo provided by ST. We weren't able to do the same with yolov8 or yolov11n we trained using ultralytics scripts. Here the procedure we applied : - Download repo modelzoo and modelzoo-services- Verify that stm32ai_main.py associated with deployment_n6_yolo11n_config.yaml does work (it does, we just modify it to target Nucleo board)- Download / train yolov11n model using ultralytics framework use same input dimensions; export to Tflite format- Use ST script to quantize tflite mode (tflite_quant.py) - Import the quantized tflite model and modify the .yaml to use our trained model instead of the ST version.- Let the design flow execute After that, nothing happen on the board. I've opened STM32Cube to see what happens on debug level. When reaching Run_Inference the NPU sort of "stall" (infinite loo
Dear Community,I have a general question. I wanted to use C++ classes in SPC5 Studio to get a cleaner project structure.For this, I changed main.c to main.cpp and included the C headers using extern "C". I also enabled the C++ linker in the Platform Component RLA.The project builds without any issues, but the parsing errors in the editor are extremely annoying. A lot of the code is marked in red even though it compiles fine.Does anyone know what setting I need to adjust to get rid of all these unresolved reference errors in the parser (i presume...)?Kind regards,TKorn
Hello, i just wanna take a snapshot by STM32N6570-DK with IMX335. I am using SnapshotDecimation as my reference. after reviewing the code. i wonder why AXI RAM3/4 and RIF are necessary for this project i saw it in 'HAL_DCMIPP_MspInit' function, but i didnt found anything about AXI RAM in other parts of the code.anyone can explain why does axiram necessary for this project?void HAL_DCMIPP_MspInit(DCMIPP_HandleTypeDef* hdcmipp) { RCC_PeriphCLKInitTypeDef PeriphClkInitStruct = {0}; RAMCFG_HandleTypeDef hramcfg = {0}; RIMC_MasterConfig_t RIMC_master = {0}; if(hdcmipp->Instance==DCMIPP) { /* USER CODE BEGIN DCMIPP_MspInit 0 */ /*** Enable peripheral clock ***/ /* Enable DCMIPP clock */ __HAL_RCC_DCMIPP_CLK_ENABLE(); __HAL_RCC_DCMIPP_FORCE_RESET(); __HAL_RCC_DCMIPP_RELEASE_RESET(); /*** Configure the NVIC for DCMIPP ***/ /* NVIC configuration for DCMIPP transfer complete interrupt */ HAL_NVIC_SetPriority(DCMIPP_IRQn, 0x07, 0); HAL_NVIC_EnableIRQ(DCMIPP_IRQn
i have been trying to find ways of converting my stm32f103 board to stlink for a personal project , i have found out i need to flash the st link firmware onto this chip but i am not really able to understand how to flash this on the board , if someone has any way to do this it would a huge help , i cant really do anything else as i have already printed a pcb for this purpose so if any one has any way to flash the stlink firmware onto the f103 chip it would be huge help ? the board is stm32f103CBT6 (64KB FLASH + 20KB RAM )
My question revolves around TouchGFX and firmware for accessing the SD card.I'm studying the STM32N657-DK and am already getting good results with TouchGFX. Now I need to write a module to read the SD card, count the files, and update a progress bar. I already know how to update it, but I'm still having difficulties reading the SD card. I don't know which library to use.Could you suggest examples and/or which library would be most suitable?Thank you.
Hello everyone,I'm working on STM32H7S7L8 custom board with same architecture as the DK board ( for XSPIM)The mcu and flash is working fine i can uplaud a boot/appli without issue (touch gfx + lwip work so the hardware is fine)But working on the FW 1.3.0 I'm unable to make MCE work.I followed step by step the MCE workshop : https://github.com/ST-TOMAS-Workshop/stm32h7s_workshop/blob/main/3_external_memory_encryption/external_memory_encryption.mdBut when I build the extmem loader and try to uplaud the code I got :Weird thing is that i already made MCE work on the DK board without issues but here it is not possibleLog output file: C:\Users\hdia\AppData\Local\Temp\STM32CubeProgrammer_a46772.log ST-LINK SN : 002600493234510936303532 ST-LINK FW : V3J16M7B5S1 Board : STLINK-V3SET Voltage : 3.31V SWD freq : 8000 KHz Connect mode: Under Reset Reset mode : Hardware reset Device ID : 0x485 Revision ID : Rev Y Device name : STM32H7RSxx Flash size : 64 KBytes (default) Device type : MCU Devic
I want to know what computer vision is and what are its real world applications.
Cannot build a very basic task i.e. blinking in built LED in STM32N657X0-Q Nucleo Board.Please provide me the complete and step step procedure atleast how it happened and why.Lots of issue and confusion occurs in this Board I don't know why but it occurs
The X-CUBE-AZRTOS-H7RS middleware is missing the setting to change the USBX System Stack Size which in turn means that the USBX_MEMORY_STACK_SIZE define in the app_usbx.h file can not be changed from its default of 1024. And because the define is not in a USER CODE section, any manual change will be overridden when re-generating code in CubeMX.Here is an example when using USBX host stack, but it's the same for the device stack.STM32H7RSxx:STM32H7A3ZIT:
Hai Everyone, I am currently working with the STM32H723ZGT6 Nucleo board to implement basic SD card read and write functionality.I have enabled RCC, configured HSE and PLL, and set the system clock to 240 MHz. The SDMMC kernel clock is sourced from PLL1Q at 48 MHz.I tested the SD interface in both 1-bit mode and 4-bit wide bus mode. While the write operation is working correctly, I am unable to read data from the SD card. I would appreciate it if someone could help me resolve this issue. Your support would be very helpful. Thankyou. Best Regards, Aashritha
Hello,I'm having trouble deploying the middleware for the X-NUCLEO-NFC12A1 demo board.I have an x-NUCLEO-NFC12A1 and a NUCLEO-WBA65RI.I connected the two boards together, wired the pins correctly, and tried to use the X-CUBE-NFC12 middleware package. However, when I generate the project, it only includes the ST25R500 driver under Drivers/BSP/Components/.How can I get a proper starting point to develop with the ST25R300? Is there a specific package or example project available for it?My goal is simple: I want to use it to enable and operate a WLC with a PTX30W.Thanks a lot for your help,Yvan
Hello , I am aiming to demonstrate secure storage operation SST using PSA APIs using STM32U585. To verify that TF-M services are operational and Secure/Non-Secure communication works. However I dont find any more stm32cube TFM ready solutions/examples. So i have started from SBSFU examples and cloned TFM Source code from trusted firmware m git and trying to integrate the lib I need . Is this the right way to do so ? is there better starting point? Also it make more sens to put this in secure world however not sure if there is any considerations to think of while doing this . This is what I am trying to do one Secure Storage lifecycle: Write data to Secure Storage using psa_ps_set() Read the data back using psa_ps_get() Verify data integrity using memcmp() Remove the stored object using psa_ps_remove()
Hi all,I've searched for similar post but solutions provided did not work for my case.For compatibility reasons I needed to upgrade from ST-Link to Cube programmer CLI but I've encountered roadblocks while using the -w commands with the Cube CLI.If I write directly with the CubeProgrammer UI, no issue at all, but if i try using CLI below error pops-up: C:\Program Files\STMicroelectronics\STM32Cube\STM32CubeProgrammer\bin>STM32_Programmer_CLI.exe -c port=SWD mode=UR -w8 0x08080000 0x02 -v -hardRst-------------------------------------------------------------------STM32CubeProgrammer v2.21.0-------------------------------------------------------------------ST-LINK SN : 54FF6C066685495431141687ST-LINK FW : V2J46S7Board : --Voltage : 2.71VSWD freq : 4000 KHzConnect mode: Under ResetReset mode : Hardware resetDevice ID : 0x482Revision ID : Rev XDevice name : STM32U575/STM32U585Flash size : 1 MBytesDevice type : MCUDevice CPU : Cortex-M33BL Version : 0x92Debug in Low Power mode enable
Hi everyone,I'm currently porting the App of STM32U5 SBSFU example to CubeMX and "smooth" is not the word I would use to describe the process.Namely, the SBSFU example includes Bootloader, Loader and App projects with memory map being in separate centralized header files included by all these projects. These files (region_defs and flash_layout) are not fully polished (some bugginess and inconsistencies) but they do ease the memory management a lot by using defines and not hardcoding; these defines are then used in projects' linker files in order to define memory regions.In contrast, CubeMX just provides a UI representation of the memory space where users can input all the memory bounds, be it flash or RAM. The trouble is, we can only enter numbers and not constants, so generated code is full of hardcoded address bounds.This does not play well with SBSFU Example - since these address bounds are not only used in LD files, but rather for defining FLASH areas, SAU regions etc etc, it is an
The current state of the CherryUSB is no stm32h5 is listed. Does anyone know if the IP is close enough to dwc2 to be portable? My needs are cdc-ecm host, and I'm looking at options. Device is stm32h563, using FreeRTOS and not going to do threadx 1. Port CherryUSB 2. Use legacy USB Host stack, copy and tweak cdc-acm3. Use tinyusb, tweak cdc-acm4. Use USBX and fight threadx port layer. (The ECM Layer uses threads as far as I can tell, so not trivial)
Hi all, I'm working on my first implementation of Bluetooth in a client custom bord. The board MCU is an STM32L151VeT6 with an BLUENRG-M2 module. I'm not new to STM32 development but new to Bluetooth. Im using STM32CubeMX with STM32IDE. I started first with an X-Nucleo-BNRG2A1 with an Nucleo-L476RG. I got the SensorDemo_BLESensor-App working fine. All the config was done from scratch with MX. Now the problem comes when I try to use the same demo with my custom board. I cannot get the module to initialize correctly. I would like to know why using this demo application on my custom board in not as straight forward as I thought. I cannot find any help on the web.I understand that the demo application was done for the X-Nucleo-BNRG2A1 but apparently changing Platform setting to match the custom board is not enough. Are there any modifications other than in CubeMX that should be done in the generated source and header file when using a custom board?? HCI_init s
Hi,I'm a teacher, not a NASA technician, and for years I've been using STM32CubeMX with Nucleo series boards to teach my classes of 16-17 year-olds the basics of microcontroller programming. After a few years, I'd prepared numerous examples of increasing difficulty, with the MX section being a key component. Along with the exercises, I'd prepared the lessons on slides. If the IDE version changed, I'd have to make a few small adjustments. Now, in the labs, some technicians or colleagues have decided to install version 2.0. The difficulties in integrating the MX environment have increased exponentially. I have two solutions: either ask the technicians to ALSO install version 1.19 (an issue that involves extra work, money, time, and arguments with colleagues), or I'll spend a few weeks adapting the exercises (the first three took me two days) and rewriting the lessons. I would like to point out that in the integrated environment, only one lesson was needed to explain the MX functions, now
Hi, I am trying to establish CAN communication between three different MCUs: NUCLEO-H723ZG, NUCLEO-H755ZIQ, and NUCLEO-G474RE. However, I am unable to successfully communicate between the boards, even though the same baud rate has been configured on all MCUs. I have also connected an external CAN transceiver to each board for proper CAN bus operation. On the NUCLEO-G474RE, I have enabled UART4 to send command data, using the following pins: PC11 – UART4_RX PC10 – UART4_TX Clock Frequency [SYSCLK] & Baud Rate [CAN]: 1. NUCLEO-H723ZG: 550 MHz Baud Rate: 500000 Bit/s 2. NUCLEO-H755ZIQ: 480 MHz Baud Rate: 500000 Bit/s 3. NUCLEO-G474RE: 170 MHz Baud Rate: 500000 Bit/s
Probably this is trivial, but I just cannot find it.How to deploy image using CubeIDE for VS Code without debugging?How to properly configure Build+Deploy only (no debug) task in tasks.json file?How to configure Build+Deploy with debug task?Should I use cube cli for that or there is some easier way?
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.