Join conversations with your peers and ST experts. Explore the full potential of STM32 microcontrollers for your embedded design.
Most recent activity
Hello, I'm using the STM32N6570-DK board.I completed the TOUCHGFX project through this URL, and there was a DEBUG problem while I was making CUBEMX and CUBEIDE operating it.(https://community.st.com/t5/stm32-mcus/how-to-debug-stm32n6-touchgfx-applications-using-stm32cubeide/ta-p/845901)I'm not moving from FSBL to APPLI. I'm asking for your help on this part.Please check.
Hi, I tried to configure the USB Host for a project, but it’s difficult to configure, and I am not finding any online support available for the STM32H5 series controller.My requirement: I configured PB4 as an output, which is connected to a green LED. Whenever I plug the USB into my controller, the green light turns on, and whenever I remove the USB from the controller, the green light turns off.I’ve tried some methods, but they are not working. Can anyone please help me?
I have been using a STM32F469i Disco board to interface with a 800x800 LCD in MIPI DSI video burst mode. In order for this to work from the DISCO board, I have an adapter PCB to connect from the DISCO board to the LCD.It took a while to get going, but the setup with the custom LCD and DISCO board is working fine.I have recently moved to a custom board; I have intentionally made the video dependent aspects of this board the same as the disco board so that I can run my software on either the disco or the custom board without making any changes.The custom board sometimes exhibits odd behaviour when rendering from the SDRAM via the LTDC.Enabling the test colour bars from the DSI always display ok without any problem.From SDRAM/LTDC, the horizontal start point shifts from the left side of the display to some arbitrary location across the width of the display. This occurs randomly, it can be running for hours and remain stable, other times it may shift once, then be stable for a time and may
What is recommended way to change or override the 'SYSTEM_CLOCK' symbol defined in 'tx_initialize_low_level.S' , that feeds into the threadX systick period calculation? I could change the SysTick after threadX is started -- that is probably the easist fix. I dont want to modify the threadX submodule in my project, as its pulled from the internet at some pinned version. I've currently made a local copy of 'tx_initialize_low_level.S', and then I use CMake to select that particular S file - so that solves the problem, but I dont like having a personal copy of a file from the submodule. After experimenting for some time, and then scouring the web, I cant find any suggestions on this issue, there are some changes that can be imported via having your own 'tx_user.h' -- but I cant see anything that can override the SYSTEM_CLOCK. Cheers, Nick
Hello. Have some issues with MCU ADC configuration and data.Hardware: - MCU: STM32G473MET3 &
Hello :My project use physical buttons and no touch screen.Can I bind physical buttons to repeat buttons? So I don't have to realise it myself.
Hello, I have come across an issue with the RTC in my project. In my project I am using the following:- MCU:- STM32H743IIT6 IDE version:- 1.19.0 SDK version:- 1.12.1 I will discuss the issue here, I wrote a program that uses the RTC and print the current time and I tested it straight for 72 hours, what I noticed since the second day that there was a constant drift in time, which kept on changing, and on the last day I observed that there was a total drift of 13 seconds since I started the test. This drift is really concerning for the product that we have made, and that product is already out for field operations. This issue was earlier reported and a ticket was created on ST's online support forum the ticket id is 00255958. They replied to the issue that was reported and asked us to perform the test that I described above, and report this issue over here at ST Community. Please do reply to this message if anyone has any solution for this issue. It is a matter of urgency I a
I created a GUI with TouchGFX, enabled UART and created a custom task in freeRTOS in STMCubeMX. When running the code the display is just blank when I add this code inside of my custom taskif(xQueueReceive(queueHandle, &message, 0) == pdPASS) { printf("Message received"); }If I comment this code out the gui displays. However, I found something interesting that if I debug and set a breakpoint at the for(;;) loop statement on line 729 in main in the UART_Task and another breakpoint on the print message and then press play to continue, the GUI displays and when I tap a button on my GUI I get to the breakpoint on the printf message which is exactly what I'm trying to do and it works perfectly. I'm not sure why it works when I first breakpoint there, but won't work just loading the program onto the board. Here is the main code/* USER CODE BEGIN Header */ /** ****************************************************************************** * @file : main.c * @bri
I have a NUCLEO-F103RB (MB1136 rev C05). My goal is to remove the ST-LINK and power via a hat supplying 3.3v. For the 3.3v I have: Moved JP5 to pins 2-3. Checked JP1 is removed. Removed SB2 zero ohm resistor. Removed SB12 zero ohm resistor. Verified my shield is putting out a good 3.3v which is attached to connector CN7 pin 16. For the HSE I have: Removed SB54 and SB55. Soldered zero ohm resistors to R35 and R37. Soldered 20pf capacitors to C33 and C34. Removed SB16. Removed SB50. Added 8Mhz 16pf crystal X3. The ST-LINK is still physically attached at the moment, but I do plan to cut it off once things are working. The board comes up and accepts programming and works in the debugger. Stepping through the initialization it gets to where the HSE is set up and then sits in an infinite loop waiting for the HSE to come ready. I tried replacing the crystal X3 just in case I got a bad one but there was no change in behavior. The clock config is unchanged, other than setting HSE to "crysta
HI, I'm capturing image as RGB565 using camera over DCMI on DMA. Capturing is complete and data is available. Now I need it to convert into JPEG format. But, the JPEG in/out DMA is not working. Any help will be appreciated. snippet: MX_DCMIQueue_Config(); HAL_DMAEx_List_LinkQ(&handle_GPDMA1_Channel12, &DCMIQueue); __HAL_LINKDMA(&hdcmi, DMA_Handle, handle_GPDMA1_Channel12); MX_JPEGInQueue_Config(); HAL_DMAEx_List_LinkQ(&handle_GPDMA1_Channel13, &JPEGInQueue); __HAL_LINKDMA(&hjpeg, hdmain, handle_GPDMA1_Channel13); MX_JPEGOutQueue_Config(); HAL_DMAEx_List_LinkQ(&handle_GPDMA1_Channel14, &JPEGOutQueue); __HAL_LINKDMA(&hjpeg, hdmaout, handle_GPDMA1_Channel14); Thatnks-Shubhendu Using following:1. STM32CubeIDE, Version: 1.16.12. MCU: STM32U5G9BJYXQ3. Camera: OV7725 @devjeet-adben
Hi,I am currently developing a small application with a STM32U5 where I write a few bytes into flash using HAL_FLASH_Program(). All seems to work fine. Except I can only read the data back after I do a reset. I suspect that DCACHE is playing a trick on me? But I am not sure how to invalidate the DCache (preferably only for a small section)SCB_InvalidateDCache();Seems to have some problems on the STM32U5? At least, I was unable to include the prober h-file w/o getting tons of errors. What is the new strategy for cache invalidation? Thanks,Juergen
Hello, I’m having a problem with a board I’m developing based on the STM32H747BIT6. The issue is related to SPI communication. When I connect any device to the SPI bus, the signal level drops from 3.3 V to around 1.5 V. I have tested different SPI peripherals, but they all show the same behavior. Could this be related to the drive strength or power capability of a specific pin?
Hi all, I have a small issue with the STM32N6570-DK board and the VENC_SDCard example code. The PN12 pin has a voltage of 0V (card inserted) or 1.80V (no card inserted); on the MCU side, the GPION data register (IDR) always shows a logic 0 in both situations. The VENC_SDCard / VENC_SDCard_ThreadX example code basically jumps over SD Card detection as it assumes a logic level of 0 == card present. If there is no card, mounting fails and aborts further processing. I have the requirement to react to card inserts / removals, so I'd like to trigger an interrupt or at least be able to read a logic high once in a while but could not find out what exactly is missing in the code. * I tested with an empty CubeMX project and set this PN12 to input; here I do see logic level changes. * I susptected the VDDIO voltage domains to be at 3V3 for that block and manually switched VDDIO_SD to be at 1V8, but that did not show a change as well * I did not fiddle with security bit settings... may
Good day folks,I have the DCMI camera interface on a STM32N6 streaming to the SDCard, and I am noticing that there are cases that the DCMI reports an Overrun when a SD access occurs at the same time that the Hsync interrupt was meant to occur.Digging into it I believe its due to congestion on the underlying AXI bus, and the IDMA of the SDMMC taking priority over the DCMI DMA. I have set the DCMI and its DMA to the highest possible priority as below. HAL_NVIC_SetPriority(GPDMA1_Channel12_IRQn, 0, 0); HAL_NVIC_EnableIRQ(GPDMA1_Channel12_IRQn); HAL_NVIC_SetPriority(DCMI_PSSI_IRQn, 0, 0); HAL_NVIC_EnableIRQ(DCMI_PSSI_IRQn); HAL_NVIC_SetPriority(SDMMC1_IRQn, 5, 5); HAL_NVIC_EnableIRQ(SDMMC1_IRQn); gpdma_dcmi.Instance = GPDMA1_Channel12; gpdma_dcmi.Init.Request = GPDMA1_REQUEST_DCMI_PSSI; gpdma_dcmi.Init.BlkHWRequest = DMA_BREQ_SINGLE_BURST; gpdma_dcmi.Init.Direction = DMA_PERIPH_TO_MEMORY; gpdma_dcmi.Init.SrcInc = DMA_SINC_FIXED; gpdma_dcmi.Init.DestInc = DMA_DINC_INCREMENTED;
Hello,In my project, I want to hold boot params in BKPSRAM so "Application project" can also write and read this section easily. If boot is needed, "Application project" will set boot params as required and after that it will use "NVIC_System_Reset".Therefore, I tried to write and read some parameters in this area. I can see the datas is written successfully in "BKPSRAM_BASE_S" section while debugging but when I restart the debug session, BKPSRAM section is all fill with zeros. I know that I am missing something but did not find it. - STM32N655 custom board. #define BKP_SRAM_START_ADDRESS ((uint32_t)BKPSRAM_BASE_S) #define BOOT_PARAMS_PTR ((BootParameters_t*)BKP_SRAM_START_ADDRESS) /* USER CODE BEGIN Init */ __HAL_RCC_PWR_CLK_ENABLE(); __HAL_RCC_RAMCFG_CLK_ENABLE(); __HAL_RCC_BKPSRAM_MEM_CLK_ENABLE(); HAL_PWR_EnableBkUpAccess(); HAL_PWREx_EnableBkupRAMRetention(); /* USER CODE END Init */ /* Configure the system clock */ SystemClock_Config(); /* Configure the per
Hello ST Community,My name is Gorakhnath. I am currently pursuing M.Tech (Power Electronics and Drives) at NIT Kurukshetra. I am using the STM32F4DISCOVERY (STM32F407VGT) board and I need stable DAC outputs for my hardware application.What I need (requirement)When the DAC command is 0 V, I need the output to be as close as possible to true 0.0000 V, because my external circuit maps:0 V → 0 A3 V → 50 AEven a small voltage like 0.045–0.05 V produces unwanted current (~0.5 A) in my system.Issue / ObservationOn both DAC pins:PA4 (DAC_OUT1)PA5 (DAC_OUT2)I measure about:~0.05 V (sometimes ~0.045 V) when the command is 0 VThis happens even when I am not sending any command from LabVIEW, or when I send 0,0.What I tried (software checks)Set DAC values to 0 using HAL on both channels:HAL_DAC_SetValue(..., 0) for DAC channel 1 and channel 2Forced PA4/PA5 to GPIO output LOW when command is 0 V:Configured PA4/PA5 as GPIO_MODE_OUTPUT_PP and wrote&nbs
Hello,I got a radio MCU which connects to cloud and can receive binaries from database. And I got a STM32 that controls some stuff, including other MCUs. In production this means a lot of headers and programming time for all of them, no way to update remotely, and even if the code is thoroughly tested - glitches are still possible.So I want to connect things in a chain, so that if something apart from the radio crashes - radio MCU could re-flash the whole system. This of course could be done with UART when using bootloaders, but this again means you have to pre-program bootloaders on MCUs, and there's still a very slim chance it might fail.So I need an example of how one MCU can flash another via JTAG or SWD (preferably), and then verify the result. From there I could get it to work on Arduino / STM / AVR / radio ARM. What I really want is a proof of concept simple test example to show it works with the peripheral (bit banging is always possible, but surely there is a smarter way to do
I am trying to develop a GUI application with the STM32H7S78-DK. I want to send uart data from the board over wires to a raspberry pi. To simplify the process without graphics I'm just trying to send a simple "Hello" string over UART7. From what I can see from the data sheet, UART7 is connected to pins PE7 and PE8, which correspond to D0 and D1 on CN14 on the arduino headers by default. Please correct me if I am wrong. So I first am just initializing those pins with uart on STM32CubeMX then I was just sending a simple HAL_UART_Transmit() with a 2 second HAL_Delay(). However, I see no data coming through when putting a logic analyzer on those pins. What am I doing wrong? Here is the very simple basic uart code in main. /* USER CODE BEGIN Header */ /** ****************************************************************************** * @file : main.c * @brief : Main program body ****************************************************
HI,I am working on a board using STM32H573V and have a working solution with UCPD detecting an inserted memory stick and running the MSC class. In an other part of the software I am using PC9 as an GPIO push-pull, low speed output and as soon as I set it to high, the voltage at PB14 (UCPD CC2) drops from 3.3V to 1.5V and my UCPD handler signals a device attached and turns VBUS on even though nothing is attached. There is no other electrical connection between PC9 and PB14 on the board. I am using a TCPP03-M20 for VBUS switching. The board is acting as VBUS source.
Hello all,I've designed a board around a STM32H743 (LQFP-100) and am running into the following issue.On 2 boards out of 10, the HSE seems not to start properly. The HSE_RDY flag is never set after enabling HSE. I have checked it's not in bypass mode. On the other boards, it works perfectly.The crystal is a ABM3B-8.000MHZ-10-1-U-T and the load caps are 10 pF. We checked possible soldering issues, tested different load cap values just to see, and even replaced the crystal on the failing boards - to no avail.Looking at the OSC_IN/OSC_OUT signals (PH0/PH1) on a scope does not show a significant difference between the working and non-working boards. Maybe just a very slight difference in p-p amplitude.I have looked at the AN2867 app note, and the gain margin seems sufficient according to the formulas given there. I have heard that this crystal may have a bit too high ESR (200 ohm) for the STM32H7 HSE, but again, the gain margin seems alright.Any idea? I have tested with a minimal
[PN]: custom Board based on evspin32g4-dual[VERSION]: 6.4.0[Motor]: Xing2207 1800Kv[CubeMx]:6.14.1Hello,I have a problem with getting my FOC BLDC motor to start, the specs of the motor are: 0,08Ohm 50uH 0,32Vrms/kRPM. My project is for two sensorless motors with one shunt each, but I am trying to get started with the one connected directly to the stspin32G4.When using 10kHz Pwm the motor first vibrates but does not spin, then it starts accelerating, then I get the startup failure. The failure always occurs when it reaches the start-up speed threshold. When I try 40kHz PWM it wont start at all. I noticed that in cubeMX there are some errors.The schematic for the mosfet drivers is identical to the evspin32g4-dual:33Ohm gate resistors and 1uF Boot CapI set the Boot charge time to 50ms and the Charging Duty cycle to 15% Below is a screenshot of the startup phase once the motor is running, orange: one phase, blue: voltage over shunt, the digital signals are the gates of all t
I am running the FLASH_EraseProgram example code provided by STM32CubeU3. the code fails in erasing the flash and enters ErrorHandler. I have verified the FLASH_USER_START_ADDR & FLASH_USER_END_ADDR. it is set as follows. #define FLASH_USER_START_ADDR ADDR_FLASH_PAGE_128 /* Start @ of user Flash area */#define FLASH_USER_END_ADDR (ADDR_FLASH_PAGE_255 + FLASH_PAGE_SIZE - 1) /* End @ of user Flash area */I have tested in both debug and run mode, it is not working as expected. Is anything to be modified to run the code. regards,Rajath
Hello together,I search for a solution to put calibration data in a NS area.Background Information:we are using STM35H573 with STM secure manager.we use an ethernet Rest API to update Application including request install and so onNow I want to use the same Rest API to update configuration data. The BIN file shall be signed like a normal application. The behavior should be more or less the same: Restart µC, SM checks validity; app will be started,...I have read um3254 but I do not understand the section with large profile.I have read something about ITS, but I think this is not the solution I need. The calibration data must not be stored in the trusted area. They shall only validated bei the SM during update or startup. Thanks for joining this topic. Br Sebastian
Should each vdd pin of the stm32f407zgt6 read continuity like the blue pill on multimeter, are they internally connected within the chip or separated? Similary for all the vss pins are they also all connected vss inside stm32f407zgt6 Thanks
Hello everyone, I am Li Weiwei (李炜炜) from a company based in Shenzhen, China, specializing in integrated circuit testing equipment and related R&D. We are currently working on a small-scale R&D / prototyping project that requires the STM32F103TBU6 (VFQFPN36 package) in bare die or wafer form (Known Good Die / KGD preferred), rather than packaged chips. Has anyone here successfully sourced STM32F103 series (or similar STM32F1xx) as bare die / wafer through ST directly, authorized distributors (e.g., Avnet, WT Microelectronics, WPG Holdings, Excelpoint, etc.), or other specialized bare die suppliers? Key details I'm looking for: Is the bare die / wafer option officially available for STM32F103TBU6? (I couldn't find it listed on the ST eStore, public datasheets, or standard channels.) Typical MOQ (minimum order quantity) — e.g., full wafer, partial wafer, or small engineering samples (our target: equivalent to 1–5 wafers or a small number of dies for initial prototyping)? R
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.