Join conversations with your peers and ST experts. Explore the full potential of STM32 microcontrollers for your embedded design.
Most recent activity
Hello there,as wolfssl_connect is not getting out any ClientHello, I was wondering if it is due to the change of the memory?I am using an example as starting point. Unfortunately it is coming only with the fsbl.ld, so I made changes, so it access the main RAM:/* ****************************************************************************** ** ** @file : STM32N6XX_AXISRAM2_fsbl.ld ** ** @author : GPM Application Team ** ** @brief : Linker script for STM32N6XX Device from STM32N6 series ** 2048 KBytes RAM ** ** Set heap size, stack size and stack location according ** to application requirements. ** ** Set memory bank area and size if external memory is used ** ** Target : STMicroelectronics STM32 ** ** Distribution: The file is distributed as is, without any warranty ** of any kind. ** ****************************************************************************** ** @attention ** ** Copyright (c) 2024 STMicroelectronics. ** All rights reserved. ** ** This software is licensed under term
I would like to implement delay signal output with STM32 MCU.So I use the original signal input for EXT interrupt.EXT interrupt's callback activates the timerIf a timer callback is called after a time delay of the desired value, it is implemented by setting the GPIO pin to HIGH.However, it can be confirmed that the desired amount of delay is achieved, but the timing of the pin becoming HIGH varies each time, and it takes about 1.5 to 1.8us between EXT and TIMER.I would like to know if the idea can be implemented as STM32 MCU series. also posting my Clock Configuration pic
I’m running into a confusing SPI issue and would appreciate a second set of eyes.I have an ADXL345 accelerometer over SPI working perfectly on an STM32F446RE Nucleo board. I can reliably read the DEVID register (0x00 → 0xE5) and stream XYZ data.I moved the exact same code (verbatim) to an STM32H723ZG board and swapped the SPI handle / GPIO definitions accordingly. The SPI peripheral initializes correctly, but the ADXL345 no longer returns 0xE5. Reads either return 0x00 / 0xFF or garbage depending on settings.Things I’ve already checked / changed:Same ADXL345 breakout (verified working on F446)SPI mode (CPOL/CPHA) set to Mode 3 per datasheetMSB + READ bit set correctlyChip select manually controlledSPI clock slowed way downCorrect SPI instance & pinsNSS handled in softwarePower and ground verified at the sensorWhat’s odd:Works 100% on F446REFails consistently on H723ZG with the same transaction sequenceCan’t even read the DEVID register (0xE5)I’m starting to suspect something H7-spe
I am using I2S (SAI) on the STM32L433 nucleo board and using the internal MSI RC as the clock source.I also have a 32.768kHz LSE external crystral which I believe helps to make the MSI RC clock more accurate when used with PLL.Is the internal MSI RC clock suitable for I2S, or do I need to use an external crystal HSE (12.288MHz) ?I do get occasional glitches/clicking but I am using development boards with jumper wires, even a small amount of movement with these wires cause issues.The clock configuration is below...The STM32 is configured to be the I2S master which receives audio from a bluetooth receiver (BT401) and passes that audio through to a class D amp (MAX98357A) as shown below... When certain events occur, voice prompt audio is injeteced into one channel which is stored in external flash connected to the STM32 SPI .
Hii, I am currently trying to communicate with BQ4050 via SMBUS communication, I am using STMCUBEID as development enviornment and I am using stm32 nucleo board and trying from past two days but i am unable figure out what is the issue so if anyone has the project related to can share me that could be useful to revive and know where i made the mistake and I am also uploading my project related to it you can guide me where i am doing the mistake. I am waiting for your reply.Thank you
Hi,We are using a custom board based on STM32U5G7VJTxQ and implementing USB Mass Storage Class (USBX) to expose an SD card formatted with a file system created using FileX.The SD card when formatted with FAT32 (using FileX API), the USB mass storage device takes a very long time to become available on Windows.Observed behavior:As soon as the USB cable is plugged in, Windows shows a pop-up message:"Please insert a disk into USB drive"After approximately 3-4 minutes, the drive finally appears automatically and becomes accessible.Once the drive is mounted, it works normally.We would like to understand:What could cause this very slow enumeration/access time with FAT32?Are there any known limitations or required configurations in USBX + FileX when using FAT32?Could this be related to SD card access speed, cluster size, cache configuration, or USB MSC parameters?Are we missing any required FileX, USBX, or HAL configurations specific to FAT32?Any guidance or suggestions would be appreciated.T
Hi - I have a new application where I'm trying to slave 1 axis to another axis. The application is an autonomous winch. The master axis drives the winch drum, the slave axis drives a level wind that makes sure the winch line is approaching the drum at a 90 degree angle as the winch line moves back and forth across the winch drum. The slave rotation rate needs to run at a fixed ratio to the master rotation rate, somewhere around 0.1X the master speed. When the line reaches the end of the drum, the slave needs to dwell (slave speed = 0) for a fraction of a rotation and then reverse direction at the same speed ratio. I can sense the line reaching the end of the drum very precisely with an external sensor. Both motors will be BLDC with encoders.I've been using the STEvalServo1 for a different application and have learned a lot. I have some questions about which eval board would be suitable for this application.There are 3 complications.1. In some situations, the master will be running in c
Hello,In a typical example, there is the following linker script: /* Highest address of the user mode stack */ _estack = ORIGIN(RAM) + LENGTH(RAM); /* end of "RAM" Ram type memory */ _Min_Heap_Size = 0x200; /* required amount of heap */ _Min_Stack_Size = 0x400; /* required amount of stack */ : : ._user_heap_stack : { . = ALIGN(8); PROVIDE ( end = . ); PROVIDE ( _end = . ); . = . + _Min_Heap_Size; . = . + _Min_Stack_Size; . = ALIGN(8); } >RAM On paper, the intention is the stack has an allocation of _Min_Stack_Size (0x400) bytes. So far so good.However, the location _Min_Stack_Size seems to have nothing to do with _estack which the is actual address assigned to the MSP by the start-up code.The map file shows that "stack" is located between 0x20000208 and 0x20000608. ._user_heap_stack 0x0000000020000004 0x604 load address 0x0000000008000c5c 0x0000000020000008 . = ALIGN (0x8) *fill* 0x0000000020000004 0x4 [!provide] PROVIDE (end = .) 0x000000002000
Hello STM Community - This post is in reference to the recent STM32U3 workshop webinar. I worked through the rather involved / complicated setup associated with the NFC example. Once the code was generated, 23 errors were returned during compilation. Not sure whether to chase down the 23 errors or request a "known good" project ZIP. I really just wanted to see the NFC function with the STM32U3 series MCU's. Pls advise. Thanks much, Kelly
Hi, I am using an STM32H755XIH6 MCU in a custom design. I want to use only LDO supply configuration for the internal power regulator that provides the VCORE and I don't really intend to use the SMPS configuration. My schematic has some hardware mistakes, just want to understand their impact before doing a rev. 1. According to RM0399, Section 7.4 - Figure 22, when using LDO supply, do we still need the cap (mentioned) on the VCAP pin? Is it recommended or mandatory? Would it cause major issues if its left floating for example? 1.1. Follow up question on this, is if we plan to use LDO only, does the VDDSMPS and VFBSMPS pin state matter? I have mistakenly left VFBSMPS floating and it's impossible to access it without revving the board. 2. If we don't plan to use VBAT (backup battery), it is given in RM0399, Section 7.4 that VBAT must be connected to VDD if battery is not used and needs a 100nF ceramic decoupling cap on VBAT pin (mentioned in RM0399 Section 7.4.4).
Hi all,I'd like to create a project on the STM32WBA55-DK1 that combines a TMAP broadcast audio service (like the one in the BLE_Audio_TMAP_Peripheral example, 2nd menu entry) with a BLE data service where I can manage some parameters. Is there an example available for this purpose? Thanks.
Hi, I designed a board with a STM32U535 that connects to a USB host. I wanted to perform my production programming by doing the first flash over USB, without any test jig to pull-up/down any pin. But I've just realized in AN2606, that, from my understanding:- The U535 devices uses Pattern 12 to enter the bootloader- The pattern 12 doesn't have "main flash empty" condition like most other patterns/families.In this pattern 12, I see lots of conditions that I don't really understand (especially the ones with NSBOOTADD0, reference that is not documented anywhere else in this document).Is there a way to enter the bootloader by using only the USB connection, without actively forcing BOOT0 to 1 ?
Hello,I would like to calculate a CRC-16/IBM-SDLC.I configure the CRC_HandleTypeDef structure as below for HAL_CRC_Init function:h->Init.DefaultPolynomialUse = DEFAULT_POLYNOMIAL_DISABLE;h->Init.DefaultInitValueUse = DEFAULT_INIT_VALUE_DISABLE;h->Init.GeneratingPolynomial = 0x00001021U;h->Init.CRCLength = CRC_POLYLENGTH_16B;h->Init.InitValue = 0x0000FFFFU;h->Init.InputDataInversionMode = CRC_INPUTDATA_INVERSION_BYTE;h->Init.OutputDataInversionMode = CRC_OUTPUTDATA_INVERSION_ENABLE;h->InputDataFormat = CRC_INPUTDATA_FORMAT_BYTES;But it seems that the parameters 'InputDataInversionMode' and 'OutputDataInversionMode' have no effect because I get 0xA60C as result for input 0x11 0x22 0x33 0x44 what it is matching with CRC-16/GENIBUS.Someone could be help me to understand the issue?
I do a project with the newer STM32 G , C series and i am curious what are the benefits of external clock vs using the internal clock, because it will save cost and layout space ?
I'm working on a project which is being ported over to be TrustZone aware, part of this project makes use of an OCTOSPI configured in memory mapped mode for file access. Base settings come from the IOC however the memory mapping is executed in source.In the non-TrustZone project this works without issue, however in the TrustZone aware one it is triggering a SecureFault upon trying to access a memory region. // Sample access that causes the SecureFault uint32_t testAccess = *(uint32_t *)0x90008000; The SAU reports an AUTHVIOL error for the address 0x9000_8000.The SAU is configured to enable NonSecure access to the region 0x9000_0000 through 0x9FFF_FFFF.The MPCWM settings have also been configured to mark the same region as NonSecure and UnprivilegedThe OCTOSPI DMA channel is configured for NonSecure and UnprivilegedThe MPU is disabled, however we have also tested with enabling the MPU in both contexts and mapping the same region to be Non-Secure, Unprivileged with no succ
Hello, as in this post i'm linkingIs there a way to use absolute encoders/resolvers ... - STMicroelectronics Communityi need to use a Biss-c absoulte encoder for a servo drive application using BLDC motors with STSPIN32G4, we are testing using EVSPIN32G4.In the workbench i did not find the configuration for directly feedback through absolute Biss-C encoder. Am i missing something?Other way to do this could be go through SPI peripheral to read absolute Biss-C encoders, but as asked in the post linked, how could i use SPI data to be used from BLDC controller? Thanks to everyone helping. Jackex
Hello ST!This is a bug report of sorts, since the `UTIL_SEQ_Run()` function is still marked that it allows nested calls. (I'm looking into the sequencer as delivered with the WBA package.)In the past two years, somebody had introduced an obvious error into `UTIL_SEQ_Run()` function (when they were adding the support for the `UTIL_SEQ_PostTask()` or the `TaskClearList` feature.)Inside the call to `TaskCb` callback, the static variable `CurrentTaskIdx` would be changed by the nested `UTIL_SEQ_Run()` call. Yet, after return from the callback, the variable (now with incorrect value) is used twice (before being set to `UTIL_SEQ_NOTASKRUNNING`). Two years ago when I was reviewing the code for the first time, and the bug wasn't there. (Indeed, the sequencer included with the early versions of STM32CubeWBA package has correct implementation of UTIL_SEQ_Run() that handles the nested calls correctly.) The old version of sequencer from WBA FW package v1.0.0https://github.com/STMicr
Hardware: EVLSERVO1 official motor evaluation boardIn the "ENC Calc Angle" function, there is a step to perform bitwise AND operation 0x7ffffff on TIM ->CNT, multiply it by the unsigned 32-bit maximum value divided by the polar logarithm. Its left value is a number of type uint32/t, which can cause data overflow. I don't quite understand how it converts pulse values into electrical angles. As shown in the following figure
Hi,There is a documentation about Using TouchGFX on Linux but with TouchGFX 4.26 there is something missing to be able to build the simulator on Ubuntu 24.04.TouchGFX 4.26 embeds Ruby 3.0.0 and Ubuntu 24.04 provides Ruby 3.2.TouchGFX 4.26 generates Ruby scripts with a method 'exists?' which gives an error on Ruby 3.2Using this command:sed -i 's/exists?/exist?/g' $(find Middlewares/ST/touchgfx -type f)I was able to do a sucessful:make -f simulator/gcc/Makefileon Ubuntu 24.04.ST, can you update your scripts to be compatible with Ruby 3.2 for TouchGFX 4.27 ? Thank you
Hello,After creating a new project based on the FreeRTOS_Queues_ThreadFlags_TrustZone example from MX and generating code, there is a compile error:[build] C:/Users/tuoma/AppData/Local/stm32cube/bundles/gnu-tools-for-stm32/13.3.1+st.9/bin/../lib/gcc/arm-none-eabi/13.3.1/../../../../arm-none-eabi/bin/ld.exe: CMakeFiles/FreeRTOS_Queues_ThreadFlags_TrustZone_AppliNonSecure.dir/Src/stm32n6xx_hal_timebase_tim.c.obj: in function `HAL_InitTick': [build] C:/Users/tuoma/STM32Cube/Example/FreeRTOS_Queues_ThreadFlags_TrustZone/AppliNonSecure/Src/stm32n6xx_hal_timebase_tim.c:56:(.text.HAL_InitTick+0x1e): undefined reference to `HAL_RCCEx_GetTIMGFreq' [build] Memory region Used Size Region Size %age Used [build] RAM: 66120 B 511 KB 12.64% [build] collect2.exe: error: ld returned 1 exit status [build] ninja: build stopped: subcommand failed. [build] ninja: build stopped: subcommand failed. [proc] The command: cube-cmake --build C:/Users/tuoma/STM32Cube/Example/FreeRTOS_Queues_ThreadFlags_Trus
don't want to start a touchgfx project from cubemx, instead from cubeide!
Hi.I have Uart pins (Rx/Tx) PA3 and PA2 on STM32F407VET6. Can these pins be changed to I2C (SDA SCL) in the program?Are the pins on STM32 that have been assigned a protocol (SPI/I2C/Uart) constant and cannot be changed or replaced?Thank you.
一. Relevant hardware and software versionsThe hardware I am using is STM32H750, including on-chip RAM and QSPI flash. The screen resolution is 480x272 with a RGB interface screen, and the color format is RGB565. The LCD buffer and TouchGFX buffer are located in AXI RAM. The Cubemx version is 6.15 and the TouchGFX version is 4.26.二. Regarding the issues I encounteredI tried several 480x272 examples available on touchgfx. I found that there was some image loss in this simulation clock example and texture mapping example, but I was able to complete the task using other examples. I would like to ask everyone what's going on here, or if there are any suggestions for solutions.tains some relevant pictures.
Perhaps someone can help me with regard to creating a TBS please.I created a TBS following the instructions here https://support.touchgfx.com/docs/development/scenarios/scenarios-create-atI'm using TouchGFX V 4.26.0 so I altered the instructions given for V.4.25.0 accordingly.Apart from some confusion over the naming of the JSON file which always reverts to 'MyApplication' following the pack command, the TBS that I created worked.I then went on to create a second TBS for a different set up. However this one didn't work, and the first TBS that I had created stopped working. (I must add at this stage that I don't recall changing anything that related to the first TBS when I created the second but I honestly can't be sure).The error I get is 'Download of 'MyAppicationName' failed, this is shown highlighted in the screenshot below at the bottom right. My two TBS's are highlighted with red star. The first TBS I created is named '4-inch-Circular', and the second 3.45 inch starter projec
Hi!I'm currently working on a game for a st32U5 which is 80 MHz and I don't believe has any H.W. acceleration (right?) and I want to minimize the CPU workload.I'm currently manually making an image move, by changing the position at 30Hz. I'm considering using an animation class, but I am worried that If I use the animation class it would then move at my touchGFX FPS (60Hz) and cause more CPU workload.If using an animation is more efficient, then I suppose I won't worry about it.
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.