Join conversations with your peers and ST experts. Explore the full potential of STM32 microcontrollers for your embedded design.
Most recent activity
Hi all,I really hope someone can shed some light on this...I am trying to find any information regarding the accuracy of the internal temperature sensor of the STM32H7 family, more specifically the STM32H743XIH6.I understand that each device is factory calibrated to improve the accuracy, however I cannot find what the accuracy actually is, I mean, I cannot find any official source of information, I've seen some saying that it is ±1.5C, but nothing in the ST documentation.Any help is appreciated.Thanks
Hello, I’m working on a low-power BLE peripheral design on an STM32WBA63 and I’ve hit a timing issue that I’m hoping someone can help me with.Hardware / softwareMCU: STM32WBA63CIUxSTM32CubeMX: 6.15.0Firmware package: STM32Cube FW_WBA V1.7.0Wireless stack: STM32_WPAN (BLE)RTOS: FreeRTOS 1.3.1 with tickless idle enabledLow power mode: STOP1 (not standby/off)BLE role: peripheral advertisingAdvertising interval: ADV_INTERVAL_MIN = 0x0640 (1 s)IDE/toolchain: EWARM V9.60Issue:Advertising is stable until I add some application-side work in the FreeRTOS tickless idle pre-sleep / post-sleep hooks. After that, advertising becomes intermittent and sometimes appears to stop completely.It looks like the device wakes from STOP, but then misses the BLE Link Layer scheduling point for the next advertising event.I instrumented the post-sleep hook and measured the time spent in post-sleep processing, which resulted in a 0.477ms d
Heyho,I recently started using ITCM SRAM in my H733 project, functions there working well.Then I thought that it might make sense to also copy the vector table and some interrupt handlers to ITCM.And this for the custom bootloader (BL) and the application.... and now I have some strange effect when jumping back and forth:jump BL to app: no problems at all, both the "auto-jump" after reset / power-up is working, so does a manually triggered jumpjump app to BL: and here it hangs, and so does the debugger...I'm basically using the same functions with different addresses, and in main also doing the same at start: copying the vector table to ITCM.... and now that I almost completed this post, I found that I moved the SysTick init after the peripheral clock init in the bootloader, and this uses the SysTick. Oh my... nothing to do with ITCM.Always good to write things down! :DThanks anyway!
Hi Team,I am currently working on a 48V HALL sensored based BLDC motor control system (three-phase) using the STM32F405RGT6, DRV8300, and STP100N10F7 MOSFETs. The motor is running using six-step commutation PWM.Although the motor is rotating, I am experiencing significant noise during operation. I have tested PWM frequencies ranging from 12 kHz to 20 kHz and am currently using a dead time of 1.25 µs.Under no-load conditions, the phase outputs (U, V, and W) appear correct. However, when the motor is connected, the waveforms on all three phases become distorted and are not as expected.I have attached the output video and image for reference. Could you please suggest possible solutions to reduce the noise and improve the waveform quality? Any guidance, tuning recommendations, or reference code would be greatly appreciated.Regards,Veerapandiyan V.1.With_Out_Load_ON_PHASEA_HIGH_SIDE(yELLOW_lOW_SIDE_Blue)Without_LOad_On2.With_Out_Load_Off_PHASEA_HIGH_SIDE(yELLOW_lOW_SIDE_Blue)Without_L
Hi tech supoort reps, According to the documentation for the NUCLEO-563ZI (MB1404C), the board is expected to support I3C mode. However, during our evaluation, we were unable to successfully issue I3C shell and CCC (Common Command Code) commands.At this stage, it is unclear which configuration or setting does not meet the expected requirements. Could you please provide:The correct steps to enable and use the I3C interface on this boardAny required software, firmware, or device-tree configurationsA simple example or reference demonstrating successful I3C shell and CCC command execution Thank you for your support. [00:00:00.000,000] <inf> i3c_hub_init: I3C Hub I2C init start[00:00:00.004,000] <inf> i3c_hub_init: Hub I2C init done[00:00:00.104,000] <inf> i3c_bus_mgr: I3C bus re-enumeration start[00:00:00.104,000] <inf> i3c_bus_mgr: I3C CCC: RSTDAA[00:00:00.204,000] <err> i3c_bus_mgr: RSTDAA failed (-116)*** Booting Zephyr OS build v4.3.0-6019-gef798176ad4c
In TouchGFX 4.26.0 image order changes in application.config even if those images don't change.This causes unnecessary changes to show up in git: Feature request is to either preserve the order or to have them always lexicographically sorted.
I purchased a STM32H745I-DISCO. The board appears to work fine. I am trying to flash the stock firmware onto the board. I downloaded the binary from the ST product page, followed the instructions, set the correct option bytes, used the external loader. The binary file on the product page "STM32Cube_Demo-STM32H745I-DISCO-V1.0.0_FULL.hex" does not bring the board back to factory settings. The touchscreen does not work. The stock demo wont run. Does anyone have have a more up to date binary file or procedure for factory reset? Thanks
Greetings,I am working on testing a STM32H573 based HW design, which uses an external 4-port USB-2.0 Hub.I plan on using USB Flash drives, and read/write files to them as a diagnostic test.I will instantiate the STM32H573 USB interface as Host-mode, and have it discoverthe USB hub, and enumerate the downstream devices (flash drives/sticks).Our current SW base is using the FreeRTOS OS.Should I switch to Azure ThreadX? I have heard that the USBX ThreadX library isthe way to go?Can I run USBX under FreeRTOS, or does it require ThreadX?Thanks for any guidence!Ken CarlsonDraeger Medical Systems Inc.
Hello,On a STM32H7RS are using the USB_OTG_HS peripheral in PCD_SPEED_FULL mode using internal clock.After I was able to configure the clock so that the MCU is responding on enumeration requests. The responses however seem to be partially incorrect; the trace tool shows stalls.I did not found an example in current https://github.com/STMicroelectronics/STM32CubeH7RSThe following changes are applied to a CubeMX generated projectmain.c SystemClock_Config:LL3.PLLN was set to output 24 MHzRCC_OscInitStruct.PLL3.PLLState = RCC_PLL_ON; RCC_OscInitStruct.PLL3.PLLSource = RCC_PLLSOURCE_HSI; RCC_OscInitStruct.PLL3.PLLM = 4; RCC_OscInitStruct.PLL3.PLLN = 60; RCC_OscInitStruct.PLL3.PLLP = 2; RCC_OscInitStruct.PLL3.PLLQ = 40; RCC_OscInitStruct.PLL3.PLLR = 16; RCC_OscInitStruct.PLL3.PLLS = 2; RCC_OscInitStruct.PLL3.PLLT = 2;Configure CRS __HAL_RCC_CRS_CLK_ENABLE(); RCC_CRSInitTypeDef RCC_CRSInitStruct = {0}; RCC_CRSInitStruct.Prescaler = RCC_CRS_SYNC_DIV1; // default RCC_CRSInitSt
Hi,I am using NUCLEO-U545RE-Q with X-NUCLEO-NFC07A1.After downloading a program via Arduino IDE, the board got locked.Symptoms:PC cannot detect the board, no ST-LINK device, no COM portST-LINK LED: red always on, green flashingSTM32CubeProgrammer cannot connect, error: No debug probe detectedConnect Under Reset does not workWhat I tried:power cyclingholding RESET when plugging USBConnect Under Reset in CubeProgrammerchecking CN2 jumpers (they are fine)Questions:How can I unlock or erase this board without a BOOT0 jumper? It seems not available on this NUCLEO board.Is there any software-only way to recover the SWD?This board is for a competition. Any help is appreciated. Thanks.
Hello,I am using STM32U5G-DK1 Discovery kit and need to store a large amount of data in on-board OSPI flash. Now, the example code by STM32 for this kit uses this OPSI flash in Memory-mapped mode. This mode is good to store an small amount of data but time-consuming when writing a large data to this Flash. Therefore, I need to use this Flash in Indirect mode where I can write to flash Page by Page. For this, I use the below configuration of OSPI:sCommand.OperationType = HAL_OSPI_OPTYPE_COMMON_CFG;sCommand.Instruction = OCTAL_PAGE_PROG_CMD;sCommand.InstructionMode = HAL_OSPI_INSTRUCTION_8_LINES;sCommand.InstructionSize = HAL_OSPI_INSTRUCTION_16_BITS;sCommand.AddressMode = HAL_OSPI_ADDRESS_8_LINES;sCommand.AddressSize = HAL_OSPI_ADDRESS_32_BITS;sCommand.Address = address;sCommand.DataMode = HAL_OSPI_DATA_8_LINES;sCommand.NbData = BUFFERSIZE; // :warning: max 256 bytes per pagesCommand.DummyCycles = 0;sCommand.DQSMode = HAL_OSPI_DQS_ENABLE;sCommand.SIOOMode = HAL_OSPI_SIOO_INST_EVERY_CMD;
Hello, i am using F446 and i am contemplating using FreeRTOS CMSIS V2 software timer to generate PWM to control motors via motor drivers (IC chipset). Is this possible? Or must I use the hardware timer, TIM1~7 ?
Hi,We are currently using STM32H753 and are setting up USB Fifos. There is some contradictory information about the available sizes. AN4879 mentions that the available SRAM size is 1.25kBytes for OTG_FS:In the reference manual RM0433 I can only find 4kB for both OTG_HS peripherials, where OTG_HS1 is used for OTG_FS:What information is correct?Thanks and best regardsDaniel
Greetings,I am working on a project involving RTC and TAMP mechanism of U5 series MCUs, specifically STM32U585. I have some questions about the working principle of the TAMP pins. In the reference manual RM0456, it is written that the TAMP pins checks if the line is opened or it is shorted (Section 64.1: "Active tamper which increases the security level by auto checking that the tamper pins are not externallyopened or shorted.").I was able to make the open circuit detection work but I couldn't make the shorting detection work, that might be my fault though. The shorting detection is available in U585 right? Also I was wondering how precise is the shorting detection? Let's assume I have a 50 meters long transmission line, can it detect if the line is shorted about 50 centimeters (the line is now 45.5 meters)? If not, how much length of the tranmission line must be removed to make the TAMP pins detect it? In addition, should I do anything to make the shorting detection active o
Hello, I am using an STM32U585 with STOP mode and FreeRTOS in tickless idle mode. The datasheet says the current consumption should be around 4.5uA, however I am measuring 35uA on my custom board that only has the MCU and some decoupling capacitators. Can someone tell me if I need to add something in the code to lower consumption? Are the datasheet consumptions possible running an RTOS? I will leave my code and measurements in attach: void PreSleepProcessing(uint32_t ulExpectedIdleTime) { /* place for user code */ (void)ulExpectedIdleTime; __HAL_RCC_GPIOC_CLK_DISABLE(); __HAL_RCC_GPIOH_CLK_DISABLE(); __HAL_RCC_GPIOA_CLK_DISABLE(); __HAL_RCC_GPIOB_CLK_DISABLE(); HAL_ICACHE_Disable(); HAL_SuspendTick(); HAL_PWREx_EnterSTOP2Mode(PWR_STOPENTRY_WFI); } void PostSleepProcessing(uint32_t ulExpectedIdleTime) { /* place for user code */ (void)ulExpectedIdleTime; SystemClock_Config(); __HAL_RCC_GPIOC_CLK_ENABLE(); __HAL_RCC_GPIOH_CLK_ENABLE(); __HAL_RCC_GPIOA_CLK_ENABLE()
Hi ST community,I create a simple application using USART1 baudrate 9600 TX pin - PB6 & Rx pin - PB7. I send uart frame each 1 second. J22 connects to CP210x. I see that the RX led of CP210x toggle each 1 second but when I open terminal screen on the laptop with same baudrate, nothing is shown. HAL_transmit return HAL_OK. Tx pin and Rx GPIO pin is configured as default, no pull up and pull down. What is problem here? void SystemClock_Config(void) { RCC_OscInitTypeDef RCC_OscInitStruct = {0}; RCC_ClkInitTypeDef RCC_ClkInitStruct = {0}; /** Configure the main internal regulator output voltage */ if (HAL_PWREx_ControlVoltageScaling(PWR_REGULATOR_VOLTAGE_SCALE3) != HAL_OK) { Error_Handler(); } /** Configure LSE Drive Capability */ HAL_PWR_EnableBkUpAccess(); __HAL_RCC_LSEDRIVE_CONFIG(RCC_LSEDRIVE_MEDIUMHIGH); /** Initializes the CPU, AHB and APB buses clocks */ RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_HSI48|RCC_OSCILLATORTYPE_HSI |RCC_OSCI
JW
I am able to flash the binary into external flash memory successfully. However, I am facing issues with handling multiple binaries and execution flow.Issues:FSBL & Application Binary FlashingI have two separate binaries (FSBL and Application). I am able to flash only one binary at a time.Kindly guide how to flash both binaries properly (same address 0x70000000 or different memory sections like 0x70010000).Jump to ApplicationFSBL should run first and then jump to the Application.Kindly explain how to implement the jump to application correctly and ensure proper execution flow.Project Structure & Peripheral AllocationThe project has multiple layers (FSBL, Application, External loader).For reference i tried the suggested example project VENC_RTSP_Server does not include .ioc file, so i didn't get clarity to enable peripherals in which sub projectes.Kindly clarify:How these layers work togetherWhich functionalities/periphe
I have this Fatal Error. Plese help me" [Fatal Error] 2.STM32CUBEMX.5.6.0.AnalyticsServer.xml:1:1: Premature end of file. [Fatal Error] 2.STM32CUBEMX.AnalyticsServer.xml:1:1: Premature end of file. [Fatal Error] 2. AnalyticsServer.xml:1:1: Premature end of file. [Fatal Error] 2.STM32CUBEMX.5.6.0.AnalyticsServer.xml:1:1: Premature end of file. [Fatal Error] 2.STM32CUBEMX.AnalyticsServer.xml:1:1: Premature end of file. [Fatal Error] 2. AnalyticsServer.xml:1:1: Premature end of file."
I am using stm32f756zg. In which i configure LWIP with FREERTOS cmsisv2. I am getting hard faults when ping devices from other devices.It works fine when I change FREERTOS cmsis v1 and increase the default task stake.
When TxRSTU and RETRIG are enabled with CONT disabled, will the timer still trigger a register update when it's counter reaches it's PER value? Since it says in the image below that the PER event is generated but says it re-starts from 0 when it's reset but doesn't mention roll-over, and the image above says it'll update registers on timer reset and rollover. Essentially what I'm asking is does it count as a roll-over when the timer reaches its period value when CONT=0? Since I need to know if it'll update it's registers at the end of it's period or no.Any help is much appreciated :)
Dear Support,Good morning, I have assembled the STEVAL-ROBKIT1 as described here: https://www.st.com/en/evaluation-tools/steval-robkit1.htmlI have followed the assembly instructions as seen here: https://www.youtube.com/watch?v=8fzpv_j343UWhen I switched on the robot and paired with my iPhone application the robot doesn't respond to the manual commands. For example if I only move forward or only turn the direction or a combination nothing happens:When I move it to the "Follow me" mode it seems to go around in circles and moves at random. The same also goes when I move it to the "Autopilot" mode. It seems that one wheel moves more than the other. I've checked the connections (removed and reconnected). I have also ensured that nothing is blocking any of the components. I have also uninstalled and re-installed the application (restarting my mobile phone). I have also used different locations and also have have ensure that the phone
I am using an stm32u585, specifically the b-u585i-iot02a development kit board.I set up a basic project using stm32cube ide to test clock configurations. System is clocked from the MSIS at 24MHz with PSC of 1 -> HCLK is 24MHz.I enabled the RNG peripheral, clocked with the HSI48. In the default SystemClock_Config() function I commented out the code related to enabling the HSI48. RNG initialization is left as default.Interestingly, the RNG can still generate random numbers with HAL_RNG_GenerateRandomNumber(). The MX_RNG_Init() function succeeds as well.Reading HSI48ON and HSI48RDY bits from the status registers give both values as 0.How is the RNG still working and generating valid numbers?Another curiosity: In this state, the whole MCU takes less power than if I leave the SystemClock_Config() as generated (explicitly enabling the HSI48). See code snippets below: System clock config/** * @brief System Clock Configuration * @retval None */ void SystemClock_Config(void) {
Hello,I am currently experiencing some unusual Ethernet transmission (STM to PC) issues with a few of our custom PCBs. We use the STM32H753II chip and the KSZ8081RNB. The KSZ8081RNB is connected to the MCO2 and the RMII-interface of the STM.The IP/TCP/UDP checksum check primarily fails due to corrupted payloads ranging in size from 1 to 20 bytes, or, more rarely, due to corrupted protocols. It doesn't happen regularly, but it happens too often.This means that, for TCP, two or more retransmissions are sometimes needed.udp bad:udp good:Sometimes, packets with complete defects are sent. These defects are not sent by the application. Even, when I paused the application, I could still see these packets.For tests the PCB and the PC are directly connected. Using different cables does not solve the issue; only using different PCBs does.I set up the LwIP example project in CubeIDE 1.19, as described in Github STM32H7-LwIP-Examples#how-to-create-project-from-scratch.This project's
Hello, stm32h7b3lih6q controller has support ethernet connection give me proper solution I want the Communication in beteen Ethernet and Controller. Thanks.
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.