Join conversations with your peers and ST experts. Explore the full potential of STM32 microcontrollers for your embedded design.
Most recent activity
Hello, We use STM32H755 with a 25MHz crystal oscillator connected to OSC32_IN and OSC32_OUT OSC_IN and OSC_OUT pins. Probed on the bench, I see a sine wave with a DC offset and low amplitude. Can you comment if the attached waveform looks okay? My expectation was that the sine wave would swing from 0V to around 3.3V, and that there should be no added DC offset. Thanks!
Hi,I´ve a application (with RTOS) where I do a FW update via the internal UART bootloader (BOOT0 pin method).After flashing is finished I set the Boot0 to GND and toggle the reset pin. The application starts, but I don´t get USART interrupts any more.After Power cycle interrupts are working again.Any idea?Best regards,Achim
I configured dual DAC synchronous sampling,DMA is in normal mode for data transfer.When the timer frequency of the ADC is 10KHz, the main cycle can print serial port information, but when the timer frequency is 50KHz, the main cycle does not print ADC data information. What is the reason for this? Below is my cubemx software configuration and related code. int main()CallBack: ADC DMA NVIC
Dear Community, i got two interconnected questions, as i want to build a measurement system that measures and generates sine signals and multi-sine signals with frequencies of up to 1 MHz. For this task i would like to have 10MSPS DAC and ADC acquisition. I thought about multiple ways of doing it and would like to hear your thoughts:Just do it all in analog and build a simple lock in amplifier and use an external signal generator icThis would be the method i am currently using but it is fairly limited as it can only generate one frequency at a time or i would have to scale up the analog side.Use the build in ADCs and DACs to generate and measure the signals. The ADC of the G474 is 4MSPS at max res. would be < 8MSPS in alternating trigger mode.Could i use the HRTIM to trigger all ADCs alternating to generate even higher sampling rates?Would the DMA be able to handle that? Do i tie all pins together or give everyone a separate opamp to circumvent sampling no
LTDC prevents CPU (of my MCU) from going into sleep mode. When i deactivate the LTDC clock, the CPU goes to sleep mode. LTDC interrupt is enabled trough IOC, without enabling of LTDC interrupt, screen remains black. I use the following MCU: STM32L4P5ZGT6P, IDE: STM32CubeIDE 1.11.2. Does someone know why this happens? An extract of my code:/* Clock of used hardwares on MCU is deactivated. */ __HAL_RCC_DMA1_CLK_DISABLE(); __HAL_RCC_I2C1_CLK_DISABLE(); __HAL_RCC_OSPI2_CLK_DISABLE(); __HAL_RCC_TIM6_CLK_DISABLE(); __HAL_RCC_TIM2_CLK_DISABLE(); __HAL_RCC_TIM3_CLK_DISABLE(); __HAL_RCC_USART2_CLK_DISABLE(); __HAL_RCC_UART4_CLK_DISABLE(); __HAL_RCC_UART5_CLK_DISABLE(); /*Suspend Tick increment to prevent wakeup by Systick interrupt. Otherwise the Systick interrupt will wake up the device within 1ms (HAL time base)*/ HAL_SuspendTick(); //CPU shall enter sleep mode after this instruction HAL_PWR_EnterSLEEPMode(PWR_MAINREGULATOR_ON, PWR_SLEEPENTRY_WFE); HAL_ResumeTick(); //Once HAL_R
Hello,I am currently using a X-NUCLEO-GFX01M2 screen to display logs from a NUCLEO-STM32WL55JC board. Unfortunately, it is quite slow to display the logs, so I wanted to improve the SPI frequency. I tested it by lowering the SPI BaudRatePrescaler from the nucleo board, but below 16, I noticed no improvements. When measuring the SPI clock, there is no improvement above roughly 3 MHz.How can I improve the SPI link? Moreover, there is nothing related to the max SPI frequency in any X-NUCLEO-GFX01M2 documentation. What is the max frequency the GFX01M2 screen can support? Regards,Sacha
I started with the STM32F469I-DISCO which always places the screen in portrait mode (480x800).Is there a way to change that to landscape mode (800x480) at the start of the design process?It would be much simpler to design that way than to have to rotate it after the fact.Thanks
I have been using the STM32H753ZI100_24 for getting pressure data from the MS5611-01BA03 mems sensor. The debugger stops at SystemClock_Config() function in the code of reading prom registers from the MS5611-01BA03 sensor as per the datasheet Barometre datasheet int main(void) { /* USER CODE BEGIN 1 */ /* USER CODE END 1 */ /* MPU Configuration--------------------------------------------------------*/ MPU_Config(); /* MCU Configuration--------------------------------------------------------*/ /* Reset of all peripherals, Initializes the Flash interface and the Systick. */ HAL_Init(); /* USER CODE BEGIN Init */ /* USER CODE END Init */ /* Configure the system clock */ SystemClock_Config(); /* USER CODE BEGIN SysInit */ /* USER CODE END SysInit */ /* Initialize all configured peripherals */ MX_GPIO_Init(); MX_SPI1_Init(); /* USER CODE BEGIN 2 */ uint16_t prom[8] = {0}; uint8_t rst_cmd = 0x1E; // Reset command HAL_GPIO_WritePin(GPIOD, GPIO_
Hi,We have a customized board with STM32F103, it measures water level and sends the data to a server, and then enters into Standby mode for 1 minute after setting up a RTC alarm for wakeup. Occasionally, we see wakeup failures. This happens randomly, it could be once after running for thousands of minutes, or could be once for hundreds of minutes.Any ideas ? And is there any way to check the reason why it happens?Any replies would be highly appreciated.Chao
Hi I am working on a project with STM32H730IBK6Q and STM32Cube IDE 1.16I am trying to use PA0_C as a GPIO, but the GPIO function is not connecting properly. PA0 is used an ADC, not as a GPIO, so from how I understand muxing there should be no conflict. But when I try to use PA0_C it reads a static value, even after I confirm connectivity. How do I properly configure my project to use PA0_C as a gpio? From the datasheet I got this cryptic instruction:Analog switch between ports Pxy_C and Pxy PA0_C, PA1_C, PC2_C and PC3_C can be connected internally to PA0, PA1, PC2 and PC3, respectively (refer to SYSCFG_PMCR register in RM0468 reference manual). The switch is controlled by VDDSWITCH voltage level. It is defined through BOOSTVDDSEL bit of SYSCFG_PMCR. If the switch is closed the switch characteristics are given in the table below.But nothing about what VDDSwitch is connected to physically or how to activate the pin properly in MX. CubeMX doesn't throw any er
Hi ST Community, I’m working on a secure boot implementation for the STM32U3 series and need to replace the factory ROM bootloader with my custom secure bootloader. Here’s what I’d like to clarify: Can We Fully Remove the Factory Bootloader?The STM32U3’s ROM bootloader (System Memory) is in masked ROM, so is it even possible to erase or disable it completely?If not, what’s the most secure way to bypass it and ensure the MCU always boots from my custom bootloader in Flash?
Hello,I am using STM32G0B1cbt6. And I am using native bootloader to update firmware. But in some boards not able to update firmware, it is giving below error:And when we replaced the MCU then bootloader started working normally. The failure percentage is like out of 100, in 5 to 10 MCUs we are facing problem. What could be the reason? And how it can be resolved?This is a custom board.I am attaching the schematic below. Which running on standard 3.3V supply. Is there any way to check if the bootloader is corrupted and if corrupted is there any way to reprogram it? I have tried the below methods and no resolution found.Remount same MCU: Some started working, some not workingReplaced new MCU: Some started working, some not workingBoot 0 pin HIGH at startup: Some started working, some not workingBoot 0 pin LOW at startup: Some started working, some not workingNRST pull up resistor removed: Some started working, some not workingConnected ST Link programmer and trie
hiby this code click event enable for 2 Continer and work fine void CNTR_A_ClickHandler(const CNTR_AntenaLevel&, const touchgfx::ClickEvent& e); touchgfx::Callback<MainView, const CNTR_AntenaLevel&, const touchgfx::ClickEvent&> CNTR_A_ClickedCallback; CNTR_AntenaLevel1.setClickAction(CNTR_A_ClickedCallback); // ******************************* void CNTR_B_ClickHandler(const CNTR_TempLevel&, const touchgfx::ClickEvent& e); touchgfx::Callback<MainView, const CNTR_TempLevel&, const touchgfx::ClickEvent&> CNTR_B_ClickedCallback; CNTR_TempLevel1.setClickAction(CNTR_B_ClickedCallback); but i have 14 Container in this method i have to add many code line for each container for "Click Event". is it possible use one container Clicked Callback for multi type of container?
Hello ST community,Just thought of buying NUCLEO-WL33CC1 for development of flight telemetry. But I have few doubts before buying.1. What is the radio coverage distance with the default antenna that comes along with the kit? Assuming the test area is urban.2. Whether the range can be extended more with a different antenna to cover about 2km. Has anyone tried it?Thanks,Karthic V
Hi all,I'm having trouble getting reliable SPI communication using the STM32N6570-DK board. I'm using SPI5 with DMA, but the data I receive is only correct about 50% of the time.I'm expecting to receive the value 1025, but often get corrupted values like 1024, 512, or 256. However, on the oscilloscope, the SPI signal is always correct—it doesn't vary between good and bad reads.I've already taken steps to avoid cache issues by placing the DMA buffers in a non-cacheable memory region:__attribute__((section(".noncacheable"))) static uint8_t spi_tx_buf[IO_CHUNK_SIZE]; __attribute__((section(".noncacheable"))) static uint8_t spi_rx_buf[IO_CHUNK_SIZE];My MPU configuration for this region is as follows:/** * @brief Configure the MPU attributes for the non-cacheable RAM section. * @note This function should be called before enabling the caches. */ static void MPU_Config_NOCACHE(void) { MPU_Region_InitTypeDef MPU_InitStruct = {0}; /* Make sure the address is aligned to the region size */
I am working on B-L4S5I-IOT1A board, and trying to connect the STSAFE A110 chip, with the reference of L476RGTx LQFP64 board's examples provided by stm. and getting below error's 1. pairing .. STSAFE-A1xx initialized successfully Pairing demonstration:1. Check host keys presence through STSAFE-A1x0 2. Key - Pair generation... Key pair generation demonstration:1. Generate key pair through STSAFE-A's private key slot 1=> Use StSafeA_GenerateKeyPair API2. Signature verification result (0 means success): 1 Will you please provide me the proper examples related to my board also the IOC file for settings, See i have attached zip files of pairing and key pair generationexample setup for my board, check once and resolve the issues...
I am beginner in using STM32 boards I am working with stm32f411re board with that I will use sim900a gsm module for internet connectivity and then mqtt protocol to send data to AWS cloud. So, when I am using paho mqtt library paho.mqtt.embedded-c/MQTTClient/samples at master · eclipse-paho/paho.mqtt.embedded-c I am getting errors related to socket,mutex,semaphore so confused which library to use can anyone help me in selecting and integrating mqtt library. Thanks in advance for help.
Hey friends,Until yesterday, my custom board with the STM32H753ZI100_24 MCU—connected to an IMU sensor, magnetometer, and barometric sensor via SPI—was detected successfully by STM32CubeIDE. But today, when I came to the office, I’m unable to initialize the ST-Link device, which I used to program the board through Vaap, GND, SDIO and SWCLK pins in the st-link.Here are the steps I’ve tried so far:Restarted my Linux PCRemoved all power from the board and the ST-Link V2, checked the connection and then reconnected everythingConnected the ST-Link to another STM32 MCU on the same board, and it works fineVerified 3.2 V power supply to the MCU with a multimeter which is needed for mcu to power up.Despite this, I still can’t get the ST-Link to detect the board. Could this be caused by something in the last code I flashed, or is it likely a hardware issue?Any advice or suggestions would be greatly appreciated!Thanks in advance.
It have a new project with LCD(4.3' RGB:480*272) and touch panel, To drive this LCD and touch panel, i will select STM32H750VBT6 to develop , Whether can the TouchGFX support this MCU or not ?
Hello, I am a beginner following this official ST tutorial: https://www.youtube.com/playlist?list=PLnMKNibPkDnFPqEmJAwEjsSS8MOQZHRNF I am trying to assign specific GPIO pins (for a BUTTONs and an LEDs) to a specific core. However, when I right-click a pin in the Pinout & Configuration view, the "Pin Reservation" option is missing from the context menu. Could you please help me understand what configuration is needed to enable this feature? My Setup: MCU: STM32WL55JCIx Firmware Package: STM32Cube FW_WL V1.3.1 IDE: STM32CubeIDE I have attached a screenshot. Thank you in advance for your help.
There's nothing in the manual which tells you which pin is source, and which is load! PS:Even the schematic doesn't help!
USB HID Endpoint Size Challenge - My Experience Issue Description I'm experiencing an issue with USB HID endpoint sizes in my firmware running on an STM32U5 microcontroller with ThreadX RTOS and USBX middleware. Specifically: My host is sending 20-byte messages (1 byte report ID + 1 byte page number + 18 bytes of data) I've tried setting the endpoint maximum packet size (USBD_HID_CUSTOM_EPOUT_HS_MPS and USBD_HID_CUSTOM_EPOUT_FS_MPS) to 24U and 32U, but neither worked Only a 16-byte endpoint size works with my hardware, which creates a mismatch with my 20-byte report size Most importantly, my USBD_Custom_HID_SetReport callback function does not get called at all when using 24U or 32U endpoint sizes Technical Details Hardware Platform: STM32U5 series microcontroller RTOS: ThreadX USB Stack: USBX middleware USB Class: Device HID Custom Class Report Size: 20 bytes (defined in HID report descriptor) Working Endpoint Size: 16 bytes Non-working Endpoint Sizes
I'm trying to get the DMA engine to trigger transfers on TIM8_CH1 (DMA Request Mapping: Channel 7, Stream 2). However, it's not working. I verified that the TIM8_CC1 looked good by driving it to an alternate function output. Then, all I changed was the DMA Request Mapping stream number: Channel 7, Stream 3, to select TIM8_CH2, and setup TIM8_CC2 instead of TIM8_CC1. Surprisingly this worked, and DMA is running as expected. I then setup both TIM8_CC1 and TIM8_CC2 with the same settings, routed both to GPIO pins using alternate function outputs, and looked at both signals on an oscope: They are completely identical. The only difference is setting up the DMA for TIM8_CH1 (stream 2) vs TIM8_CH2 (stream 3). For whatever reason, TIM8_CH1 (stream 2) doesn't work even though TIM8_CC1 is running. Any ideas?
Hello everyone, I'm currently working on several projects on STM32Cube IDE with each of them implementing the different low-power modes available on the Nucleo-WL55JC1 board (Sleep, LPR, LPS, STOP0-1-2, Standby and Shutdown).For each of them, I followed some of the tutorials already made on other boards/CPUs online, such as the ST wiki page on PWR, in order to know which HAL functions and specific configurations should I look for. Even for small tips such as masking interrupts or configuring all unused GPIOs pins to Analog mode. Everything was fine, until I arrived to the STOP0 mode. To demonstrate any sleep mode, I'm usually trying to make the MCU go to sleep before waking it up with a button (waiting for an interrupt) and making blink some LEDs to testify the MCU has indeed woken up. To measure the current consumption, I am using the Otii software solution. After downloading the code to the board, I use the Otii module as an external 3.3V power supply. Of course, I thoroughly check t
I'm working on some code that has a boot loader and an application. At the moment I am using one linker script for each, which means I have to make sure I keep them in sync. Is it possible to configure the build for (e.g.) the boot loader so that .boottext is used instead of .text for the code so that a single linker file can be used?I've tried searching (here and internet) and it appears as if this can't be done with GCC - but I thought it was worth asking just in case I've missed something.
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.