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
STM32CubeIDE Version 1.19.0Build: 25607_20250703_0907I created a project using the STM32F107 and Ethernet. Everything was setup using the .ioc template with Ethernet and various GPIO stuff. Lwip was not included. I generated the code and all of the Ethernet configuration was created. Compiling the code worked with no errors.I have not connected my board and tried to program it as I just wanted to see if CubeIDE would generate the code properly for the STM32F107 part.I then re-opened the .ioc file and enabled Lwip since that was my goal. Now when I generate the code, it removes all of the Ethernet setup code. This means none of the Ethernet RMII pin mapping is in place and none of the Ethernet files are in the project.Is the STM32F107 no longer supported for Ethernet+Lwip applications? I just need a simple application with 2 buttons to control 2 relays. An STM32F7xx is overkill.I think I remember reading somewhere a couple of years ago that ST was no longer going to support Ethernet for
This is one of those problems where I spent more hours than I care to explain.I've got a text box configured with a wildcard:In Designer, I've got a typography set to Voltage, 20px:Here's the typographies:Screen1ViewBase.cpp entry looks like this: textCellVoltage.setPosition(191, 0, 67, 24); textCellVoltage.setColor(touchgfx::Color::getColorFromRGB(255, 255, 255)); textCellVoltage.setLinespacing(0); Unicode::snprintf(textCellVoltageBuffer, TEXTCELLVOLTAGE_SIZE, "%s", touchgfx::TypedText(T___SINGLEUSE_B9IA).getText()); textCellVoltage.setWildcard(textCellVoltageBuffer); textCellVoltage.setTypedText(touchgfx::TypedText(T___SINGLEUSE_F28R)); textCellVoltage.setVisible(false); ImplantData.add(textCellVoltage); Screen1View.cpp looks like this:void Screen1View::enableScreenElementsAfterInterrogation() { tab2.setAlpha(255); tab2.invalidate(); textCellVoltage.invalidate(); Unicode::snprintf(textCellVoltageBuffer, 20, "%s", "123"); textCellVoltage.setWildcard(textC
Hello,Do you think it's possible to flash an ESP32 through a STM32 using a .stldr and the CubeProgrammer ?Same way we flash an external memory through SPI interface.The ESP32 is interfaced with the STM32G4 through a UART.I just want to know if this can be done, and if someone already did it ?Thank you
I have an STM32F103 board call 野火STM32F103ZE_霸道开发板,i found enable FSMC clock will pull up PB7 GPIO to 3.26v , i try decrease my code ceaselessly to verify this bug, finaly it can reproduce bug easily like this #include "stm32f10x.h" int main (void) { //RCC->AHBENR |= 0x100//RCC_AHBPeriphClockCmd ( RCC_AHBPeriph_FSMC, ENABLE ); *( unsigned int * )0X40021014 |= ( (1) << 8); } void SystemInit(void) { // nothing in here }Is this a problem specific to a single chip or a more general chip?
I have Segger Portable Flasher Plus and U-Flash application used to program STM32F777BI and it runs softly but when trying to download code to external flash I can not find where to point to external flash or where to add the flashing algorithm of external flash as it is custom with different pinout connections to microcontroller than standard ones. I already have .FLM and .stldr files of my custom external flash and tested them well.DQ2 connected to PF7DQ0 connected to PF8DQ1 connected to PF9DQ3 connected to PA1Clk connected to PB2CS connected to PB10RST connected to PH6Please advice
Hello,I am working on STM32MP2 using the OpenSTLinux Weston distro and I am modifying the OP-TEE/device-tree files under the external-dt workspace using devtool.I need to remove a pin definition from the CA35 OP-TEE DTS files, but even after rebuilding the image, the pin still appears in the running system: line 8: "PI8" input consumer="kernel" This means my change was not applied.Steps I followed1. Environment setup DISTRO=openstlinux-weston MACHINE=stm32mp2-rt source layers/meta-st/scripts/envsetup.sh 2. Opened the external-dt workspace cd build-openstlinuxweston-stm32mp2-rt/workspace/sources/external-dt/devtool build external-dt 3. Edited the following DTS files to remove a tamper-related pinFiles I modified and added to git:stm32mp2/a35-td/optee/stm32mp257f-ev1-ca35tdcid-ostl-m33-examples.dtsstm32mp2/a35-td/optee/stm32mp257f-dk-ca35tdcid-ostl-m33-examples.dtsstm32mp2/a35-td/optee/stm32mp257f-ev1-ca35tdcid-ostl.dtsstm32mp2/a35
Hello everyone,In one of your recent newsletters, you advertised a standalone rotary knob display module with an STM32C09 microcontroller.https://www.st.com/content/st_com/en/campaigns/stm32-gui-cost-effective-microcontrollers-z11.html?ecmp=tt46702_gl_enews_oct2025Unfortunately, while searching for sources, I discovered that there doesn't seem to be a supplier for private individuals like myself. TSD only communicates with registered businesses.Does anyone have any idea where I, as a private individual, can purchase such a rotary knob display module?I would be very grateful for your help.I'm looking for the TSS13002 model (1.3 inches).Any suggestions would be greatly appreciated. Best regards Christian
Hello,I am working On Customized Board using STM32H755ZIT6 microcontroller. I have written code using .IOC functionality in stm32 CubeIDE but that code is not working in Our customized board. 2)That same code is working In Nucleo H755ZI-Q board and functionality is working.3)Than I tried to write code without using IOC for gpio toggling that code is working fine.4)Here is the code that is working /* * main.c * * Created on: Nov 4, 2025 * Author: PK01 */ #include "stm32h7xx_hal.h" #include "main.h" GPIO_InitTypeDef GPIOD_Init = {}; void gpio_config(void); void gpio_config1(void); void delay(uint32_t delayVal); int main(void){ //HAL_Init(); gpio_config(); //USART3_Config(); gpio_config1(); /*gpio_config2(); gpio_config3();*/ // if(HAL_UART_Transmit(&usart3,(uint8_t*)msg,msgSize,timeDelay)!=HAL_OK){ // ErrorHandler(); // } while(1){ HAL_GPIO_TogglePin(GPIOA,GPIO_PIN_0); HAL_GPIO_TogglePin(GPIOE,GPIO_PIN_12); // HAL_GPIO_TogglePin(GPIOE,GPIO_PIN_8); // H
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 am trying to set few pins as input states by default right after boot and power on state so I have written 2 nodes:- turn_latch_if { compatible = "gpio"; status = "okay"; turn_dc_dc_conv_off { label = "TURN_DC_DC_CONV_OFF"; gpios = <&gpiog 4 GPIO_ACTIVE_LOW>; /* PG4 */ status = "okay"; }; turn_bat_charge_off { label = "TURN_BAT_CHARGE_OFF"; gpios = <&gpiog 6 GPIO_ACTIVE_LOW>; /* PG6 */ status = "okay"; }; bat_charge_status { label = "BAT_CHARGE_STATUS"; gpios = <&gpiog 7 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)>; /* PG7 */ status = "okay"; }; lrelay_status { label = "LRELAY_STATUS"; gpios = <&gpioa 9 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)>; /* PA9 */ status = "okay"; }; latching_relay { label = "LATCHING_RELAY"; gpios = <&a
Looking for datasheets for the STWBC2HP and STWLC89, do these exist? I can't find them anywhere on the internet
Hi,It's mentioned in the datasheet that the sensor will convert the FIFO from streaming (reading data all the time) into FIFO (holding the data until it's read) If i am getting it right, then my question isWhen exactly will the sensor read ? Will it read 32 samples after the interrupt and then stops ?Or will it just turn into FIFO immediately after the interrupt ? and discard the samples after the interrupt holding the data before the interrupt ? Thanks
I was asking can I sense (generate interrupt) over the overall acceleration ?Because in the datasheet it was mentioned that I can manipulate the interrupt between X, Y, Z high and low.But it'd be helpful for me if I can generate an interrupt based on the total acceleration in LIS2DH12 Thanks in advance
Parts i'm looking to connect * STM32N6 - microcontroller * LSM6DSV320X - Master Sensor IMU * LIS2MDL - On sensor hub Magnetometer Question - is there any benefit to connecting the IMU master sensor to the LIS2MDL on the sensor hub vs connecting it directly to the microcontroller. One of the features of this IMU is to generate quaternions but i don't think i can add the LIS2MDL into that equation.
HIWe have purchased few STM32H757 Eval board for initial evaluation. We received the boardsWe have generated code using STM32CubeMX and added just GPIO configs.(PK3,PK4,PK5 as outputs) and flashed code. it was working. we disconnected powersupply and connected back from then led's not toggling and also any code not flashing.and the output is No device found on the target. what may be the reason, how to overcome this. even tried in STM32CubeIDE still no luck.STMicroelectronics ST-LINK GDB server. Version 7.11.0 Copyright (c) 2025, STMicroelectronics. All rights reserved. Starting server with the following options: Persistent Mode : Disabled Logging Level : 1 Listen Port Number : 61234 Status Refresh Delay : 15s Verbose Mode : Disabled SWD Debug : Enabled InitWhile : Enabled Target no device found Error in initializing ST-LINK device. Reason: No device found on target. GNU gdb (GNU Tools for S
STM32F411RE - NUCLEOI'm working through a course on power optimization on STM32s & I'm genuinely confused about some results I'm getting off the board. I've set up TIM5 to count execution time in us like so, void Timer_Init_For_Timing(void) { RCC->APB1ENR |= RCC_APB1ENR_TIM5EN; /* Calculate TIM5 prescaler for 1MHx clock (1us tick) * TIMxCLK = PCKL1 if APB1 prescaler = 1 * TIMxCLK = 2 * PCLK1 if APB1 prescaler > 1 */ uint32_t pclk1_freq = SystemCoreClock; // start with HSI uint32_t ppre1_rcc_bits = (RCC->CFGR & RCC_CFGR_PPRE1) >> RCC_CFGR_PPRE1_Pos; if(ppre1_rcc_bits >= 0x4U) { uint32_t ppre1_divider = 1 << (ppre1_rcc_bits - 3); pclk1_freq = SystemCoreClock / ppre1_divider; } uint32_t tim_clk_input_freq = pclk1_freq; if(ppre1_rcc_bits >= 0x4U) { tim_clk_input_freq *= 2; // timer clock 2x PCLK1 } TIM5->PSC = (tim_clk_input_freq / 1000000U) - 1; TIM5->ARR = 0xFFFFFFFFUL; TIM5->CR1 |= TIM_CR1_CEN; } uint32_t
Hello,I'm working on a custom STM32H7S7L8 board with this display https://newhavendisplay.com/fr/2-4-tft-lcd-ips-high-brightness-display/Here the schematic of the connection in 8 bit mode and clock three The backlight and display are working but I get a glitch image when i try to fill the display. with this code i can see the display turning off and on so the command are working Below the whole project zip LCD_Fill(0xFFFF, 0, 0, 10, 10); HAL_Delay(1000); ST7789H2_DisplayOff(); LCD_Fill(0xFFFF, 0, 0, 10, 10); HAL_Delay(1000); ST7789H2_DisplayOn();Does someone have a idea to make this work Thanks
I´m not 100% sure how to interpret and thereby implement ASPEP on an own controller to talk to the performerSo I want to ask if someone can tell if I´m on the right way on the example of the BEACON messageThe documentation says least significant bits are send first and the BEACON message isI recorded the inital traffic when connecting the Motor Pilot and the first message is I currently think to fit this reording in the documented scheme, I have to "mirror the bytes around the vertical axis", so fittet in the scheeme the message would be10100000 11100011 10000000 00101000?If that is correct, what suprises me is that the CRC bit is zero indicating no crc is supported by the performer, but somehow the last 4 CRCH bits are not zero.
Hi @Issamos Hope You doing well . we are started new design using STM32U575VIT6Q this controller, we have some doubts regarding the SPI line, we searched in the STM32cubemx in that we cannot able to find the octa spi pins, Can you pls share me the Standard SPI lines pins and Octa SPI pins ,thanks
Hi I am planning to evaluate the ST25R3920B for NFC reader applicaiotn in automotive.I only find STEVAL-25R3916B kit on your website, based on your presentation file, this kit is also valid for ST25R3920B, it is right?if not, where can I find the suitable evaluation kit for ST25R3920B?Thanks,Leo
Heyho,I have a super-stable TCP-audio-streaming server on a H733 here, using custom ETH driver and lwIP, no OS.But I recently found that in a struct which is used for handling / storing the TCP connection, the variable to store the port number "u16Port" (used in lwIP's tcp_bind() to set the TCP port) changes as soon as data is transmitted.It's really crazy: u16Port has the init value before and after the connection is accepted, but as soon as data is transmitted, it changes all the time (checked via UART and http REST). When data transfer stops, it keeps the latest wrong value, after TCP connection is closed, u16Port has the init value again.All other values in the struct do NOT change and their values make sense.I have tried to set the struct to volatile, use another memory area, align, but still changing.I just checked it with the STM32CubeIDE debugger under Live Expressions, there I see the same change.I admit I have no idea how I can check where this variable is modified.How
Hello All, I am facing a strange situationI have an ISR function1 that is triggered on Falling / Rising Edge of a GPIO pin This function1 according to the state of variable will either start TIMER2 and stop TIMER3 and the way around.TIMER2 & 3 have also ISR. But before starting/stopping TIMER, it needs to update memory variable that will be used by TIMER ISR.The issue is that the variable is effectively updated in memory after the start of TIMER and a few (100 CPU) cycles are needed to get the proper value.This is time critical and I need the value of wrBitPos to be 0 and wrBitCounter to be set a the right value before the first timer iteration. How can I fix this ?I use the volatile declaration for variable.void function1(){ TIM3->DIER &= ~TIM_DIER_CC4IE; // disable CC4 interrupt TIM3->CCER &= ~TIM_CCER_CC4E; // disable CC4 output TIM3->CR1 &= ~TIM_CR1_CEN; // stop the timer wrBitPos=0; bytePtr++; // Reset the BitPos wrBitCounter=by
Hello STM32 Community,I’ve successfully built a Zephyr RTOS blinky application for the NUCLEO-H533RE board. Flashing the zephyr.hex using west flash or STM32CubeProgrammer works perfectly — the LED blinks and the serial terminal prints the expected status messages.To enhance security, I’m now trying to encrypt and sign the firmware using STM32TrustedPackageCreator and provision the board using STiROT. I followed the STM32CubeH5 GitHub examples and used the STiROT_Code_Init_Image.xml file, modifying it to point to my zephyr.bin. Provisioning was successful, and the board state was set to PROVISIONED.However, after flashing the generated zephyr_enc_sign.hex, the board does not blink, and the serial terminal remains silent — indicating the firmware is not executing.Here’s what I’ve done:Used STiROT/Image/STiROT_Code_Init_Image.xml and modified paths to point to zephyr.bin.Generated the encrypted and signed image using STM32TrustedPackageCreator.Successfully provisioned the board and set i
hello ST: I used the stm32mp257 platform for KGDB debugging and found that it always resets the watchdog. I tried to disalbe the relevant nodes in the device tree of the kernel and optee: ///kernel: &arm_wdt { /*timeout-sec = <32>; status = "okay";*/ status = "disabled"; }; //Optee: &iwdg1 { /*timeout-sec = <32>; status = "okay";*/ status = "disabled"; };Will it still cause the system to restart after a period of time? How should this be handled?and this html Open fail~
Hello everyone,I’m new to STM32 development and I’m trying to set up a simple test using the STM32H753 with an OV5640 camera module.My goal is to capture frames from the OV5640 and send them over USB to view them on my laptop — just to verify that the camera is working and capturing images correctly.I’ve gone through various online examples and references, but most of them are either for different STM32 families or for other camera sensors. I’ve written some code based on those examples, but it doesn’t seem to work — I suspect I might be missing something in the clock configuration.I’m currently using the official OV5640 driver from ST::backhand_index_pointing_right: https://github.com/STMicroelectronics/stm32-ov5640/blob/main/ov5640.cIf anyone has experience connecting the OV5640 to an STM32H7 series MCU (especially the H753) or has an example project to share, I’d really appreciate your help or guidance on the correct initialization and clock setup.Thank you in advance!
I'm using NemaGFX on the STM32U5G9J-DK2 kit without RTOS and without TouchGFX, which works very well.I've created lightning-fast graphical widgets on that kit.Now I have an STM32H7S78-DK and I'm having trouble getting *all* NemaGFX functions to work properly.Many functions work properly, but the functions that draws filled circles and shapes with rounded corners still have problems. Maybe I'll get it working later.So I thought TouchGFX might be useful for initializing NemaGFX on this kit, and then using its functions to create my own graphical widgets.So I created a project with 4.26.0 that only displays a button on the screen to confirm it's running on the target.Then I looked at the generated code and, to my surprise, no NemaGFX functions were revealed.Does it actually use GPU2D and NemaGFX? Why isn't it showing up? I'm a bit worried that I can't use the NemaGFX library with TouchGFX.If that's the case, TouchGFX is useless to me.How do I use the NemaGFX library within a TouchGFX proj
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.