Join conversations with your peers and ST experts. Explore the full potential of STM32 microcontrollers for your embedded design.
Most recent activity
Split from https://community.st.com/t5/stm32-mcus-wireless/development-board-for-stm32wl5moc/td-p/795521 as this is a new question.Hi @STTwo-32 , I have ordered and received two B-WL5M-SUBG1 boards for my testing. I am able to flash one B-WL5M-SUBG1 board. When I am trying to flash the another B-WL5M-SUBG1 board, I am getting this below error. Seems like HW issue or something else? Could you please help me to rectify this issue?Looking for your valuable response :) .Thanks,Praba
Hi,I need to understand better how the "HAL_SAI_Receive_DMA(&hsai_BlockB1,ADC_Buffer,CodecBuffer_Size)" works.I've a codec connected to the SAI 1 of a STMH723 MPU and I implemented a Ping-Pong routine to acquire and send the data to the Codec; two Callback function swap the buffers:uint8_t ADC_Buffer[80000] __attribute__ ((aligned (4))); void HAL_SAI_RxCpltCallback(SAI_HandleTypeDef *hsai_BlockB1){adcp31=(q31_t *)&ADC_Buffer[BUFFER_SIZE_R/2];RxDataReady1=1;} void HAL_SAI_RxHalfCpltCallback(SAI_HandleTypeDef *hsai_BlockB1){adcp31=(q31_t *)&ADC_Buffer;dacp31=(q31_t *)&DAC_Buffer;RxDataReady=1;} If I write HAL_SAI_Receive_DMA(&hsai_BlockB1,ADC_Buffer,20000) what happens (in details) ? Thank you
Hello,i use a STM32G051K6 with LL Drivers and want to implement I2C. But all the time it sends Slave ID, 0x01, Byte 1, 2 and so on. Here i Call 0x38 Slave ID: And here all Data:And this my Code: LL_I2C_TransmitData8(I2C1, 0x00); LL_I2C_HandleTransfer(I2C1, 0x70, LL_I2C_ADDRSLAVE_7BIT, 3, LL_I2C_MODE_SOFTEND, LL_I2C_GENERATE_START_WRITE); LL_mDelay(1); for (int i = 0; i < 3; i++) { while (!LL_I2C_IsActiveFlag_TXE(I2C1)); // Wait until the data register is empty if (LL_I2C_IsActiveFlag_NACK(I2C1)) { // Check for NACK (Not Acknowledged) return 1; } LL_I2C_TransmitData8(I2C1, i+10); //temp[i]); // Transmit data byte LL_mDelay(1); LL_I2C_ClearFlag_TXE(I2C1); } LL_I2C_GenerateStopCondition(I2C1); LL_mDelay(1); LL_I2C_ClearFlag_STOP(I2C1);I Hope you can help me with this Topic :)BR rspecht
Hi,Has anyone used the STM32H750B-DK on-board eMMC, 4GB memory.I have been unable to find an example and it is a big job to write something from scratch.I am assuming that it would use the SDMMC1 peripheral in MMC 8 Bit mode and that you would need to port fatFs to it.I cannot find any detailed data sheet on the THGBMTG5D1LBAIL / THGBMDG5D1LBAIL chips to get the correct timing data etc. Does anyone know where to get a detailed sheet. All that is readily available is a data brief for promotional purposes.The parameter settings for the interface are pretty basic:So it shouldn't be too difficult, but any help would be appreciated. Kind RegardsRob
Hi everyone,I’m integrating the Honeywell MPRLS02.5BG0000SA pressure sensor via SPI with an STM32H753I-EVAL2 board and encountering some inconsistent behavior. Setup DetailsSensor: Honeywell MPRLS02.5BG0000SABreakout Board: Based on MPRLS0015PA0000SAB, but the sensor was manually replaced with the 02.5BG variantMCU: STM32H753I-EVAL2 (Cortex-M7)Interface: SPISPI Clock Speed: 50 kHz (as required by Honeywell for proper communication)Chip Select (CS): Manually toggled via custom GPIO (not using STM32’s hardware NSS)Power: 3.3V supply with decoupling capacitors and pull-ups as recommendedTools: Logic analyzer to validate SPI signals and sequencesPartial SuccessI can reliably communicate with the sensor only when I call __HAL_SPI_ENABLE() immediately before pulling CS low and starting the SPI transaction, and then drive CS high after the transaction ends.This workaround lets me receive pressure data occasionally.Inconsistent IssuesDespite partial communication success, I encounter the
Hi everyone,I'm having an issue with HSE bypass mode on the STM32G0B1RCT6 and hoping someone here has seen something similar.The HSE randomly won't start in bypass mode. I've tried two different oscillators - the S2D8.000000B20F30T and an OT32258MJBA4SL that I pulled from a working STM32F405RGT6 board where it runs without any problems.The behavior is inconsistent. Sometimes it starts up normally and then runs solid. Other times it just won't set the HSERDY flag. We've tried both toggling the NRST pin and resetting from code, but neither changes the state - if it's working, it stays working, and if it's not working, it stays not working. Only power cycling the entire board can change the state in either direction, sometimes making a non-working board work or making a working board stop working.On the scope, the signal from the oscillator is always visually fine.Any ideas or suggestions for debugging this would be helpful!
Hello, I'm using stm32u5 series MCU and I need help on below.1. System clock I've configured to 24Mhz and how do I set my ADC clock to sample at 20Khz2. Without DMA, single channel data collection I'm able to do but not able to do for multiple channels.
Hi,I'm trying to make a dynamic scroll graph such that the number of data points and x-axis scale changes when a user sets a value through a slider. The issue I'm running into is the inability to update the number of data points for when the graph scrolls (ie if scale is 30 min, then graph scrolls after 30 data points are added; if scale is 10 min, then graph scrolls after 10 data points are added). Using the slider below, the user is able to pick a number of minutes between 1 and 30. I already have it so that the slider changes the x-axis scaling and labeling: For example, if the slider changes the visible range to 10, the number of data points is still always set to 30. This causes the graph to not scroll until 30 data points have been plotted even if it's not shown on the graph. Is there a way to change the number of data points (max capacity) through code? One thing I tried is within the touchgfx framework, I went into the graph widget folder and edited the AbstractD
Occasionally after several hours our USBD CDC will get stuck in a state where "CDC_Transmit_FS" always returns "USBD_BUSY" due to the "TxState" flag never being cleared. During this time the USB IRQ "HAL_PCD_IRQHandler" is never called even though IRQs are still enabled. I am using "STM32Cube FW_F4 V1.25.2" but have tried copying "STM32Cube FW_F4 V1.28.2" with no luck. MCU is STM32F405RGT6. The only remedy is to reset USB by calling HAL_PCD_DeInit & HAL_PCD_Stop, then reinitializing with HAL_PCD_Init, USBD_Start, and MX_USB_DEVICE_Init. This issue can be recreated by attaching a UART (non-USB) to the board which seems to provide additional 5V power potentially causing a disturbance in the USB. Doing so recreates the issue fairly quickly, however this can also happen without UART attached after several hours. I also noticed that I can get into this state if I call CDC_Transmit_FS multiple times and bypass the "TxState" flag, eff
Hello,I’m working on a project using the STM32WB55 as a Zigbee Coordinator, and I want it to receive all broadcast requests sent over the Zigbee network (e.g., data broadcasts, match descriptor requests, etc.).Could you please guide me on:The necessary configuration settings to ensure the coordinator receives all broadcast messages.Which callback functions or filters I should register (e.g., at APS or ZDO level) to catch those broadcast packets.Any example code or recommended practices for parsing incoming broadcast frames.Thank you in advance!
Hello,I've noticed an issue when using the RTC to try to calculate subseconds. I am using the NUCLEO-U575ZI-Q board, with a new project with these settings:with this clock configuration: I've added this code to the while loop: /* Infinite loop */ /* USER CODE BEGIN WHILE */ RTC_TimeTypeDef last_time = {0}; int first = 1; while (1) { RTC_TimeTypeDef sTime = {0}; RTC_DateTypeDef sDate = {0}; do { HAL_RTC_GetTime(&hrtc, &sTime, RTC_FORMAT_BIN); HAL_RTC_GetDate(&hrtc, &sDate, RTC_FORMAT_BIN); } while (sTime.SubSeconds != hrtc.Instance->SSR); if (!first) { if (sTime.Seconds < last_time.Seconds) { HAL_Delay(1000); // Breakpoint 1 } else if (sTime.Seconds == last_time.Seconds && sTime.SubSeconds > last_time.SubSeconds) { HAL_Delay(1000); // Breakpoint 2 } } first = 0; last_time = sTime; HAL_Delay(100); /* USER CODE END WHILE */ /* USER CODE BEGIN 3 */ } /* USER CODE END 3 */The issue I am seeing is tha
Hello,We have a product that works well with the STM32U585AIIXQ rev X.In the latest batch, some boards have the STM32U585AIIXQ rev W, and the application no longer works (the power consumption is as expected).The application starts by transmitting some data over UART/I2C/SPI and refreshing the screen using TouchGFX before stopping.When the application halts, I can no longer access the MCU using ST-LINK in SWD mode (tested in both DEBUG and HOT PLUG modes).The application is based on ThreadX and utilizes analog functions, UART, I2C, SPI, DMA, USB, TouchGFX, GPIO, and PWM.I read the latest errata, but I didn't find anything that could explain the problem.I checked the electrical parts (power rails and reset) and observed nothing unexpected or unusual.The MCU is mounted on a dedicated board (all the other boards in the product are working as expected).When the code is compiled with -O3, it fails, but with -Og it seems to work (for more than a day). Does anyone at ST have more informa
After a debug session my nucleo-wl55jc1 dev kit cannot connect to my pc using cube programmer or cube ide. When i plug it in to my pc i get this error "The interface firmware FAILED to reset/halt the target MCU" in a text file. LED4 is permanently red. I have tried to hold the reset button and time it correctly as i assume the debug session bricked my device. However i have been unsuccessful. I've updated drivers and removed and re-installed all stm32 programs. I am able to update the st link firmware but nothing else. I have been trying for two days now and i cant seem to find the solution. Please assist. Thank you !
Hello, In our project we are planning to use STM32H743BIT6 uC, we are using USB for flashing the firmware and to download the logs, not at the same time, if we connect DM & DP lines from uC PA11 & PA12 pins to USB microAB connector DM & DP lines, will that be ok? Or any other HW support required? Which is the product section table for more clarity? Thanks in advance,
I've designed my first custom board using the STM32F412 microcontroller. I'm currently facing issues trying to flash the firmware via USB and USART boot modes, but nothing seems to be working.Here’s a summary of what I’ve tried and observed:Boot0 is pulled high, RESET is toggled manually.Tried both USB (DFU mode) and USART (USART2) flashing methods using STM32CubeProgrammer — no success.Verified power supply: VDD, VDDA, and VCAP voltages are as expected.Crystal (HSE) doesn't seem to be oscillating — no signal observed on the crystal pins using an oscilloscope.At this point, I suspect it could be a hardware issue (clock or pin config), but I’d really appreciate help on how to debug this further.What’s the best way to confirm if the HSE is working?Any tips to verify if the chip is actually entering system bootloader mode?
I am currently working on interfacing a 2.83-inch TFT display (320x240 resolution) with the STM32U5F7VJT6 microcontroller using the FMC parallel 8080 interface. I have successfully configured the FMC in STM32CubeMX with the following settings: Mode Configuration: NOR Flash/PSRAM/SRAM/ROM/LCD1 Chip Select: NE1 Memory Type: LCD Interface LCD Register Select: A16 Data Width: 16 bits After generating the code, I utilized the ST7789 driver to fill the screen with solid colors using the function ST7789H2_FillRect(0, 0, 320, 240, 0xFFFF);, which worked as expected. Subsequently, I aimed to integrate TouchGFX to enhance the graphical interface. I configured TouchGFX accordingly, added an image using ApplicationTemplate.touchgfx.part, generated the code, and flashed it to the device. However, the image does not appear on the TFT display. I would appreciate your guidance on the following: TouchGFX Integration: Are there specific steps or conf
Hi,is the STM32F103RET5 can be damage, when boot0 short to PB7 or PB8 by oscilloscope probe for short time?After I fix the board the STM32F103RET5 work ok.is boot0 in float is 3.3v?is 32kHz input short to input 8MHz can cause damage to STM32F103RET5?Thank you.
Good morning,I would like to request support regarding the programming and debugging of the STM32U031C8U6 microcontroller. It is mounted on a custom-designed board, and I am experiencing issues connecting to the microcontroller via SWD for programming and/or debugging using an ST-LinkV3 updated to the latest version (V3.J16.M8.B5.S1), with STM32CubeProgrammer and STM32CubeIDE. The microcontroller is never detected.Note: With the ST-LinkV2 programmer, I am able to perform both programming and debugging without issues using the same software tools. Many thanks in advance to anyone who can help me!
Hello,Our project with TouchGFX uses a version control system (git, of course). In your documentation, you recommend the `config`directory to be included in the VCS. The pain point is that `TouchGFXEnvPath` tag in `config\msvs\Application.props` contains the 'TouchGFX Designer' installation path and might change from a developer to another. I don't know if `config\gcc` should be versioned, but I think that `config\msvs` should not. Am I missing something ?Thank you
Hi,I have TouchGFX project for MDK-ARM V5.27 toolchain. I am using TouchGFX Designer 4.25. In Keil project, I have added some additional Include paths. When I need to do some change in GUI and I re-generate code from TouchGFX Designer, IncludePaths in Keil project (uvprojx) are modified in a way that the same paths are added 3 or 4 times.For example, before re-generating TouchGFX project there is 10 paths which every path is just once here (as I manually delete duplicities). After code generation from TouchGFX Designer, there is 35 paths and some of them are here 4 times, after another regen it´s 60 paths, some of them 8 times ...Project is compileable, so it´s not problem in this way, but:it makes includePaths really messy there is change in commit which is badly readable, and it´s absolutely uselessproject file size is growingI have tried to find some pattern in that, but I absolutely have no clue why it happens. Definitely, I have some problem in project. But I would like to as
Hello TeamI'm facing below error in STM32CubeIDE while compiling the source code in "Release" mode:"Unable to Generate Command Line in STM32CubeIDE" And it's getting stuck at below point:# Each subdirectory must supply rules for building sources it contributesSrc/%.o Src/%.su Src/%.cyclo: ../Src/%.c Src/subdir.mk$(error unable to generate command line)Issue snap as below: Further I disabled the "Cyclomatic complexity" setting as well to resolve this issue, but not get any success: So could you please support in this case.- regards
Hello,My agenda is to work with ADC1 with STOP2 mode.Using LPTIMER1 to wakeup system, from STOP2 mode and once wakeup then reinit adc, calibrate and start adc interrupt. but still I can see adc interrupt not called.void handleConversion() { ReInit_ADC1(); HAL_ADCEx_Calibration_Start(&hadc_); HAL_StatusTypeDef status = HAL_ADC_Start_IT(&hadc1); if (status != HAL_OK) { HAL_GPIO_TogglePin(GPIOA, GPIO_PIN_5); } // LED toggle if we put out of IF statement, so interrupt is register successfully. } void HAL_ADC_ConvCpltCallback(ADC_HandleTypeDef *hadc) { __IO uint16_t adcRawValue = HAL_ADC_GetValue(hadc); uint16_t adcVoltage_mVolt = __LL_ADC_CALC_DATA_TO_VOLTAGE(VDDA_APPLI, adcRawValue, LL_ADC_RESOLUTION_12B); InternalBatteryDriver::setVoltageCallback(adcVoltage_mVolt); // HAL_GPIO_TogglePin(GPIOA, GPIO_PIN_5); scheduler_push_event(EVENT_ADC_CONVERSION_COMPLETE); } //Here as final result, trying to glow LED which is not blinkingand here is the ADC_Init code for referenc
Hello everyone,I'm completely stuck and could really use some help.I’ve been trying to integrate TouchGFX into my project and wanted to set up this example: https://github.com/maudeve-it/ILI9XXX-XPT2046-STM32 which provides functions to handle SPI-based TFT LED touch displays (480x320 or 320x240) controlled by an ILI9488 or ILI9341 + XPT2046.However, I'm facing issues getting it to work on my Nucleo H755ZIQ board. I’ve added TouchGFX to my project but can't seem to make any progress.Any guidance would be greatly appreciated!It looks like STM32CubeMX is creating the correct folder structure.Now I'm getting 64 fatal errors.I also tried generating a TouchGFX GUI code, and now I'm getting this error.I tried solving it as described here: https://community.st.com/t5/stm32-mcus-touchgfx-and-gui/cannot-build-project-with-cubeide-undefined-reference-to/td-p/699214The project has already been converted to C++.I have also added all the FolderI keep getting the same errors. I woul
I have successfully used dynamicBitmapCreateExternal() with RGB888 on another project but on a different project this causes a hard fault when the bitmap is used to render an image to the display when RGB565 is used. I have been able to change the parameter to RGB888 and it works but of course since the image loaded is RGB565 it is not formatted correctly on the display...but it proves that works with the only difference being the RGB565 entered for the format parameter...FrontendApplication::FrontendApplication(Model& m, FrontendHeap& heap) : FrontendApplicationBase(m, heap) { /* * Initialize dynamic bitmap cache; * bookkeeping memory for external bitmaps not stored in cache */ uint16_t* const cacheStartAddr = (uint16_t*)myBmpCache; const uint32_t cacheSize = sizeof(myBmpCache); Bitmap::setCache(cacheStartAddr, cacheSize, 1); void* srcPtr = logoGetImagePtr(); BitmapId bmpId = Bitmap::dynamicBitmapCreateExternal(LCD_X_Size, LCD_Y_Size, srcPtr, Bitmap::RG
Hi,I have STM32H753IITx + OV5640 + W9812G6KH-6 + SD Card on SPI, on a self made custom board.I objective is to capture static image with camera and store it on a SD card. I have tested this setup in three situations:1. By not using Ext RAM and using small resolution to fit the image in internal RAM, this setup works fine and i am able to write the image to SD card. 2. Writing some data manually on Ext RAM which looks fine on memory monitor window.3. When i try to use the Ext RAM with DCMI, some data gets written to Ext RAM but code never finds the jpeg start bytes i.e FF D9. Going step by step so i have kept everything else same even the resolution.This is how buffers are defined:Internal RAM: __attribute__((section(".ram_d1"))) uint8_t jpeg_data_buf[JPEG_BUF_SIZE_MAX]; // Store internal ramExternal RAM:__attribute__((section(".sdram_data"))) uint8_t jpeg_data_buf[JPEG_BUF_SIZE_MAX]; // Store ext ram Flash.ld file snip: (Modified).sdram_data(NOLOAD) :{. = ALIGN(32)
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.