Join conversations with your peers and ST experts. Explore the full potential of STM32 microcontrollers for your embedded design.
Most recent activity
Dear all,Can you please help to point me to any of the repeat button implementation example?I have successfully implement the single button with plus and minus but the number target is too big and it is taking too many clicks to get to the target number. I would like to use the repeat button feature to achieve the goal that if the repeat button is holding, the setting will go faster and reach the goal.
I am using NUCLEO-G071RB. I am trying to generate an PWM pulse. I am using TIMER 3 Channel 2. - Clock Frequency = 64 MHzWith this setting I should get a HIGH pulse of 90 micro second, instead I get 80 or 40 micro seconds. When the Pre-scaler is increased to 640-1, I received HIGH pulse of 980 and 920 micro second which was also not accurate.
Hi All, I am using ThreadX on an STM32H753. The version of ThreadX being used is 6.1. I use this older version because it is ISO-62304 certified. All is functioning as desired but each time I execute code generation from CubeMX the ThreadX files are overwritten with version 6.4 (not certified). Is there any way I can avoid the update of ThreadX when I regenerate the code from CubeMX? Thank You, Gil
Hello everyone, I have a problem with my STM32L011G4U6, I want to put it in stop mode or in standby mode, but the two modes are not taken into account, only the sleep mode works, I must surely make a mistake but where? here is my function: void Enter_MCU_Sleep(void) { HAL_Delay(1000); HAL_UART_Transmit(&huart2, (uint8_t *)"Dort\r\n", 33, 300); // Configurer et lancer le timer __HAL_TIM_SET_COUNTER(&htim2, 0); HAL_TIM_Base_Start_IT(&htim2); // Timer doit générer une IT de réveil // Désactiver les périphériques pour réduire la consommation //HAL_ADC_DeInit(&hadc); HAL_UART_DeInit(&hlpuart1); HAL_UART_DeInit(&huart2); //__HAL_RCC_ADC1_CLK_DISABLE(); __HAL_RCC_LPUART1_CLK_DISABLE(); HAL_NVIC_DisableIRQ(EXTI4_15_IRQn); HAL_NVIC_DisableIRQ(DMA1_Channel2_3_IRQn); HAL_NVIC_DisableIRQ(DMA1_Channel4_5_IRQn); // Désactiver le RTC et l'oscillateur LSE HAL_RTCEx_DeactivateWakeUpTimer(&hrtc); // Désactiver le wakeup timer RCC
Hi,Trying to set Option Bytes over USB with DFU protocol to STM32G0C1VET6's embedded System Bootloader results in a LIBUSB Pipe Error.Steps to reproduce with details captured further below:Fully erase user flash using STM32CubeProgrammer connected to target via SWD through J-Link. This erases the user flash (512KB at 0x08000000). Option Bytes are at defaults (128-bytes @ 0x1FFF7800). OTP is at default (1K @ 0x1FFF7000).Remove J-Link USB connection.Power-cycle target.Enumerate target's USB (D+ is PA12, D- is PA11) to host. Since flash is empty micro enters embedded bootloader regardless of the state of BOOT0 pin.Host sees USB DFU device.`lsusb -vvv` shows DFU device with 3 interface descriptors:alt 0 is: @Internal Flash /0x08000000/256*02Kgalt 1 is: @Internal Flash /0x08000000/256*02Kgalt 2 is: @Internal Flash /0x08000000/256*02Kg`dfu-util -l` shows DFU device with 3 interface descriptors:alt=0, name="@Internal Flash /0x08000000/256*02Kg", serial="<REDACT
Hi all, this is my first project with the STM32H5 and the new FileX/UsbX, before I was using G0 and F4 chips and knew my way around the FatFS and USBD software packages... A new project made the use of the H5 necessary because it has a USB and SDMMC peripheral. I want to configure the H523RCT6 as a USB mass storage device that gets detected by a PC and provide mass data storage via the SD-card (SDMMC1 peripheral). As soon as the PC puts a file on the SD card I need to detect it and stream it via UART to a different device... My problem is that I can't find a configuration that allows me to simultaneously use the SD-card as mass storage for the PC and detect when the contents were changed on the card. Right now every possibility I considered are suboptimal or do not work. Option 1: periodically init the FileX on the SD-card, check for files and transmit them via UART, then de-init FileX and init USB MSC. The problem here is that I cannot detect when the USB transfer is finished. I
Hello,We have bought the new AI Assistant board from Seeed Studio and we need some help on how we can connect an external debugger.We have two STLink/V2 debuggers, the plain and the ISOL version. However with the cables that they have we cannot connect any of them to the 8-pin debug port of the Seeed board.We assume that the necessary pins are on the STM32 connector, but which are they? Additionally the picture of the STLink/V2 debugger in:https://wiki.seeedstudio.com/ai_assistant_getting_started/#additional-documentation-of-the-applicationdoes not correspond to the debugger we have. Is that a different board from the one we have?https://www.st.com/en/development-tools/st-link-v2.html#overviewThanks in advance
I try to write my Bootloader using stm32l1 MCU and project from link but my mcu not powerful 32MHz max and have slow flash write memoryhttps://github.com/sfyip/STM32F103_MSD_BOOTLOADER/blob/master/Src/Principle: emulate Fat32 file system and directly write new firmware to flash memory with decoding it from STORAGE_Write_FS() function. Everything works, but when file size >100KB, sometimes errors occur. 50% of write tests fail. Bootloader check CRC firmware, Windows sent error, or end copies but not full firmware write. Maybe you have ideas how to solve this problem?
Hello ST Community,I'm working on implementing USB Audio Class 2.0 with both speaker and microphone functionality on STM32WBA65 using USBX middleware.Request for Example: Are there any complete working examples of USBX Audio Class 2.0 with microphone streaming (USB Audio input) for STM32WBA series? The existing examples I've found only demonstrate speaker/playback functionality.Current Issue: I have implemented a USB Audio Class 2.0 device configured for both speaker and microphone, but only the speaker is working.The device descriptor is correctly recognized by Windows 11:Both speaker and microphone appear in Windows audio devicesSpeaker functionality works correctly (playback stream activates when selected)No Windows system crashes or USB enumeration issuesProblem: The microphone stream never initializes. Specifically:USBD_AUDIO_PlaybackStreamChange() is called when Windows selects the speakerUSBD_AUDIO_RecordStreamChange() is never called, even when:Selecting the
Hello there, I use USB CDC interface and I am sure that all my configurations are okey. There is no problem about connecting and data transfer between windows and my system, but there is a problem about descriptors such as "Manufacturer" or name of comport. There are no problems about vendor id or product id. In Linux I don't have any problem about it, so I tried to find a solution about this problem in windows and installed ST's comport driver (STM32 Virtual COM Port Driver). After I updated the driver I saw comport name as "STMicroelectronics Virtual Comport" and manufacturer as "STMicroelectronics" but these are not the configuration macros that I set. As I said there is no problem in Linux, so I tried to solve the problem is on another way. Finally I tried to write an "inf" file as an driver to solve the problem. I wrote the driver for specific purpose but can't use the driver because it wasn't signatured. I know I can use unsigned drivers after hew changes i
Hi,I'm working on Low Power mode of the LoRa on STM32WLE5. My main moto is to get the best possible low power consumption. By experimenting and documentation, Radio consumes more power. So, I wanted to make that into Standby mode and from that I wanted to set the radio into CAD mode by setting the cad Parameters. And also I have reconfigured the Radio every time the radio is being timed out.I'm using SF7 Spreading factor and TX and RX preamble length is 6. So I set the recommended CAD parameters as per the reference manual. Radio.Standby();SUBGRF_SetCadParams(LORA_CAD_02_SYMBOL, 22, 10, LORA_CAD_RX, 0xFA00);Radio.StartCad(); static void OnCadDone(bool channelActivityDetected){if(channelActivityDetected == true){APP_LOG(TS_ON, VLEVEL_L, "Woke up with CAD\n");} else {APP_LOG(TS_ON, VLEVEL_L, "CAD Timeout\n");Radio.SetChannel(868000000);Radio.SetRxConfig(MODEM_LORA, LORA_BANDWIDTH, LORA_SPREADING_FACTOR,LORA_CODINGRATE, 0, LORA_PREAMBLE_LENGTH,LORA_SYMBOL_TIMEOUT, LORA_FIX_
Hello,I recently replaced an existing STM32F767 MCU with a new STM32H753 MCU in my project that involves SPI communication with an FPGA using 16-bit data frames. After the replacement, I encountered issues with SPI read/write timing and overall communication stability.MCU and Clock Configurations- Original MCU (STM32F767) clock settings: SYSCLK 216MHz, HCLK 216MHz, APB1 54MHz, APB2 108MHz.- New MCU (STM32H753) clock settings: SYSCLK 400MHz, APB4 200MHz, APB2 100MHz, APB1 100MHz with SPI clocks muxed at 200MHz.SPI Initialization on STM32H753The STM32H753 SPI is configured mostly similar to STM32F767 except for the NSS pin setup:- STM32F767 used SPI_NSS_SOFT with manual GPIO control.- STM32H753 uses SPI_NSS_HARD_OUTPUT.- The rest of the SPI parameters (master mode, 16-bit data size, clock polarity/phase) remain identical.SPI Initialization Code Example (STM32H753)===================================================================== void initSensorProfileSpi1(void) { spi1SensorProfilehand
Hello,In a project with STM32 using SBSFU in a U575 microcontroller, why can a local variable of type structure within a function cause failures or unexpected behaviour in the secure zone, while a global variable of the same type works correctly?
Dear ST Support Team,I am currently working with the P-NUCLEO-WB55 development board and using STM32CubeWB firmware package. I am trying to run the official example: Projects/P-NUCLEO-WB55.Nucleo/Applications/BLE/BLE_HeartRateFreeRTOS The project builds successfully, and I am flashing the application to CPU1 using STM32CubeIDE. The BLE stack firmware (stm32wb5x_BLE_Stack_full_fw.bin) has been successfully flashed to CPU2 using STM32CubeProgrammer and confirmed as "Firmware Upgrade Success".However, the application consistently gets stuck at the following line in void APP_BLE_Init(void): status = SHCI_C2_BLE_Init(&ble_init_cmd_packet); This prevents the BLE stack from starting, and no further initialization happens. I have already ensured:Low-power mode is disabled (CFG_LPM_SUPPORTED = 0)The transport layer is initialized (shci_init() and TL_Enable() are called)The debugger loses connection shortly after hitting this point, or the code enters Error_Handle
HelloI have been trying to add multiple paths to my ADDITIONAL_INCLUDE_PATHS in simulator/gcc/Makefile, based on this thread: https://community.st.com/t5/stm32-mcus-touchgfx-and-gui/how-to-add-several-include-path-to-touchgfx-simulator/m-p/227349So my ADDITIONAL_INCLUDE_PATHS look like this now:ADDITIONAL_INCLUDE_PATHS := ${platform_path}/src \ ${platform_path}/src/config/PRODUCT \However trying to make this file results in the following terminal output:g++.exe: fatal error: no input files compilation terminated. /usr/bin/sh: line 2: c:TouchGFX4.25.0envMinGWmsys1.0SW_developmentplatformsrc: command not found /usr/bin/sh: line 2: c:TouchGFX4.25.0envMinGWmsys1.0SW_developmentplatformsrcconfigPRODUCT: command not found If I add all paths as their own as such:ADDITIONAL_INCLUDE_PATHS := ${platform_path}/src CONFIG_PATH := ${platform_path}/src/config/PRODUCT/ export ADDITIONAL_SOURCES ADDITIONAL_INCLUDE_PATHS ADDITIONAL_LIBRARY_PATHS ADDITIONAL_LIBRARIES CONFIG_PATH And update t
Dear Sir , Kindly Help In Writing Program for PFC Boost Control. As i have worked on making an power supply with Below Specification Details :Input Voltage : 1 to 20 VAC(Variable)Input Current : 3Amps (Constant)We Require : Output Voltage : 30VDCOutput Current : 3AMPS For This we already created a closed loop system of power factor correction with boost controller .in this we take feedback from output using voltage divider . so i have an request to you kindly any one have solution pls suggest me to do this . regards, Nilmani
Split from this thread. (new question) You might be right. However it was made based on the well described example I have found. https://deepbluembedded.com/stm32-adc-multi-channel-scan-dma-poll-single-conversion/ I was trying tu run DMA but it was not working at all. I mean it was never transfering the data from ADC to the memory. Thats why I moved back to simpler example. Below you have DMA (one shot mode) that didn't work for me. Was trying the Circular mode as well but no change. /* USER CODE BEGIN Header */ /** ****************************************************************************** * @file : main.c * @brief : Main program body ****************************************************************************** * @attention * * Copyright (c) 2025 STMicroelectronics. * All rights reserved. * * This software is licensed under terms that can be found in the LICENSE file * in the root directory of this software component. * If no LICENSE file comes with this software, it i
Dear ST Support Team,I am using STM32WB55 with firmware stm32wb5x_BLE_Thread_dynamic_fw.bin release V1.23 and application based on samples in STM32CubeFW. I flashed two devices and set both devices:OT_LinkMode.mRxOnWhenIdle = 1U;OT_LinkMode.mDeviceType = 1U;OT_LinkMode.mNetworkData = 1U;and coap capabilities.I noticed the following behaviour:Device1:EUI-64: 76:1A:D6:A4:98:A7:2C:70Preferred IPv6: fdeb:6e2:6135:d326:0:ff:fe00:5c00Preferred IPv6: fdeb:6e2:6135:d326:23d4:335f:27aa:3a48Preferred IPv6: fe80:0:0:0:741a:d6a4:98a7:2c70RLOC16: 0x5c00Device2:EUI-64: 76:1A:D6:A4:98:A7:2C:70Preferred IPv6: fdeb:6e2:6135:d326:0:ff:fe00:5402Preferred IPv6: fdeb:6e2:6135:d326:23d4:335f:27aa:3a48Preferred IPv6: fe80:0:0:0:741a:d6a4:98a7:2c70RLOC16: 0x5402Both devices have the same extAddr and same IPv6! (eui-64 read thanks otLinkGetExtendedAddress(...) ).If I use otLinkSetExtendedAddress(...) with extAdrr coming from reading at @UID64_BASE (according to user manual Flash 64 sec
Hi, I have been using NemaGFX on STM32U5G9J-DK2 kit with no problems however my luck with the STM32H7S78-DK kit is different.1. The NemaGFX for this platform only seems to work with 32-bit framebuffers, not 24-bit ones. Or am I doing something wrong?2. The NemaGFX for this platform uses the beginning of the framebuffer as a sort of workspace. We see random dots at the beginning. I think I'm having trouble allocating buffers correctly.3. I can draw filled rectangles, but filled circles with 'nema_vg_draw_circle()' only show the edge slightly and produce small images in a sort of workspace at the beginning of the frame buffer.nema_vg_set_fill_rule(NEMA_VG_FILL_NON_ZERO); does not fill the shape, as it should.Well, 'nema_vg_draw_rect()' works fine with nema_vg_set_fill_rule(NEMA_VG_FILL_NON_ZERO).4. Many more graphics functions don't work properly on the STM32H7S78, but they all work fine on the STM32U5G9J, which one uses 24-bit framebuffers, while the STM32H7S78 can o
HiI have 6 BLE peripherals with some ADC's. I need to make sure that all 6 devices sample at the same time. The Accurracy needs to be below 500 micro seconds. Is there a way to synchronise devices via BLE stack ?Thx
Please i need help. The datasheet, says the VDDA voltage level must be always greater or equal to the VDD voltage leveland must be provided first. My qustion is: will my circuit work, if I tie the VDDA and VDD together, to be powered by the same LDO DC-DC converter? Thanks in advance.
Hi,Looking into STM32CubeN6\Projects\STM32N6570-DK\Examples\SD\SD_ReadWrite_DMA example,I see that quite heavy operations are used:SCB_CleanDCache_by_Addr (aTxBuffer, BUFFER_SIZE); // ... SCB_InvalidateDCache_by_Addr (aRxBuffer, BUFFER_SIZE);while the aRxBuffer[] and aTxBuffer[] are located in a noncacheable memory region.uint8_t aTxBuffer[BUFFER_SIZE]__NON_CACHEABLE; uint8_t aRxBuffer[BUFFER_SIZE ]__NON_CACHEABLE;Could you please explain why?Regards,A
Dear STM32 Support Team,Good afternoon.I am currently working on an STM32H7-based project using the Cortex-M7 core. The firmware is compiling and flashing successfully without any errors. However, I am facing an issue during live debugging — the breakpoints are not being hit, and it seems that the main stack pointer is not running as expected.I have already enabled serial wire debugging (SWD) through STM32CubeMX, and my current debugger configuration in Keil is as follows:RAM for Algorithm: 0x24000000, Size: 0x00080000Flash Algorithm: STM32H7x_2MB_FlashErase Full Chip: CheckedProgram / Verify: CheckedDespite these configurations, the code does not stop at main() or any user-defined breakpoints during debug sessions.Kindly assist in diagnosing the possible cause or suggest the correct configuration steps to ensure proper debugging on the M7 core.Thank you for your support.Regards,Rahul KumarEmbedded Firmware Engineer
Dear community, On my board, a STM32WB55CEU6. My aim is to add the DFU BLE possibility for code update.On the first picture, you will see mu CUbeProgrammer Interface.After click on "Read FUS infos", i'm able to read status.The FUS is ok, but the stack version ( 0.0.0) seems to say "no version".When i'm trying to flash the official binary of BLE_STACK_light (Light, full, extended,... same problem).I'v got an warning.An idea ?
STM32H757 has FreeRTOS running. The goal is to stream JPEG data to the display using HAL interfaces to get performance. However, it is not working yet and I am here to get some guidance. I have it working with using third party library libJPEG. HAL Interfaces I am relying on: HAL_JPEG_DeInit(m_phjpeg) HAL_JPEG_Init(m_phjpeg) HAL_JPEG_DecodeCpltCallback() and HAL_JPEG_ErrorCallback() have been setup to release semaphore. HAL_JPEG_Decode_DMA() for non blocking decode DMA2D: RGB888 To ARGB8888 HAL_DMA2D_Init(&hdma2d) HAL_DMA2D_ConfigLayer() HAL_DMA2D_Start() HAL_DMA2D_PollForTransfer() with 1000 timeout DMA2D: BlendARGB To RGB888 (Blend to FG) stm32h7xx_hal_dma2d.h has the following macros that I am using: #define DMA2D_BACKGROUND_LAYER 0x00000000U /*!< DMA2D Background Layer (layer 0) */#define DMA2D_FOREGROUND_LAYER 0x00000001U /*!< DMA2D Foreground Layer (layer 1) */ Once the dma2d handle members are setup, the following happens: HAL_DMA2D_Init(&hdm
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.