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
So far, in all my projects, the MCU has been powered via USB attached to computer. I would like to make a project in which the MCU is powered by a portable power supply. However, I don't know which equipment I need to use for this purpose. I have a power supply module from ELEGOO kit (ELEGOO Upgraded Electronics Fun Kit w/Power Supply Module, Jumper Wire, Precision Potentiometer, 830 tie-Points Breadboard for Arduino, STM32 : Amazon.com.au: Computers), which can output 5/3.3V electricity. Can I connect a powerbank to the supply module, and use the supply module to power the board, or should I look for other options? The board I use is stm32f407g-disc1, and the datasheet (DS8626_STM32F40xxx.book) says that the voltage should be in 1.8-3.6V range and the power of electrical current should be less than 240 mA (p79).
I'll explain Flash Erase Error to the stm32l475rct6 MCU that I'm currently using. Page : 127, Address : 0x0803F800, Bank : FLASH_BANK_1 is defined, and if you try to modify the value after first saving the value in the Flash area, the values already stored in Flash are not erased properly, so the Flash value cannot be modified. SMT32CubeIDE version is 1.19.0 and I'll attach the code I implement, so please check where the problem is and let me know if there is a solution.void AO_SaveCalibration(void){HAL_StatusTypeDef status; printf("Saving calibration to Flash...\r\n");printf("Data size: %u bytes\r\n", sizeof(AO_Calibration_t)); ao_cal.checksum = Calculate_Checksum1(); status = HAL_FLASH_Unlock(); if (status != HAL_OK){printf("ERROR: Flash unlock failed\r\n");return;} __HAL_FLASH_CLEAR_FLAG(FLASH_FLAG_ALL_ERRORS); while(__HAL_FLASH_GET_FLAG(FLASH_FLAG_BSY)){// Flash 작업 완료 대기} FLASH_EraseInitTypeDef EraseInitStruct;uint32_t PageError = 0;EraseInitStruc
In iDE version 1.19, there was an STM32 Project creation feature, but it disappeared when I updated to 2.0.
Hello,we are seeing a systematic offset when using the internal temperature sensor of the STM32G031G8U6.Over the years we have tested ~50 SoCs (different production batches), and all devices show a very consistent temperature reading that is about 2–3 °C too high at room temperature compared to an external reference, higher temperatures weren't tested.Because of this, we are considering programming a temperature offset during flashing. Before doing so, we would like to better understand whether a single-point offset calibration is sufficient, or if the internal slope accuracy is not reliable enough, requiring a full two-point calibration.Example:If the MCU reports 24 °C but the real temperature is 21 °C, can we simply apply a +3 °C offset globally?Or is the internal temperature slope not guaranteed well enough, meaning that a two-point calibration is required?More specifically, regarding the factory calibration values on STM32G0:TS_CAL1:ADC raw value measured at 30 °CTolerance: ±5
Hello ST Community,I am working with the STM32N6570-DK and the USBX Ux_Device_Video example fromSTM32Cube_FW_N6_V1.3.0\Projects\STM32N6570-DK\Applications\USBX\Ux_Device_Video.I followed the README instructions exactly:Built FSBL and Ux_Device_Video projects successfully in STM32CubeIDEGenerated FSBL.bin and Ux_Device_Video.binSigned both binaries using STM32_SigningTool_CLIProgrammed:FSBL-trusted.bin at 0x70000000 (external flash)Ux_Device_Video-trusted.bin at 0x70100000 (external flash)Set BOOT0 and BOOT1 to boot from external flash and reset the boardHowever, the application does not run as expected. When the board is connected to a Windows PC, the Windows Camera application fails with the error: Can't start your camera0xA00F4241 <CameraSwitchFailed> (0xC00DABE7)From my understanding, the Ux_Device_Video example should enumerate as a USB UVC camera and stream video to the Windows Camera app. Since the camera app fails, it seems the firmware may not be executi
Hello,STM32L4+, CubeProgrammer 2.21, ST-Link V2, Windows 10I need to do:* Full flash erase* Write Application image (.hex or .bin)* Write Bootloader image (.hex or .bin)* Set RDP level 1* Start the application at the Bootloader start address.-I am successfully doing this with the CubeProgrammer GUI, but I fail to get it to work with CLI.The "-e all" command works and says "Mass erase successfully achieved":C:\"Program Files"\STMicroelectronics\STM32Cube\STM32CubeProgrammer\bin\STM32_Programmer_CLI.exe -c port=SWD ap=0 -e all-However, I have tried numerous variants of the following command (and its separate parts alone) without success:C:\"Program Files"\STMicroelectronics\STM32Cube\STM32CubeProgrammer\bin\STM32_Programmer_CLI.exe -c port=SWD freq=3900 ap=0 -e all -w C:\SVN\Path\More_path\hex\Application.elf -w C:\SVN\Path\More_path\hex\Bootloader.hex -ob rdp=0xBB -s 0x08000000I have also tried with .bin files and their respective start addresses.The only response I get is the head
I'm using the X-CUBE-EEPROM library on my STM32C031G6Ux to store keys in flash memory. I configured eeprom_emul_conf.h so that the emulated EEPROM starts at 0x08007000, with 2 pages of 2 KB each, and set NB_OF_VARIABLES to 240.When I tried saving 240 variables once using EE_WriteVariable32bits and reading them back with EE_ReadVariable8bits, everything worked fine.However, when I repeat this process three times, writing stops once both pages are full, and the data is no longer read correctly.I experienced similar issues even with 120 variables. Interestingly, adding EE_CleanUp after all writes solved the problem for 120 variables.I then tried the same approach with 240 variables, calling EE_CleanUp after all write operations, but it still didn’t work.Is there a reason for this behavior? Am I limited to storing only 120 variables in flash?
Hi everyone,I’m experiencing unexpected behavior while testing 9-bit SPI on an STM32, observed with a logic analyzer. The issue only occurs when the MOSI line is physically connected to the slave.Observations::keycap_1: MOSI not connectedCS and SCLK are correctMOSI stays highSPI decoder shows 0x1FF Expected behavior for a floating MOSI line:keycap_2: MOSI connected to the slaveMOSI data becomes correctBut a very brief rising edge (glitch) appears on CS during data transmissionCS immediately returns active → causes unintended slave deselectionResult: data loss during the SPI frameAdditional info:STM32 model: stm32u5g9j-dk2SPI mode: 9-bit, masterSCLK frequency: 10 MHzIs this a known issue with 9-bit SPI on STM32?Should I add a pull-up/pull-down on CS or MOSI?Any other suggestions to avoid this glitch?Attached are screenshots showing the behavior.Thanks in advance for your help!MOSI connectedMOSI not connected
Hi Team, Urgent help required!! Today I have update my CubeIDE to the latest version, before the update i have had several projects saved, but none of it is launching in CubeIDE, when i click on the .IOC file from CubeIDE it opens on CubeMX and when i clock on generate code it says "The Code is successfully generated under :C:/Users/S****** H******/STM32CubeIDE/workspace_1.16.0/Door Module Testing" and as soon as i click on Open Project it goes to CubeIDE and shows main.c file. When I try to open the .IOC in CubeIDE it redirects to CubeMX again, a never ending loop has formed. Attaching screenshots for your review. Someone from ST Electronics please look into my issue and give me a quick fix or a workaround. Regards, Prateek
Bonjour,Je travaille sur une carte STM32U5G9J-DK2 avec ThreadX + USBX (Host Mass Storage) et TouchGFX.Mon objectif est simple ::backhand_index_pointing_right: lire le contenu d’une clé USB (fichiers / répertoires) lorsqu’elle est connectée en USB Host.Cependant, dans STM32CubeU5, j’ai constaté que :Le système de fichiers a été migré de FATFS vers FileXLes exemples FileX fournis concernent principalement SDMMC / Flash / QSPIJe ne trouve aucun driver FileX officiel pour USB Host Mass StorageLorsque j’essaie d’utiliser FileX avec USBX Host MSC, j’obtiens des erreurs de compilation et d’architecture :absence de fx_stm32_disk_driverincompatibilité entre UX_HOST_CLASS_STORAGE et fx_media_opentypes FileX (FX_DIR, etc.) non reconnus:backhand_index_pointing_right: Ma question est donc la suivante :Existe-t-il une solution officielle et supportée par ST pour utiliser FileX avec USBX Host Mass Storage (clé USB) sur STM32U5 ?Ou bien :FATFS reste-t-il la solution recommandée pour la lecture de clé
Im trying to run SYSCLK from LSI on a STM32C011. But it appears as if the MCU is not running. I cant see anything in the datasheet that says the clock cant be used and it can be routed fine in the clock configurator. Am I missing something in the datasheet or does the HAL not support it?
Hello fellow readers,##Disclaimer##I am using a Nucleo Board, the Nucleo H7S3L8, and HAL_ERROR ist laughing me since 2 days in my face# I think you, dear reader, have heard about the SWR-Bit, which vanishes out as soon the software has restarted succesfully, everything seems perfect and you have finally the feeling you found the solution to world piece.But I am currently at the brink of insanity, because this little ******* ***** ** **** wont clear itself after I forced the reset. What do I mean specifically?HAL_StatusTypeDef HAL_ETH_Init(ETH_HandleTypeDef *heth) { uint32_t tickstart; if (heth == NULL) { return HAL_ERROR; } if (heth->gState == HAL_ETH_STATE_RESET) { heth->gState = HAL_ETH_STATE_BUSY; #if (USE_HAL_ETH_REGISTER_CALLBACKS == 1) ETH_InitCallbacksToDefault(heth); if (heth->MspInitCallback == NULL) { heth->MspInitCallback = HAL_ETH_MspInit; } /* Init the low level hardware */ heth->MspInitCallback(heth); #else /* Init the low lev
Hello all. I'm writing an application with the NUCLEO-H563ZI board (with the intention to use later the STM32H563 into a custom board). My application will communicate with a master PC via the embedded Ethernet, exchanging process data and commands. The protocol will be, most probably, Modbus/TCP. I've been able to configure the board (I/O), run the ThreadX OS, setup and run netXDuo middleware. I set up a TCP socket server connection on the STM32, with a C# test application as a client. I can open the socket from the C# client, send ad receive TCP packets almost correctly. The TCP server on the STM32 receives a packet from the client, extract the payload (data) from it, creates a new packet, copy the payload to the new packet and then echoes back the new packet to the client. This will change in the future, of course, but for the first tests it seemed nice to get back the same data. Here I have a problem. Everything works fine if the packet payload is less than 516 bytes long; over suc
STM32G031Y8Y6TR SMT上板后 需超声波清洗 PCBA 满足MOB制程需求,清洗参数:40KHZ,6分钟,60°,有经验的大神协助回复下1.STM32G031Y8Y6TR 是否禁止超声波清洗元件2.超声波清洗参数建议多少
Hi,I can't find a way to select in MEMS Studio which MLC filters are passed FIFO and how to enalbe MLC result in FIFO.Configuration created by MEMS studio enabled MLC_FILTER_FEATURE_FIFO_EN in EMB_FUNC_FIFO_EN so I see selected MLC features in FIFO but nothing more - no filters, no results.I manually enabled MLC_FIFO_EN but MLC results didn't appear in FIFO.I tried to enable filters manually in mlc.json by adding "fifo": "true" to filters in json file, but it didn't help. I've attached MLC files. Best regardsTomasz
Hi I am using Nucleo H753zi board, can I use X-CUBE-MEMSMIC1 expansion for sound source localization.
Hello ST Community, I am seeking assistance with a project generation issue using STM32 Motor Control SDK (v6.x) and the EVLSPIN32G0A1 evaluation board. The Problem: Even though I explicitly select the EVLSPIN32G0A1 board (which features the STSPIN32G0A1 / STM32G071 core) in the Motor Control Workbench, the generated .ioc file and STM32CubeIDE project target the STM32G031C8Tx instead. Consequences: Debugger Error: When attempting to flash the code, the ST-LINK GDB server returns: "Target no device found" or a Device ID mismatch because it is looking for a G031 but finding a G071 core. Configuration Mismatches: The clock tree and memory boundaries in the .ioc are being set for the G031 (64KB Flash) instead of the STSPIN32G0 (128KB Flash). What I have tried: Creating a new project in MC Workbench and selecting the board from the "Boards" tab. Configuring
I am using STM32F767 with LWIP and LAN8742 PHY.Ethernet initializes but I am facing Ping does not work reliably. This is the Schematic.
I'm trying to use GUI(STSW-L9963E=L9963_evaluation_GUI.exe) for EVAL-L9963E-MCU.I installed all the S/W which is listed in maunal for operating GUI.And I have set all things needed, I think.If I connect the board and start a GUI, COM port turns on green 'ack' in gui and firm ware is also OK. But when I click 'configure IDs' button(step 3 in manual below), ack for configure IDs becomes red.What should I check on board or s/w setting?
Hey!I'm working on implementing USB host functionality on the STM32U545 using the USB_DRD_FS peripheral. I've got the basic structure working, but I'm stuck at the enumeration stage, where the device responds with NAK to SETUP packets and enumeration never completes.As I'm using the dev boad which has no power, I'm using an external 5V supply on USB VCC and GND pins to use host mode.I ahve been trying the stm32u5xx_hal_hcd HAL file to get it working. Here's how I'm doing it:First, I'm keeping these structures:typedef struct { uint8_t dev_addr; uint8_t ep_addr; uint8_t ep_type; bool in_use; } channel_info_t; static channel_info_t _channel_info[FSDEV_EP_COUNT]; static uint8_t find_free_channel(uint8_t dev_addr, uint8_t ep_addr) { for (uint8_t i = 0; i < FSDEV_EP_COUNT; i++) { if (!_channel_info[i].in_use) { return i; } } return 0xFF; } static uint8_t find_channel(uint8_t dev_addr, uint8_t ep_addr) { for (uint8_t i = 0; i < FSDEV_EP_COUNT; i++) { if (_channel_info[i].
Hi,I find even I disable Non-Secure Project's "Project References" to the secure one, the secure project still automatically build when I build the Non‑Secure one.And I find the "disable Project References" setting is work only when the 1st time build the Non-Secure Project after STM32CubeIDE open. After the 1st time build, STM32CubeIDE ignores the 'disable' setting.Snaku.
Hi,I’m developing an application on multiple STM32H563 units on the same board. Although all units use the same firmware, the logic depends on each unit’s position, so I need a way to identify which unit it is.Currently, I program the full flash memory (.bin/.elf) with STM32CubeIDE or STM32CubeProgrammer. Is there a standard or recommended way on STM32H563 to store small per-device information (like unit ID or role) separately from the main application flash, so the firmware can read it at startup? Thanks for any guidance!
Hello,I got back to my issues from this post.I was able to connect wires to SPI lines, and get the measurements to logic analyzer. These are the results:Logic2 screenshot Now i can see that the issue is the CS line, but i dont know why it is being changed to HIGH in these short pulses. The GPIO config: /*Configure GPIO pin : SPI1_CS_Pin */ GPIO_InitStruct.Pin = SPI1_CS_Pin; GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP; GPIO_InitStruct.Pull = GPIO_NOPULL; GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH; HAL_GPIO_Init(SPI1_CS_GPIO_Port, &GPIO_InitStruct);SPI Config:hspi1.Instance = SPI1; hspi1.Init.Mode = SPI_MODE_MASTER; hspi1.Init.Direction = SPI_DIRECTION_2LINES; hspi1.Init.DataSize = SPI_DATASIZE_8BIT; hspi1.Init.CLKPolarity = SPI_POLARITY_LOW; hspi1.Init.CLKPhase = SPI_PHASE_2EDGE; hspi1.Init.NSS = SPI_NSS_SOFT; hspi1.Init.BaudRatePrescaler = SPI_BAUDRATEPRESCALER_32; hspi1.Init.FirstBit = SPI_FIRSTBIT_MSB; hspi1.Init.TIMode = SPI_TIMODE_DISABLE; hspi1.Init.
Hi All, In datasheet of STM32N657X0H3Q controller only power-up sequencing details are shown., Is there any power down sequencing is required?If Yes, Please suggest the document which gives complete information of power down sequencing.
My goal is to use USART6 as debug output because I haven't route the dedicated BootROM pins of the USART2.Anyway! It seems that the BootROM is trying to read my SD card. First sequence:CMD and CLK of SDMMC1 seems to be talking to the SD card in a very low speed. Here I'm talking about kHz. I don't know what they are saying. The signals are perfectly square waves.Second sequence:Suddenly the CLK become a fast sine wave. I still don't know the frequency, but it's defently much faster than the first sequence. Now, the D0 is a digital input of BootROM. This D0 looks like a sword shaped signal. I don't know if it's my configure at my osciloscope that cause this view.After the second sequence as ended. There are no more data passing between the SD card and MP257. The clock is still running at the same frequency.I don't know if the TF-A firmware has been read or not. I haven't tested the USART6.Question:Where can I find the commands/data that are passing between the SD card and the MP257
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.