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 working with a STM32G0B0CE part. I believe that the TRM definitions for RCC_CCIPR2->USBSEL are incorrect.I was having trouble with USB, seemingly related to clock selection. I noticed in the LL HAL headers the following:#define LL_RCC_USB_CLKSOURCE_HSE RCC_CCIPR2_USBSEL_0 /*!< PLL clock used as USB clock source */ #define LL_RCC_USB_CLKSOURCE_PLL RCC_CCIPR2_USBSEL_1 /*!< PLL clock used as USB clock source */#define RCC_CCIPR2_USBSEL_Pos (12U) #define RCC_CCIPR2_USBSEL_Msk (0x3UL << RCC_CCIPR2_USBSEL_Pos) /*!< 0x00003000 */ #define RCC_CCIPR2_USBSEL RCC_CCIPR2_USBSEL_Msk #define RCC_CCIPR2_USBSEL_0 (0x1UL << RCC_CCIPR2_USBSEL_Pos) /*!< 0x00001000 */ #define RCC_CCIPR2_USBSEL_1 (0x2UL << RCC_CCIPR2_USBSEL_Pos) /*!< 0x00002000 */ This seems to indicate that USBSEL should be 0x2 for PLL and 0x1 for HSE.RM0454 Rev 5 Page 165 indicates that 0x1 is PLL and 0x2 is HSE.I have confirmed that USB is functional on my board when settin
I am developing software on the Nucleo-L433RC-P board but have a strange situation when debugging.The first time I debug, the software does not run and I get the following error... Break at address "0x1fff2ce8" with no debug information available, or outside of program code. Break at address "0x1fff2cd6" with no debug information available, or outside of program code. As shown in the screenshot below...However, the second time I debug it works correctly.Why does it not work correctly on the first debug, but then works correctly on the second debug ?I have tried two different boards (one of which is brand new and never been used) but the behaviour is the same, so it must be a software issue.
Dear,i used STM32F205RB MCU, could you tell me:1.why the MCU can not wakeup?2.how can i solve it? tin tai
I'm using the AWD (STM32G0B0CE) with the HAL_ADC_LevelOutOfWindowCallback(), which works fine.For not blocking the MCU completely, I'm disabeling the AWD-IT inside the Callback when fired for about 500ms:LL_ADC_DisableIT_AWD1 (ADC1);After the 500ms elapsed the AWD-IT is enabled again:LL_ADC_EnableIT_AWD1 (ADC1);This only works fine for about 2 times:Start -> Fire IT -> DisableIT-> 500ms-> EnableIT -> Fire IT -> DisableIT-> 500ms-> IT stays completely disabled, though enabled again.Any idea what I'm missing?Thanks.
I have received some STM32F405RGT6 microcontrollers that have two circular marks (holes) on the package, while the official datasheet only shows one mark indicating pin 1.Is there an official revision or packaging variant from STMicroelectronics that includes two marks?Additionally, does having two marks indicate that the part might be counterfeit or not authentic?Could you please provide official documentation or images to clarify this
I'm currently implementing very low current measurement electronics, such as Femto Amps.To do this, I'm using the STM32G431CBU MCU. I'm acquiring the output voltages of a float voltage transimpetance amplifier, and I'm taking a running average.My MCU is clocked by a 24 MHz quartz crystal, with the instruction frequency set to its maximum of 170 MHz.But my function is still slow, between 24 µs and 50 µs.float MoyenneGlissante(float valeurI, uint8_t MeanMoving) { static float buffer[50] = {0}; // capacité max : 50 échantillons static uint8_t index = 0; static uint8_t rempli = 0; // Protection : on limite MeanMoving au max du buffer if (MeanMoving > 50) MeanMoving = 50; // Stocke la nouvelle valeur dans le buffer circulaire buffer[index] = valeurI; index = (index + 1) % MeanMoving; // Marqueur pour savoir si le buffer est rempli au moins une fois if (rempli < MeanMoving) rempli++; // Calcul de la moyenne glissante float somme = 0; for (uint8_t i = 0; i < rempli;
Hello, @STTwo-32 I am working with the NUCLEO-WB05KZ (MB1801 + MB2032B target). I received two boards from the ST eStore. One board works fine: STM32CubeProgrammer detects the target, and I can erase/flash/debug with no issue. The second board initially connected once, but after flashing a BLE firmware example via STM32CubeIDE, the target MCU no longer responds. Symptoms: ST-LINK is enumerated correctly in Windows (Virtual COM Port visible, target voltage ≈ 3.28 V). In STM32CubeProgrammer: “No STM32 target found” or “ST-LINK error (DEV_TARGET_CMD_ERR)” Cannot connect even when selecting SWD + Hardware reset, lowering SWD frequency, or holding RESET while connecting. Tried with BOOT0 jumper set to “Bootloader” and with “User Flash,” no success. ST-LINK firmware is up to date. Jumpers are in default positions: JP1=5V_STLK, JP2=ON, SW1=3V3. What I already tried: Multiple USB cables and ports. “Connect under reset” procedure (RESET held while connec
Hello all, I have been working on a keyboard PCB with an STM32F103, and I have started trying to program it with the STM32duino bootloader however, I have been unable to connect to the chip. This is my first time using the STM32CubeProgrammer with an ST-Link V2. I have verified the voltage across several points in the PCB. I have previously used similar designs with STM32F07 chips and had no issues. Most of the time, I get an error of "No STM32 Target found" and sometimes I get the error "ST-LINK error (DEV_TARGET_CMD_ERR)". I have tried my best to look at past posts on the forum, but none of the solutions have fixed my issue. I am happy to provide extra measurements and provide more information. Tips on how to troubleshoot this are greatly appreciated. Thank you in advance! Schematic and PCB screenshot.
I am programming a custom board using STM32L562. While trying to connect the debugger using STM32CubeIDE I get the following error: Verifying ...Error: Data mismatch found at address 0x08001000 (byte = 0xFF instead of 0x0E)Error: Download verification failedEncountered Error when opening C:\ST\STM32CubeIDE_1.13.1\STM32CubeIDE\plugins\com.st.stm32cube.ide.mcu.externaltools.cubeprogrammer.win32_2.1.0.202305091550\tools\bin\STM32_Programmer_CLI.exeError in STM32CubeProgrammerShutting down...Exit. Besides, when I am trying to erase the memory with the programmer it is impossible.Does anybody have any suggestion?
Hello everyone,I am working with a custom board based on the STM32WB5MMG. On the very first attempt, the FUS firmware update works fine and completes successfully. The problem starts when I try to update the FUS again. Once it has been updated for the first time, any further attempt to re-update the FUS fails.If I delete the firmware and try to flash it again, STM32CubeProgrammer gives the error Error: failed to download image!Even after full chip erase, when I try to re-install the FUS firmware, I end up with the same error.For reference, I am using stm32wb5x_FUS_fw.bin V1.2.0 with STM32CubeProgrammer, I am programming the device via ST-LINK.Has anyone else experienced this with STM32WB5MMG?Any advice or suggestions would be greatly appreciated.Thanks in advance.
Hey,I am using the stm32wb55rev6 boards as the client and server to send and receive the data.i am able to establish the connection between the server and the client.How can i be able to send the data from the server to the client using the usart1.Do i need to create a new task in the sequencer using the util _regtask or is there any document related to that?
Peripheral: QSPIBug: Bit 4 of FTHRES[4:0] in the Control Register is not set when written with threshold values in the range0x10 - 0x1F. Works fine for threshold values in the range 0x00 - 0x0F. So, for example, if one writes 0x16 for athreshold level of 23-bytes, the actual value is 0x06 corresponding to a threshold level of 7-bytes.Encountered on: STM32F723IE, STM32F746NG and STM32F767ZIComments: Checked the errata data sheets for the above processors and there is no mention of the bug.Request: Please can anyone confirm that this is indeed an undocumented hardware bug.
Hi,I need to run my application in the external flash, as the size of the internal flash is very less for the stm32h7s78-dk board. I have turned on optimizations as well, but i need external flash configuration. probably XSPI1, XSPI2 what all the things i need to configure. please let me know. it's very urgent.after configuring by referring some samples, i'm getting error while flashing. what can be done Thanks,Harshitha R
Hello,I am planning to develop a small low-power wearable device using the STM32WB05KNV6TR.My goal is to use the STM32WB05KNV6TR as a standalone MCU while implementing BLE communication.From what I have found, this IC seems to be often used only for BLE communication, so I would like to clarify a few points:Can the STM32WB05KNV6TR be used as an MCU that runs logic using peripherals such as ADC and SPI, while also handling BLE communication at the same time?If it is possible, which development board would be suitable for testing the STM32WB05KNV6TR before hardware development?I purchased the NUCLEO-WB05KZ board, but it seems to be in a module form (around 20x10 mm in size) instead of just the IC. Is this normal, or did I purchase the wrong version?On the other hand, the IC on the STM32WB5MM-DK Discovery Kit looks like an appropriate size. Would this board be a good option to use?Thank you in advance for your support.
Has anyone had success with the CMSIS-DSP arm_rfft_q31 or other of the M55 HELIUM MVEI/MVEF enabled CMSIS-DSP functions on the STM32N6? Is there a functional FFT example or STM32CubeMX project available? The STM32N6 FE 1.2.0 example CORTEX-HELIUM does not seem to utilize CMSIS-DSP.Whenever I try to utilize the CMSIS-DSP FFT-functions, I am experiencing hard fault when entering the arm_rfft_q31, function, if the M55 HELIUM MVEI/MVEF support is enabled.My FSBL project builds successfully and I am currently using ARM_MATH_AUTOVECTORIZE as a temporary solution, with limited performance.Please let me know for working examples, tips, or known caveats of using CMSIS-DSP with HELIUM MVEI/MVEF on STM32N6. I am looking for proof, that the STM32N6 MVEI and MVEF are functional and supported with CMSIS-DSP. Thanks!
I'm running the CubeMX-generated lwIP implementation on an STM32H723. Memory addresses and configuration has been modified according to what is described at https://community.st.com/t5/stm32-mcus/how-to-create-a-project-for-stm32h7-with-ethernet-and-lwip-stack/ta-p/49308Now when running this implementation, I stumble upon different illegal memory accesses where data is located in memory areas outside of the addresses of range 0x30000200 .. 0x30000200+32232.This happens more or less randomly. When I add some own address-checks at one position in code to ensure a pointer is in that area, lwIP crashes at an other position. So this looks like some memory leak or some other fundamental problem.Next I enabled MEMP_SANITY_CHECK in lwIP settings to track down these problems. With that, immediately on connection of an external client to my server, I end up in a failed MEMP-sanity check:HardFault_Handler() at stm32h7xx_it.c:85 0x8002f10 <signal handler called>() at 0xf
Hello, I am using p-nucleo-wb55. I have a code with an RTC alarm interrupt triggered every 5 seconds. In the ISR, I set a sequencer task that sends a message via BLE. I have enabled the LPM as I want the MCU to enter sleep mode while it isn't working and only wakeup with the RTC alarm. I realized that the MCU doesn't stay in the sleep mode and when I debug, I realized that it wakes up so fast as the IPCC RX Interrupt is triggered continuously with high frequency.How can I control this, knowing that I don't need the MCU to do any task through those 5 seconds, I just want it to sleep and wakeup only after 5 seconds. Thanks in advance
Hi Team,I'm working on design the custom inverter board for 3 Phase BLDC Motor for rail door application.Motor driver these feature needed for project In motor Driver protection this one im using In Phase voltage generation TIM8 using and the motor driver IC i'm using from Infineon TLE9180D-32QK.How should i connect this pin to uC to Motor driver ICand configuration need to done.
Good day I am trying to run the Lorawan FUOTA demo on my nucleo-wl55jc1 and havinf trouble. Once i build files in the recommended order and they build successfully, i am getting this issue: struggling to find out what i need to change in order for it to work. I am using cubeIDE version 1.19.0. Please assist as we plan into going into production very soon on our own PCB board.
Hello,I'm working on a firmware which currently run in USB vendor interface (bInterfaceClass = 0xFF) and it's working.Now I want to add MassStorage. My Firmware is a bit older so I add all usb composite parte by my self (in usbd_core ...) . I defined USE_USBD_COMPOSITE and set :#define USBD_CMPSIT_ACTIVATE_MSC 1#define USBD_CMPSIT_ACTIVATE_CUSTOMHID 1#define USBD_MAX_CLASS_INTERFACES 2U#define USBD_MAX_SUPPORTED_CLASS 2U#define USBD_MAX_CLASS_ENDPOINTS 2U(I use custom HID class for the Vendor interface and I edited USBD_CMPSIT_CUSTOMHIDDesc )I set Msc first 'cause I read that some OS prefer. Init function :void MX_USB_DEVICE_Init(void){#ifdef STM32H7xxHAL_PWREx_EnableUSBVoltageDetector();#endif //STM32H7xx/* Init Device Library, add supported class and start the library. */if (USBD_Init(&hUsbDeviceHS, &HS_Desc, DEVICE_HS) != USBD_OK){DEBUG_PRINTF("[MX_USB_DEVICE_Init] USB failed to init \r\n");}//register classesMassStorage_InstID = hUsbDeviceHS.classId
I am facing a strange issue that looks like a possible microcontroller design/behavior problem.My setup:I need the DAC output pin to provide a stable voltage while the microcontroller is in STOP2 sleep mode with the RTC running.Power connections: Vbat, Vdda, and Vref are connected to Vdd.An additional external supervisor is used: MCP130T-270I/TT.Problem description:Initially, everything works fine — the DAC output stays at the expected voltage in STOP2 mode.However, after a BOR (Brown-Out Reset) occurs, the behavior changes: when the microcontroller enters STOP2 mode, the DAC output pin drops to 0V.After this happens:Resetting the microcontroller does not fix it.Power-cycling the device also does not fix it.The only way to recover normal DAC behavior is to connect via debugger.Has anyone experienced similar behavior? Could this be a silicon bug, or am I missing some configuration after BOR? My DAC config:sConfig.DAC_SampleAndHold = DAC_SAMPLEANDHOLD_ENABLE;sConfig.DAC_Sample
I'm try to generate some pulses to PB0 using STM32F103C8T6 with the following code#include <stdint.h> // STM32F103C8 is a medium density device, hence we use the xB header #include <stm32f103xb.h> #if !defined(__SOFT_FP__) && defined(__ARM_FP) #warning \ "FPU is not initialized, but the project is compiling for an FPU. Please initialize the FPU before use." #endif void enable_clock() { RCC->CR |= RCC_CR_HSION; while ((RCC->CR & RCC_CR_HSIRDY) == 0); } // @formatter:off #define HI 6 #define LO 3 uint16_t buffer[] = { 0, LO, HI, LO }; // @formatter:on void blink_dma_to_gpio() { enable_clock(); // GPIO B configuration RCC->APB2ENR |= RCC_APB2ENR_IOPBEN; // Enable IO port B GPIOB->CRL &= ~(GPIO_CRL_CNF0 | GPIO_CRL_MODE0); // GPIO B: Clear pin 6 configuration GPIOB->CRL |= GPIO_CRL_CNF0_1 | GPIO_CRL_MODE0_0; // GPIO B: Set pin 6 to alternate function push-pull 10MHz output // TIM3 configuration RCC->APB1ENR |= RCC_APB1ENR_TIM3E
Hello ST Community,I'm working with the STM32N6570-DK board and using the ST-provided UVC video streaming example.https://github.com/STMicroelectronics/STM32CubeN6/tree/main/Projects/STM32N6570-DK/Applications/USBX/Ux_Device_Video By default, the example uses MJPEG format, but I modified the UVC descriptors to stream in UNCOMPRESSED format (YUY2).Where as i am sending static image data-->> When using a lower resolution configuration 320*236 and HS_MPS is 512 , Then the static image displays correctly on Windows Camera, and Wireshark shows proper isochronous packets. However, when I change the configuration to a higher resolution like 800×480 and increase HS_MPS:#define USBD_VIDEO_EPIN_HS_MPS 1024 // Also tried 2044, 3036, 3072#define UVC_FRAME_WIDTH 800U#define UVC_FRAME_HEIGHT
Hello, I am currently trying to measure the temperature using the internal temperature sensor of STM32F765. The Reference Manual stated to do temp = ((V_sense - V_25) / Avg_Slope) + 25,but the address of calibration data existed in the Datasheet.In this case, what formula should be used to measure temperature? In my circuit, VDDA is connected to 3.3V, VREF+ is connected to 3.0V and ADC is set to 10bit resolution.Additionally, I referred to RM0410 Reference Manual and STM32F765xx Datasheet.
Hello,I'm hunting a bug probably caused by a race condition running multiple tasks and IRQ handlers under FreeRTOS on a STM32H75x MCU.My code shall run a task after (DMA-) IRQ has fired using the Deferred Interrupt Handling method shown in this example using the CMSIS2 RTOS API. In rare situations, it seems that the task is started delayed, maybe blocked by another task of same priority.All (DMA-/UART-/TIMER) IRQs have prio 5, all tasks have FreeRTOS prio "REALTIME".The FreeRTOS example (comments removed) goes like this:void vANInterruptHandler( void ) { BaseType_t xHigherPriorityTaskWoken; prvClearInterruptSource(); xHigherPriorityTaskWoken = pdFALSE; vTaskNotifyGiveFromISR( xHandlingTask, &xHigherPriorityTaskWoken ); portYIELD_FROM_ISR( xHigherPriorityTaskWoken ); }I wonder how this can be implemented using the CMSIS RTOS API2.My code, according to this example here, goes quite as follows:void IrqHandler(void) { osEventFlagsSet(evt_id, 0
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.