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 an RC car BLDC motor with an EVLSERVO1 evaluation board and can't complete the Motor Profiler process. My application has a large mass on the motor, so I need the mechanical model to get better control loop parameters. I have manually measured the electrical model and have successfully done the following:Run the motor open loop in voltage modeRun the motor open loop in current modeManually determined a start-up ramp profile in open loopStarted up with speed control with my start-up ramp.Used the same MCSDK project with open loop disabled and motor profile enabled to generate a motor profile project with known good motor electrical model and start-up ramp.Despite this, I see no change in behavior during the motor profile process when compared to the default project. I have used the startup speed as my max speed, lower, and higher. I have changed the max current to the same as my start-up profile and to the max the board can handle. No luck.
Hi,I'm going to use four different OpAmps in the STM32G474, namely OPAMP3, OPAMP4, OPAMP5, and OPAMP6.At this moment I try to initialize all four OpAmps. The first three work perfectly well, the initialization of OPAMP6 results in a problem. The State of OPAMP6 is HAL_OPAMP_STATE_CALIBBUSY. And, therefore result in an error.For the first three the State is '28', and initialize perfectly well.How can I fix this? What is causing this behavior?With kind regards,ErX
Hello ST Community team,On the DS11532: The title of the Figure 20 should be changed to avoid any confusion between figure 20 and figure 21.Also, the note under figure1 is not really clear since the STM32F767 TFBGA216 for example is not compatible pin to pin with the STM32F469 TFBGA216. So, I think the note should be clearer. It can even point to the application note AN4660 for details.Could you please have a look.Best Regards.II
Hi, I do not have a lot of experience with the STM32. I used other processors in the past like the LCP1768. We developed a custom bootloader to be able the load a new firmware into the uProcessor. In our current case, the STM32G474 is connected by USB to our PC software. Is it possible to give the processor a command to reboot in bootloader-mode. Because the boot-pin is already in use by the I2C-bus. Is this possible with the normal bootloader or do we need to develop our own bootloader to do this? Where can I find information to do this? Thanks in advance. With kind regards, ErX
Hi Pascal, Any updates on our previous thread? When testing the same firmware with the EN pin pulled up, we are facing some issues during operation. After about 5–6 operation cycles, the system stops working until the MCU is reset. The issue still persists — could you please suggest what board-level changes might be needed to resolve this? Additionally, we are facing another issue on the CubeMX side: USB PD works well separately,TouchGFX works fine separately. But in our application, we need both to run together. If I disable TouchGFX, USB PD starts working. However, when I try to enable both TouchGFX and USB PD in the IOC file, CubeMX shows an error saying only one can be used at a time. Could you please advise how we can resolve this? Thanks & Regards,Rajkumar edit: related thread Solved: USB PD Part selection - STMicroelectronics Community
Hi team.I am using STM32U575RIT6 how set the internal and external clock configuration , i have bit confusion can u gide me to resolve this .thnaks.
Hello,I designed a custom PCB using the STM32H745IIT6 (LQFP176) and I cannot connect to the MCU using SWD with an ST-LINK V2. I always get “Error in final launch sequence / No device found on target”. Hardware summary: VDD, VDDA, VREF+ → 3.3V VCAP1/2/3 → 2.2 µF VDDLDO → not connected BOOT0 → GND NRST → 10k pull-up + 100nF Board current consumption: 8.5 mA SWD wiring: SWCLK → PA14 SWDIO → PA13 NRST → NRST GND → GND 3.3V → board 3.3V rail (sense) SWO not connected 10k resistors on SWCLK/SWDIO were removed for testing. Observations: PA13 measures ~0.38–0.42 V when ST-LINK is not connected (floating) ST-LINK LED stays red (never turns green) CubeIDE: SWD, “Connect under reset”, 1000 kHz CubeMX power mode: PWR_DIRECT_SMPS_SUPPLY. Question: What could cause SWD to fail with this configuration?
Hi, I am creating a DynamicBitmapCreateExternal() for RGB565, but the image shows up faded. Is there any fix for this? I made sure to set cache for it. I also tried for L8 and it didn't show.
Hi,I am trying to copy the screen from one Touch GFX designer project to another, but i am unable to do so.Is it really possible to do it, because creating the same screen which is already available in another project is tiresome work.Can you please suggest?ThanksNagaraj
Hello everyone, this is my first post on the forum. I'm starting to learn STM and have created a custom board using the STM32F405RGT6. This is the first board I've created, and I wanted to check for any errors before sending it to production. So I've uploaded a PDF of the connection diagram. I'd be very grateful if you could review it and let me know if there are any mistakes.
Hello,I'm looking to measure the power consumption of the STM32WL5MOC component on a B-WL5M-SUBG1 development board.I'm looking for the power consumption announced by the Sleep Mode datacheet (140nA - 810nA).I connected directly to JP2 to use only STM and I supply 3.6V and I measure the consumption with Otii software and an Otii Arc Pro.I measured a cosomation of 112uA, far from what I should have.Do you have a method for measuring sleep mode power consumption?Thanks for your help.
I'm using the STM32H562. I'm trying to start an ADC conversion using output compare on a specified channel during the middle of an up-down count of a timer.Timer used: TIM8 running at 250 MHz, generating a 20 kHz periodChannel: 4Timing: At the peak of the up-down countPeripheral configuration:In TIM8_CCMR2, OC3M is set to 0001 to activate the signal when the counter matches the compare value.In TIM8_CR2, both MMS and MMS2 are set to 0111 to use Channel 4 as the trigger output.For ADC1 and ADC2, the trigger source is set to TIM8 TRG2.Although TIM8 has been started, the HAL status of the ADC conversion remains at 0xFF.I would like to know if there is any configuration I might have overlooked, or if there is a way to detect the start of ADC conversion for debugging purposes, such as using an interrupt. Here are the initialization procedures for TIM and ADC:/** * @brief TIM8 Initialization Function * @PAram None * @retval None */ static void MX_TIM8_Init(void) { /* USER CODE BEG
Good day! I use TIM15 and DMA1, channel 5 in STM32H743. If DMA and data have a size of 32-bit, then everything works fine. If you configure DMA on 16-bit data, then 32-bit data is still written to the TIM5 registers. In order to save memory, I want to write 16-bit values to the timer. In the documentation I read that DMA1 works only in 32-bit data mode. Is there any way to force DMA1 to transfer data to the timer in 16-bit mode, or even better in 8-bit? Andrey.
Hey,While doing UART communication between Arduino nano and STEVAL-ESC002V1 When i start my UART communication the control goes to function,void USART1_IRQHandler(void) { #ifdef UART_COMM uint32_t isrflags = READ_REG(huart.Instance->ISR); uint32_t cr1its = READ_REG(huart.Instance->CR1); /* -----------UART in mode Receiver ---------------------------------------------------*/ if(((isrflags & USART_ISR_RXNE) != RESET) && ((cr1its & USART_CR1_RXNEIE) != RESET)) { if ((huart.gState!=HAL_UART_STATE_TIMEOUT)&&(huart.gState!=HAL_UART_STATE_ERROR)) { huart.gState = HAL_UART_STATE_READY; huart.RxState &= ~HAL_UART_STATE_READY; huart.RxState |= HAL_UART_STATE_BUSY_RX; if (UART_Receive_IT(&huart)==HAL_OK) { UART_Set_Value(); } } /* Clear RXNE interrupt flag */ __HAL_UART_SEND_REQ(&huart, UART_RXDATA_FLUSH_REQUEST); } /*------- UART in mode Transmitter (transmission end) -----------------------------*/ if(((isrflags & USART_ISR_TC)
All, My team is looking at designing a PCB around the STM32U5G9-DK2 development board and are running into some issues. The development board uses a flash memory IC "MX66LM1G45GXDI00" but the BSP example driver for the board only contains "MX66UW1G45G" information.https://github.com/STMicroelectronics/STM32CubeU5/tree/main/Projects/STM32U5G9J-DK2/Examples/BSP/Inc Is there a reason the development board only references this other flash memory IC in CubeIDE and if so will this driver still work for the development boards IC? Thank You,
Hi everyone,We are using STM32H755ZIT6 with external QSPI Flash in memory-mapped mode.After long runtime, we see an issue where the RTOS event returns resource unavailable (-3) even though the UART buffer has received complete data. We suspect it might be related to QSPI, because our QSPI trace length is around 66 mm. Our question::backhand_index_pointing_right: If any data or byte is missed during QSPI (memory-mapped) read, can this cause the system to get stuck or RTOS events to fail? Anyone faced similar behavior or can confirm this possibility?
I've searched and not found anything describing this behaviour (on the internet or this forum, which I've found to be an incredible resource so far - thank you).I have a configuration where I go into STOP, exit out of STOP via EXTI, start TIM1, allow the stack to unwind to leave HAL_PWR_EnterSTOPMode(), and then SLEEP. With this sequence, I expect a TIM1 interrupt but never hear one.Conversely, if I enter SLEEP instead of STOP for the very first step but perform all of the other steps identically, I get the behaviour I'm looking for - an EXTI, then a period asleep, then a TIM1 callback. This tells me that the STOP is interfering with the configuration of the timer somehow, in a way that I haven't been able to figure out how to recover from.I've tried, after exiting STOP, to re-issue a call to HAL_TIM_Base_MspInit and MX_TIM1_Init but this has not helped. Removing the final SLEEP and spin-waiting has also not helped.Why might this be happening? Where should I start the debug e
Hi, I am currently trying to make a single pulse test jig I can use to test MOSFETs in an series resonant converter. I am using the STM32F411CEU6. I am trying to make a state machine that can make these signals at two different pins. The two variable periods I would like to control with a potentiometer connected to ADC1_IN1 and ADC1_IN2. However, I only see a high pulse on one of the output and only low on the other. I am trying to use TIM2 as an output compare timing mode where I am using the four different channels and their respective CCRx to toggle the output how I want them. I have tried debugging my code. And it seems like the interrupt fires from the CC1IF but when I am checking in the flag is set it has already been reset and my if sentence won't run. I have attached the code under you would be so kind to take a look. Thanks /* USER CODE BEGIN Header */ /** ****************************************************************************** * @file : main.c * @brief :
Hi all,I have developed a bootloader for STM32F412, the bootloader works perfectly, however, when I change the user app to be FreeRTOS based, it ceases to work.I added a blink led in the Hard Fault in both the bootloader and app, but both were not triggered.Any idea what is going on?void jump_to_application(void) { void (*app_reset_handler)(void); uint32_t msp_value = *(volatile uint32_t*)(APP_START_ADDRESS + APP_HEADER_SIZE); uint32_t reset_handler_address = *(volatile uint32_t*)(APP_START_ADDRESS + APP_HEADER_SIZE + 4); __disable_irq(); HAL_RCC_DeInit(); HAL_DeInit(); SysTick->CTRL = 0; SysTick->LOAD = 0; SysTick->VAL = 0; for (uint32_t i = 0; i < 8; i++) { NVIC->ICER[i] = 0xFFFFFFFF; NVIC->ICPR[i] = 0xFFFFFFFF; } __enable_irq(); __set_MSP(msp_value); __set_PSP(msp_value); __set_CONTROL(0); app_reset_handler = (void*)reset_handler_address; app_reset_handler(); } Thanks in advance.Regards,
I’m using STM32WL5MOCH6STR and want to add STSAFE-A110 for security in a LoRaWAN application.I want to know:How to use STSAFE-A110 for authentication, key storage, encryption and secure boot & secure firmware update.Which software packages are needed to implement this security feature(like X-CUBE-STSAFE, X-CUBE-LRWAN, or others)?Is there any example or application note for STM32WL + STSAFE-A110 integration?Kindly let me know if there are any ways or recommended methods to achieve security with help of STSAFE-A110 with STM32WL MCUs.Thanks in advance!
Hi, I am using a NUCLEO-G474RE with the X-NUCLEO-SRC1M1 board. I have created and configures the project according to https://wiki.st.com/stm32mcu/wiki/STM32StepByStep:Getting_started_with_USB-Power_Delivery_Source I am monitoring the board with the UCPD Monitor, configured one 9V 3A PDO and connected a 9V 3A PSU. My issue is that some devices (mobile phones) charge slowly, some dont charge at all and some charge at full speed. The PD negotiation seems to work in all cases, the 9V is present at TP1 in all cases. My suspicion is that the unused CC line (VCONN line) is not being powered by the board. I tried implementing the VCONN based on this post, but was unsuccessful: https://community.st.com/t5/stm32-mcus-embedded-software/does-the-latest-stm-usb-pd-core-stack-support-electronically/td-p/220555 I have attached the Traces, a capture of the CC1/CC2 lines and my project. These are with a phone connected that does not charge at all. With other PD supplies, the phone charges without prob
Hello Expert, I am reaching out regarding some persistent issues I am facing with MCSDK 6.41 on the STM32F303EVAL control board with the STEVAL-IPM-NM2S. I suspect there may be bugs or configuration issues. Background: I previously purchased two boards, and neither motor ran correctly during initial experiments(external opamp case motor work fine) I have now purchased a fresh STM32F303EVAL board and intend to use the internal op-amps and comparators as before. Using external op-amps allows the motors to run, but with internal op-amps, the motors do not start. I followed previous technical support guidance: Set HTMIN2 = 1 and applied the new configuration. Replaced the file r3_2_f30x_pwm_curr_fdbk.c in project\MCSDK_v6.4.1-Full\MotorControl\MCSDK\MCLib\F3xx\Src\ with the attached version. Reduced the PWM pulse width. Observed Issues: Motor 1 always faults (mostly fault code 32), whereas Motor 2 runs without issue. I have tried more many times to play with parameters, s
Hello ST, We are using the STM32WLE5 controller in our product.The system always works on 1.8V. Based on demand, we switch to 3.3V and fallback to 1.8V.Our product is IoT-based, charged through solar to a supercapacitor.The main problem is that the controller is booting from the embedded bootloader even after setting boot options, which I will describe later.We require that it must boot from the user flash, not from the system bootloader, because a few GPIOs, like PA4 and PA7, used in the internal bootloader for SPI are used in our circuit, which turns on the supply of some components, which can consume a lot of power, and the power line goes down below 1.71V, which results in restarts while boot up if there is no enough charge in super capacitor.The settings that I use to boot from the user flash mentioned below,1. I set BOOT_LOCK, and based on the boot table here in the section "2.2 Boot configuration", it must boot from the user flash, but no luck.2. Here I clear the
This is one of those problems where I spent more hours than I care to explain.I've got a text box configured with a wildcard:In Designer, I've got a typography set to Voltage, 20px:Here's the typographies:Screen1ViewBase.cpp entry looks like this: textCellVoltage.setPosition(191, 0, 67, 24); textCellVoltage.setColor(touchgfx::Color::getColorFromRGB(255, 255, 255)); textCellVoltage.setLinespacing(0); Unicode::snprintf(textCellVoltageBuffer, TEXTCELLVOLTAGE_SIZE, "%s", touchgfx::TypedText(T___SINGLEUSE_B9IA).getText()); textCellVoltage.setWildcard(textCellVoltageBuffer); textCellVoltage.setTypedText(touchgfx::TypedText(T___SINGLEUSE_F28R)); textCellVoltage.setVisible(false); ImplantData.add(textCellVoltage); Screen1View.cpp looks like this:void Screen1View::enableScreenElementsAfterInterrogation() { tab2.setAlpha(255); tab2.invalidate(); textCellVoltage.invalidate(); Unicode::snprintf(textCellVoltageBuffer, 20, "%s", "123"); textCellVoltage.setWildcard(textC
I have an STM32F103 board call 野火STM32F103ZE_霸道开发板,i found enable FSMC clock will pull up PB7 GPIO to 3.26v , i try decrease my code ceaselessly to verify this bug, finaly it can reproduce bug easily like this #include "stm32f10x.h" int main (void) { //RCC->AHBENR |= 0x100//RCC_AHBPeriphClockCmd ( RCC_AHBPeriph_FSMC, ENABLE ); *( unsigned int * )0X40021014 |= ( (1) << 8); } void SystemInit(void) { // nothing in here }Is this a problem specific to a single chip or a more general chip?
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.