Join conversations with your peers and ST experts. Explore the full potential of STM32 microcontrollers for your embedded design.
Most recent activity
The maximum I2C (Standard) Rise Time/Fall Time of STM32F413VGT is stated as 0.1us/0.3us, but STM32 Datasheet says 1us/3us. Please confirm which one is correct.
I have come back to TouchGFXDesigner after not using it for about 6 months. I have updated to 4.26.0 and created a new blank project for the STM32H747I-DISCO board. When trying to generate code, I get the following error message:Generate CodeGenerateDoneGenerate Assetsmake -f simulator/gcc/Makefile assets -j8'M' is not recognized as an internal or external command,operable program or batch file.FailedFailedLooking through the Makefile, I can't see anywhere that this 'M' would be generated, and make isn't overridden in my environment variables.
Hello, I am working on a Riverdi Screen RVT101HVSNWC00 using STlink2, and I am trying to display colors using touchgfx designer.This is a screenshot from my Touchgfx designer ApplicationAnd this is the output on screen:I don't understand the logic of displaying colors...I thought at first that it is read as BGR instead of RGB but it's not the case because blue is displayed as black for example and red is displayed as green instead of blue.Do you have an explanation of this behavior?Could you help me resolve this issue?Thank you !
I get two errors from here:ret = wolfSSL_connect(g_tls.ssl);if (ret == WOLFSSL_SUCCESS) {printf("TLS handshake OK\r\n");g_tls.state = TLS_STATE_TLS_ESTABLISHED;} else{int err = wolfSSL_get_error(g_tls.ssl, ret);if (err == WOLFSSL_ERROR_WANT_READ ||err == WOLFSSL_ERROR_WANT_WRITE) {} else {printf("TLS handshake failed: %d\r\n", err);g_tls.state = TLS_STATE_ERROR;ret = -1 and err = 32No ClientHello is being sent.This is how the main looks:/* USER CODE BEGIN Header *//********************************************************************************* @file : main.c* @brief : Main program body******************************************************************************* @attention** Copyright (c) 2024 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 AS-IS.********************************************************
Hello, Does the stm32n6570-dk has no support for lwip?
Hi fellows,I have a custom board with STM32F407VGT6. The board was able to be programmed via the JTAG (4 wire JTAG interface; Boot pin is pulled low to ground and reset is connected to the JTAG interface (Nrset pin)) with a segger programmer - multiple times at that and can run for hours, however sometimes it code wipes. The board works fine for some time, but only upon boot-up (at random, happened twice thus far) we have seemingly a code-wipe as well as a bricked chip with the RDP set to 0xFF and unable to do anything with the chip. This does not happen during continuous running of the chip. We have this across 2 differently designed boards, which are designed according to the reference manual for power supply and for the tests were supplied with external linear regulator with low noise. I have seen some posts here but not conclusive solutions or cause for this issue, is it possible to trigger this externally via hardware faults ?The chip reports back correc
Hello,I have application which go to STOP2 mode once no LPUART/Modbus communication (Running at 32Khz LSI clock) is in progress.Using lptimer for silence timeout logic for UART data frame completion. The code sometimes cause delay during modbus communication.void setLowPowerMode() { clearFaultStatus(); ResetTickMs(); HAL_UARTEx_EnableStopMode(&hlpuart1); HAL_PWREx_EnterSTOP2Mode(PWR_STOPENTRY_WFI); ResetTickMs(); Reset_SystemClock();//internally call SystemClock_Config() HAL_LPTIM_Init(&hlptim2); //Need to re-init otherwise doesnt work HAL_LPTIM_Counter_Start(&hlptim2); HAL_UARTEx_DisableStopMode(&hlpuart1); } uint32_t GetTickMs(void) { uint32_t now = HAL_LPTIM_ReadCounter(&hlptim2); uint32_t delta; if (now >= lptim_last_cnt) { delta = now - lptim_last_cnt; } else { delta = 65536U + now - lptim_last_cnt; // wrap-safe } lptim_last_cnt = now; // Add fractional milliseconds in fixed-point lptim_frac_acc += delta * 1000UL; // Extract w
Hi, I'm struggling with a runaway situation when I try to run my motor at high RPMs. Here is my setup: 48V power supply, 300A max. The motor has 21 pole pairs. I use the FOC algorithm to drive the motor, sensor-less speed sensing (no hall sensor). I drive the engine with a 20kHz PWM. I'm able to run the motor up to about 3100RPM. Then it suddenly jumps to maximum power, and I'm unable to control the motor anymore. Setting a new target RPM lower than 3100RPM still makes the motor spin at maximum speed. When I debugged the system, I see that when we experience the runaway, the FluxWeakening calculations fails, when the measured current is larger than the max current defined in the workbench project. I have defined max current to 300A. The workbench calculates the current conversion factor to 109 as integer, while the actual value should have been 109.22 (as a float). This value is based on the shunt resistor of 0.001ohms and gain of 5.5. However, I changed the current limit values to INT
Hi All,I am trying to send data to SPI1 via DMA1 Stream 0, using a timer to trigger DMA.Currently, I have used TIM4 Channel2 and Enabled DMA Update with DIER register (UDE bit).DMAMUX1 Channel 0 Request is set to 32.So far, this part seems to work: I have used a LED to monitor HT and TC flags of DMA, and it toggles at the speed it should.But the SPI does not send anything (I checked the MOSI and SCK lines with an oscilloscope)... as if TXDR register was not filled by the DMA.Do you have an idea of what is happening?I have checked that my buffer xyDacData is correct (not null), and also I monitored SPI CR1 as well as SPI SR with SWD debug, all seems OK (SR is null, CR1 shows SPE and CSTART at 1).Thank you!(About SSM and SSI bits, I have set these to test, but they should be useless, since I am in master transmitter mode.. /* * FBx_XY.c * * Created on: Sep 10, 2024 * Author: Thomas */ #include "main.h" #define XY_SYNC_BITS (24 + 8) // Take some margin #define DURATION_SPI_
I have a working program on my own board using a STM32G081KBU6. Debug using SWD and programming a release version works fine. As long as RDP remains at Level 0, I'm able to debug, erase and reprogram updates to the board.Usually for other ST MCU's that I've used, once I've finalized a release version, I usually do the bare minimum of changing RDP to Level 1 to prevent code readout. If I need to do a firmware update, I'll just regress RDP back to Level 0 and update to the new version.However, for this device, once I change the RDP to level 1, it seems like the SWD debug port is completely killed, and Cube programmer is unable to connect to the device anymore.I've tried all the connection and reset modes in Cube programmer, including powering the board on and trying to connect immediately. I'll only keep getting this error.I'm sure that I did not accidentally set RDP to Level 2, as the setting was done in Cube Programmer itself, and I've verified this on more than one board. Note al
Hi ,we are using LORA , 22 dBm , 3.3V system , TX and RX path are connected via RF SWITCH on Board . we see minor Sensitivity Degradation of 1-2 dB only around the HSE 32 Mhz clock multiple. ( Sensitivity of the stm32wle5 receiver path )I have several questions regarding this Errata issue:1. Does the SPUR issue happen only in TX Mode or also in RX mode of the stm32wle5 ?2. If it relates also to RX mode - cause this spur be the cause of the sensitivity degradation of the stm32wle5 ? Thank you,Viola
Good evening!I'm implementing a keyboard that looks like the three mockups below (you can ignore the fourth, "Numbers Compact"). I'm manipulating the basic "Keyboard Example" provided by TouchGFX.I have implemented two keyboard layouts - `alphaLayout` and `numLayout` and I programmatically switch between the two when the ABC/123 button is pressed. I am finding myself reaching for a third layout simply so I can have different icons for the SHIFT key between the lowercase and uppercase versions: uppercase version lowercase versionThat seems silly, but I can't find any other way to change the icon on that one particular button for the unpressed state. Am I missing something?Thanks,Julia
Hi again,I'm looking to implement a character limit on a keyboard, as seen by the red 30/30 text in the screen below. In CustomKeyboard.hpp I added: /** * The buffer used to hold the ASCII representation of the key count (e.g., "5/30"). */ Unicode::UnicodeChar keyCountTextAreaBuffer[KEYCOUNTTEXTAREA_SIZE]; /** * Used to display the count of the characters entered / total allowed. */ TextAreaWithOneWildcard keyCountTextArea;And in CustomKeyboard.cpp there's some logic to add that textArea to the screen:CustomKeyboard::CustomKeyboard() : keyboard(), keyCountTextArea(), modeBtnTextArea(), enterBtnTextArea(), capslockPressed(this, &CustomKeyboard::capslockPressedHandler), backspacePressed(this, &CustomKeyboard::backspacePressedHandler), modePressed(this, &CustomKeyboard::modePressedHandler), enterPressed(this, &CustomKeyboard::enterPressedHandler), keyPressed(this, &CustomKeyboard::keyPressedHandler), alphaKeys(true), uppercaseKeys(false), f
Hello, i am stuck on UART topic and i have an argument with someone.He states that ReadMemory(0x11) is sent by STM32. Is that really so? Does STM32 at any point sends "0x11" as response? I must be missing something...
I have a requirement to implement the BLE SPP protocol that will eventually be ported to the STM32WB1MCC module. Since I am totally new to BLE, I'd like a recommendation for a place to start. Specifically which demo or eval board and associated software. For example, is the NUCLEO-WB51CC the best (most supported and easily ported)?Thanks, Dave
This is coming from someone with very limited experience with BLE, so be patient in your response.I have a requirement for a device that will operate as a GATT Server emulating a UART to an external device (IOS or Android). On input from the user, this should be terminated and the device go into a BLE Advertising mode sending out data packets periodically. Similarly, the device must be able to revert back to the UART emulation mode.My search so far keeps leading me to the STM32WB1MMC as the production volume is low and this module provides the required certifications.First question: Can the STM32WB1MMC operate in these modes and switch between them?Second question: With the volumes of information I've read on ST's web site, can you point me to a evaluation platform and corresponding documentation to get started? (I am easily confused by all the reading!)Final question: Other than "RUN!" what advice would be of help for a starter?Thanks, Dave
Hi in an dual core stm32h7, if we use each iwdg for each cores, when iwdg trigger reset,it will reset the particular core or both the cores will reset.If particular core reset happens means, how to manage the other core from initial boot.Suppose if cm7 IWDG trigger reset, meanwhile cm4 is running on other side, during this time after cm7 reset we have to read the iwdg register, then perform nvic reset?If cm4 iwdg trigger reset, it will affect the other side running cm7 core. Regards,Srinath
Hello everyone,I wanted to ask you about a problem we are having with the combination of the STM32H7 chip and a 16-bit SDRAM memory, AS4C16M16SA.To give you some context, we are reading data from a sensor, a radar, which generates 18432 bytes per frame, and we have 47 frames. So, in each frame, we receive an IRQ and we start the process of reading the data via SPI and DMA. When the DMA has finished copying all the data to an external RAM buffer, we do a memcpy to a larger buffer (in the SDRAM) that collects all the frames.Then, once we have these 47 frames in the SDRAM, we simply copy them to the eMMC memory (configured as a FatFS) with the f_write command.This is where the problem arises: the data we get is not what we expected. Since it is radar data, we have an algorithm that returns images, and they do not match what we should be getting. The key is that we have the same system but with 8-bit data memory, and with this, the data we get is what we expected. The question is, is
Hello everyone,Working on the STM32U5G9ZJT6Q on a custom board.On STM32CubeProgrammer (V2.20), I face an unexpected issue when trying to program my board.The ST-Link (official, V3PWR, power not used) simply cannot communicate anymore with the mcu with BOOT0=0 (tied with gnd). The stlink isn't broken as it still works on other custom boards.Error: Unable to get core IDError: No STM32 target found! [...]With the USB and PH3 BOOT0=1 (tied to Vdd), I can erase the chip and program it, however, when trying to run the program, the mcu resets and gets back into the idle usb waiting mode.Here is the current consumption diagram without running after programming (left) and with running after programming (right). The base reset pattern for reference is the 3rd image. The run seems to trigger the reset and put it back to idle/wait for device at the bootloader base address.It's worth noting that with BOOT0=1, stlink still doesn't work. I tried all possibilities to communicate with th
Hi,I have been using OpenAMP on an STM32H755ZIT MCU recently but ran into an issue where the mcu would go into hard fault caused by a bus fault somewhere in virtio code. The issue occurs only after a while, after dozens of messages have successfully been passed in both directions.I haven't been able to exactly pinpoint the violation because i get an IMPRECISERR bus error and have not been able to disable write buffering (I tried with an MPU config which failed and the config register value from https://community.st.com/t5/stm32-mcus/how-to-debug-a-hardfault-on-an-arm-cortex-m-stm32/ta-p/672235, but that doesn't seem to exist on this mcu). I did seem to get the rough area of the fault with the stack trace which pointed me to `uint16_t vq_ring_add_buffer`. Because of the disassembly view and register state before the fault I think the error relates to a str in the 0x20010000-0x2001ffff memory region which is the DTCM memory region of the CM7 core according to the datasheet. This doe
Hello, I'm posting a new message because the previous one was not answered with successful connection. The problem is that when MCU is populated on my board with Read-Our Protection enabled, it is not possible to connect STM32CubeProgrammer v.2.21.0 to that MCU, it becomes a brick.This option was available in the version 2.0.0. that doesn't work on Windows 11.How can be done two step connection: 1) full erase and 2) connection ? Thanks,Alex
Hello ST Team,I am working with the B-G431B-ESC1 board using STM32G431CBU6 and the STM32 Motor Control SDK.On the evaluation board, Motor Pilot communicates with the target MCU through the on-board ST-LINK (STM32F103) using SWD and VCP.My question is:Is it possible to use STM Motor Pilot to communicate directly over UART with the STM32G431 (for example via an external USB-to-TTL adapter), without using the on-board or external ST-LINK?
STMicroelectronics Support Team,I am currently working on a project using the ST67W611M1 Wi-Fi module and I would like to request your technical support regarding a platform migration.I have successfully validated the ST67W611M1 using the STM32U575ZI-Q Nucleo board, running the test and reference applications provided in X-CUBE-ST67W61.With this setup, the NCP firmware, AT command interface, and Wi-Fi connectivity are all working as expected.My objective is now to migrate this implementation from the STM32U575ZI-Q (STM32U5 series) to an STM32G0B1RE, which will be the target MCU for the final product.Given the architectural differences between the STM32U5 and STM32G0 families (clock tree, peripherals, HAL configuration, and BSP adaptations), I would appreciate your guidance on the following points:Recommended procedure or reference examples for migrating the ST67W611M1 host firmware from STM32U5 to STM32G0Any known limitations or constraints when using the ST67W611M1 with the STM32G0 se
Hi,I need to implement the following behavior on a STM32WB55.Upon a command, device must advertise in 2 different modes:Just works. No bonding, connection is accepted without any authentication requirements. All characteristics can be read and written.Legacy pincode. No bonding, a fixed pincode shall be required by the host at every connection.To acheive that, I followed scrupulously the ST wiki & configured the following:aci_gap_set_io_capabilityaci_gap_set_authentication_requirementcharacteristic security permissionsI am able to have either one of the 2 scenarii, but I cannot switch dynamically from one another.The key difference resides in the security permission of each characteristic.With ATTR_PERMISSION_NONE, characteristics can be read & written without authentication (just works mode)With ATTR_PERMISSION_AUTHEN_READ | ATTR_PERMISSION_AUTHEN_WRITE, pincode is properly required at each connection.Unfortunately, I cannot switch dynamically between the 2.I tried the fo
Hi, in STM32H7 dual core, i have an example of data sharing between the core using ring buffer method, here when caches are enabled, the data sharing is not happening what will be the reason. when caches enabling lines are disabled data sharing is happening. ring buffer is placed in D3 SRAM regards. Srinath
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.