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
Hi everyone, I'm working on a STM32F429I-Discovery board and trying to output a 24 MHz PWM signal on PA8 (TIM1_CH1) to drive an MT9M001 camera module as the XCLK signal. In my own CubeMX-generated project, PA8 stays LOW — no waveform appears.However, if I take the official exampleProjects/STM324x9I_EVAL/Examples/DCMI/DCMI_CaptureMode,and add the same PWM settings, the signal comes out fine. Here’s what I confirmed: TIM1 initialized successfully with HAL_TIM_PWM_Init() and HAL_TIM_PWM_ConfigChannel(). GPIO A8 = AF1_TIM1, Push-Pull, No Pull, Very High Speed. HAL_TIM_PWM_Start(&htim1, TIM_CHANNEL_1); is executed. PWM period = 7 (≈ 22.5 MHz), pulse = 4 (≈ 50 % duty). System clock = 180 MHz (PLL on HSE 8 MHz). No error occurs, but no output. Thanks for any advice! Edited by ST moderator: removed system_stm32f4xx.c content not needed for the conversation.
Hi GFX team,GFX auto generates Typography/TypographyFontIndex structs in "\generated\fonts\include\fonts\ApplicationFontProvider.hpp" struct Typography { static const touchgfx::FontId DEFAULT = 0; }; Could you consider adding a tag that would alias type of struct members ie: struct Typography { using type_t = touchgfx::FontId; static const touchgfx::FontId DEFAULT = 0; }; This would allow to write eg funtion with Typography as a parameter: void functUsingTypography ( Typography::type_t tpg ); Thanks
I am following the "getting started" guide https://wiki.st.com/stm32mpu/wiki/Getting_started/STM32MP1_boards/STM32MP157x-DK2/Develop_on_Arm%C2%AE_Cortex%C2%AE-A7/Modify,_rebuild_and_reload_the_Linux%C2%AE_kernel I am successfully able to compile and transfer the kernel on board but after giving reset command in step 5, board is constantly resetting. 5.3. Reboot the board Starting kernel ...I/TC: Secondary CI/TC: Secondary CPU 1 switching to normal world bootI/TC: Reserved shared memory is disabledI/TC: Dynamic shared memory is enabledI/TC: Normal World virtualization support is disabledI/TC: Asynchronous notifications are disabledNOTICE: CPU: STM32MP157FAC Rev.ZNOTICE: Model: STMicroelectronics STM32MP157F-DK2 Discovery BoardNOTICE: Board: MB1272 Var4.0 Rev.C-03INFO: PMIC version = 0x21NOTICE: Reset reason (0x114):INFO: IWDG1 Reset (rst_iwdg1)INFO: FCONF: Reading TB_FW firmware configuration file from: 0x2ffe2000INFO: FCONF: Reading firmware configuration informatio
Hi all,I'm in the process of configuring my STM32H723ZG to work with the IHM08M1 motor driver shield.Currently I am trying to configure and validate the signals from the ADCs however I am having some issues with this. One ADC I'm trying to validate is the DC voltage bus reading. This circuit simply places the input through a voltage divider with some protection, going straight to the ADC after. I've tried configuring these ADCs in a few different ways, single channel, DMA, etc. however none of them produce the expected results. What I'm currently seeing is that with the stm and shield disconnected, I can read the correct stepped down voltage on the shield side by probing with a multimeter (~0.5V depending on input voltage). When the stm is disconnected to the shield the ADC reads a floating ~1.64 volts. With the two connected the ADC seems to still be reading 'garbage' values, probing with a multimeter reads ~1.75 volts. The last bit of information I have is that by grabbing
Hi, I am currently working on a use case involving the ST25DV16K NFC and Phytec Pollux board for Wi-Fi credentials sharing and connectivity. I came across the following Arduino library for ST25DV:https://github.com/stm32duino/ST25DV I would like to clarify the following points: Can this library be used for I²C communication between the ST25DV16K NFC and the Phytec Pollux board? The stm32duino/ST25DV library lists supported architectures — would it be compatible with the Pollux board, which is based on an ARM 64-bit architecture? If not compatible, could you please share if there are any supported libraries or APIs for ARM64 platforms? Looking forward to your guidance. Best regards,Pritha Suresh
I have configured WWDG Timer in CM7 of Stm32H747I-Disco and configured WW1RSC=0 in RCC global control register (RCC_GCR) for CM7 Reset only instead of system reset.Issue:HAL_WWDG_EarlyWakeupCallback is getting called before watchdog Reset. but afrer CM7 Reset, some times it is going to hardfault and not booting again and some times booting properly.but in both cases, clock configuration of CM4 is disturbed. main code as follows/* Reset of all peripherals, Initializes the Flash interface and the Systick. */HAL_Init();/* USER CODE BEGIN Init *//* Configure the system clock */SystemClock_Config();/* Configure the peripherals common clocks */PeriphCommonClock_Config();MX_GPIO_Init();MX_TIM7_Init();// MX_WWDG1_Init();MX_USART1_UART_Init();/* USER CODE BEGIN 2 */if(is_wwdg_reset){printf("After Watchdog Reset\n");}else{printf("After Reset\n");}HAL_GPIO_WritePin(GPIOI,LED1_Pin,GPIO_PIN_SET);HAL_Delay(1000);HAL_GPIO_WritePin(GPIOI,LED1_Pin,GPIO_PIN_RESET);HAL_Delay(1000);MX
We need to use quadrature phase counting with STM. can u please confirm if phase failure is supported in this mode or not .
Hello,I have a requirement to log the data from evaluation board STEVAL-STWINBX1 to cloud. I have created Azure IOT hub and while initiating the cloud logging from the app i was unable to successfully connect to the created IOT Device created in azure even though the connection string was pasted correctly. the application ST BLE Sensor classic automatically disconnects from the sensor once the cloud logging is enabled. do i need to install the SD card and log the data from card to cloud ? I got struck at this point, is there any specific firmware to be loaded, for now I'm just testing with the basic firmware that provides data from all the sensors to the app
Hi;I recently started playing with CubeMonitor - it's fantastic. I am using it to troubleshoot/fine tune a motor control project I'm working on - specifically, I am graphing the values I'm calculating for Space Vector Modulation to make sure things are working as I expect. Something odd I notice are these strange "glitches" in my waveforms:There is nothing obvious I can find in my algorithm that might cause these - I am wondering instead if they might be coming either from 1) some nuance in C I might not be aware of, or 2) something I don't have configured properly in CubeMonitor. To check the former: in my SVM algorithm, I do something like:typedef struct { float theta_rad; float u, v, w; float alpha, beta; float d, q; } FOC_HandleTypeDef; void calculate_svm(FOC_HandleTypeDef *foc) { // ... some stuff happens before this, // but at one point I use some members of // FOC as 'inputs' float uvw_min = fminf(foc->u, fminf(foc->v, foc->w)); float uvw_max = fm
Hi everyoneI’m looking for more design inspiration for a TouchGFX GUI especially for button layouts.Does anyone have a tip where I can find suitable layouts (besides the TouchGFX Stock)? Is there a library for this, or maybe a community site?Thanks for your help.
I am uploading a custom bootloader to an STM32G071. When I select Full Erase, I get the error "Error occurred during mass erase." How can I solve this? I am using Utility.
I ran the example project and successfully displayed “Hello World” on Tera Term.Then I tried to port this project into my own one.However, the result was garbled characters in the terminal.The baud rate (115200) and PLL/clock configuration are the same as in the working example.Do you have any idea what might cause the characters to be corrupted? /** ****************************************************************************** * @file DCMI/DCMI_CaptureMode/Src/main.c * @author MCD Application Team * @brief This example describes how to configure the camera in continuous mode. ****************************************************************************** * @attention * * Copyright (c) 2017 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 is provided
Can any one help me with this. I am facing the below error.
HelloI have a few questions about the EEPROM organization & specific corner cases of using with respect to programming manual.1) What is the exact organization of EEPROM? It is clear that it can be written with 1 byte, 4 bytes (word) and 128 bytes (page/bank). As i deduced from programming manual:Q1: It says that for 1 byte it basically reads out a 32bit sequence, changes a byte and writes it back, is it correct?What if we are to change some 32 bit value which is not aligned within this 32-bit word sequences?I.e.: 00 00 0xf2 0xf3 | 0xf4 0xf5 00 00 say 0xf2f3f4f5 would be changed to 0x11111111.Q2: Would the operation take twice as long as writing 2 words?2) What's the state of the *corrupt* memory? Say we were writing a byte, a reset or power drop occured, we restart and have to read out this very data.Q3: Would the data be read? Or would it cause an unexpected behavior of some kind?3) Same as 2, but for the operation of erase. Something occured while erasing, we wake up, try t
I have enable the hfmpi2c1 in STM32CubeMX tools, but I can find the FMPI2C_HandleTypeDef is undefined in the source code. Do we have a demo code to show how to setup and use hfmpi2c1. It's very confuse that the F446 only have one Fast Plus Mode IIC interface.
Hi everyone,I’m currently working with the VENC_RTSP_SERVER example. I was able to successfully run it and capture video using ffplay, but the stream is currently encoded at 960×720 @ 20fps.I’m trying to reduce the resolution to 480×480@20fps. To achieve this, I modified the MX_DCMIPP() function and changed the encoderI also tried adjusting related parameters such as ewl_pool, VENC_OUTPUT_BLOCK_SIZE, and VENC_OUTPUT_BLOCK_NBR.However, after these changes, the video feed is distorted and looks like this:Has anyone encountered this issue or know what additional configurations need to be updated to properly support a 480×480 resolution?Thanks in advance for any guidance!
Hello everyone, I am strugling with a STM32WB5MMGH that I am using with transparent mode. I am using the STM32WB5MMGH on a custom board with a STM32L4R9VIT6. The goal of the project is to use the STM32WB5 as a bridge to send data from a smartphone app to the L4. I use LPUART to cummunicate between the two MCU.From my understanding the transparent mode is the best for my application as it will redirect the data from the phone directly to the LPUART. The issue that i'm facing is that when I run the WB in transparent mode it's not advertizing (I use NRFconnect).I use stm32wb5x_BLE_Stack_full_extended_fw.bin stack as mentioned in the transparent mode exemple readme. The WB was advertizing when I use stm32wb5x_BLE_Stack_full_fw.bin stack with a custom template server. It means that my hardware is OK (The LPUART work fine too when I didn't use the WB as a BLE project). I don't really know what I am doing wrong here. Any help would be great!&n
Post edited by ST moderator to be inline with the community rules for the code sharing. In next time please use </> button to paste your code. Please read this post: How to insert source code. Hello, I’m using the STM32F429I-Discovery board and trying to display “Hello World” on Tera Term via USART1 (PA9, PA10). I configured the project in STM32CubeIDE as follows: USART1 → Mode: Asynchronous TX: PA9, RX: PA10 Baudrate: 115200, 8N1, No Flow Control Using the ST-LINK Virtual COM Port (USB connector CN1) main.c HAL_Init(); SystemClock_Config(); MX_GPIO_Init(); MX_USART1_UART_Init(); const char msg[] = "Hello World\r\n"; HAL_UART_Transmit(&huart1, (uint8_t*)msg, sizeof(msg)-1, HAL_MAX_DELAY); while (1) { HAL_UART_Transmit(&huart1, (uint8_t*)"Hello Again\r\n", 13, HAL_MAX_DELAY); HAL_Delay(1000); } However, nothing appears on Tera Term.The “ST-LINK Virtual COM Port (COMxx)” is visible in the Windows Device Manager, and I’ve selected the correct COM port in Te
Hai All, New to MCSDK Tool – 446 + IHM08M1 Interface.Generated the code using MCSDK 6.4.1 and analysing it.Attached is the video of my motor control configuration – Basic Hall Effect Sensor based 6 step commutation using Switch and ADC Speed Control.Unable to see any control routine in my main closed loop – where the switch press and the speed control ADC is called.Kindly help me out, how to proceed.
Hi,Tried to convert STM32CubeN6\Projects\STM32N6570-DK\Applications\USBX\Ux_Device_Audio_2.0 example of the USB speaker to the USB microphone on STM32N6570-DK.The USB device is enumerated as an audio recording device, ux_device_class_audio_stream_frame_done() is called, and then I fill the buffer with the functionsux_device_class_audio_write_frame_get(audio_play_stream, &frame_buffer, &frame_length); ux_utility_memory_copy(frame_buffer, &stereo24[idx], 12 * 2); SCB_CleanDCache_by_Addr(frame_buffer, 12 * 2); ux_device_class_audio_write_frame_commit(audio_play_stream, 12 * 2);The buffer is filled with a tone of 32767 magnitude, but recorded data is 70dB lower, or just strange noise.I can share this small project via DM if it's convenient.Regards.
Hello,I am using the Nucleo U575ZI-Q board. I need to use GPDMA synchronized with a timer to set multiple GPIO pins synchronously, perform SPI transmission, and configure PWM periods.I have found a working combination: software request + trigger TRGO. However, TRGO is only available for TIM15 and TIM2, which limits its versatility. Ideally, I would like to use hardware requests (such as REQUEST_TIM15_UP).Set TIM15 to output TRGO. Configure GPDMA1_CHANNEL7 with LinkedList for DMA_REQUEST_SW and set the trigger to GPDMA1_TRIGGER_TIM15_TRGO. The direction should be set to Memory-to-Memory. Specify the source as memory and the destination as GPIOA->BSRR or SPI2->TXDR. This will allow you to generate the waveform shown in the attached oscilloscope.uint32_t gpio_node_data[4] = { 0x00000100U, // PA8 = High -> bit8 set (1 << 8) 0x01000000U, // PA8 = Low -> bit24 set (1 << (8 + 16)) 0xFFFFFFFF, 0xFFFFFFFF }; uint32_t spi2_node_data[4] = { 0xAAAAAAAA, 0x55555555, 0x11111
I would like to ask how to program multiple STM32 MCUs connected in a JTAG daisy chain individually, and how to disable automatic program execution after flashing. I would like to achive the following goals simultaneously:Program each STM32 MCU individually while connected in a daisy-chain configuration.Prevent the program from automatically running after the flashing process.In my current setup, I have successfully programmed two STM32L476RG devices individually through a J-Link Base Compact using STM32CubeIDE by configuring the Debug Configuration settings (see the attached image for details).However, after programing, the application code starts running automatically. When using STM32CubeProgrammer, unchecking the "Run after programming" option successfully disables the automatic execution.However, I could not find a way to specify individual targets (e.g., by IR length or other parameters) for daisy-chained devices in STM32CubeProgrammer, either in the GUI or CLI versions
Hello,We want to implement the new ST25100 or ST25R200 in our project. There we need to have 8 RFID antennae to read and write to 8 NFC Tags as fast as possible. The NFC Tags will be placed on a drawer, so all 8 Tags are in the range of the antennae at the same time.We already did a prototype 1 years ago with ST25R95 (CR95HF). There we had one stm microcontroller and 8 ST25R95 connected by the same SPI. The used RFAL firmare has only one instance of ST25R95 and we had to startup and initialize every chip one by one to read out the tags. This setup needs time to start every chip and reading the tag. At problems with initializing, resetting this chip was very bad, but the new chips have a reset line.The 8 RFID antennae and ST25R95 have a distance of 80mm next to each other, so we have a large distance from the first to last chip and antennae. The antenna is not an integrated PCB antenna. Every antenna is connected by a 200mm cable to the PCB.My question now is what will be the bette
Hey,I have an STM32H757 that I’m trying to program for the first time.When I try to program it using STM32CubeIDE or CubeProgrammer, I lose the ST-Link connection after programming one of the cores.Changing the programming order doesn’t solve the issue.The code has been tested on an evaluation board, where it runs correctly and behaves as expected.Is there a recommended procedure or step-by-step guide for programming a blank MCU for the first time?Best regards,Matthias
Hi,I create an empty project for Nucleo-L432KC with all default settings using STM32CubeIDE 3.6.4. on Win11.Default settings are gcc toolchain and Debug preset.Then, I switch to Release Preset (CMake: Select Configure Preset - as described in Development — STM32CubeIDE for Visual Studio Code Extensions Documentation 0.1.0 documentation).After building in Build/Release, the compile commands are like{ "directory": "C:/tmp/test2/build/Release", "command": "C:\\ST\\cube\\gnu-tools-for-stm32\\13.3.1+st.9\\bin\\arm-none-eabi-gcc.exe -DRTE_DEVICE_STARTUP_STM32L4XX -IC:/tmp/test2/Inc -IC:/tmp/test2 -fdata-sections -ffunction-sections -Wl,--gc-sections -Wno-comment -O3 -DNDEBUG -std=gnu11 -mcpu=cortex-m4 -mfpu=fpv4-sp-d16 -mfloat-abi=hard -mlittle-endian -mthumb -Wall -Wextra -Wpedantic -Wno-unused-parameter -Os -o CMakeFiles\\test2.dir\\Src\\sysmem.c.obj -c C:\\tmp\\test2\\Src\\sysmem.c", "file": "C:\\tmp\\test2\\Src\\sysmem.c", "output": "CMakeFiles\\test2.dir\\Sr
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.