Join conversations with your peers and ST experts. Explore the full potential of STM32 microcontrollers for your embedded design.
Most recent activity
Hello there, I ran into an issue with my STM32WBA55CGU6 chip. I designed my board with schmematics from Mouser: 511-STM32WBA55CGU6 with the UFQFPN48 pinout. When setting up my chip in CubeIDE I also chose the STM32WBA55CGU6 version. But when comparing the pinout of the chip the SMPS version of the UFQFPN48 footprint is displayed.Is this an issue I can solve by selecting the correct footprint in CubeIDE or is it, that CubeIDE is wrong at that point? The UFQFPN48 version should have PB12 on Pin1 and not VSSSMPS as shown in the image. Thanks in advance,Tim
Hello everyone,I am working on a custom board using an STM32F103 (LQFP48) and connecting it via ST-LINK V2 using the SWD interface.However, when I try to connect, STM32CubeProgrammer reports:Error: No STM32 target found!The log shows that the ST-LINK is recognized, the voltage reads ~3.16V, but the MCU cannot be connected.Additional details:- ST-LINK V2 wiring: 3V3, GND, SWDIO, SWCLK, NRST- Tried “Connect under reset” mode and reduced SWD frequency to 50 kHz — still the same error- The board has a 10kΩ pull-up resistor on NRST and a 100nF capacitor to GND- Power supply is stable at 3.3V- Continuity test from the SWD header to MCU pins shows SWDIO (PA13), SWCLK (PA14), and NRST are all connected- MCU is brand new and has no firmware flashed yetMy questions:1. Besides wiring and power supply issues, what other reasons could cause ST-LINK to fail detecting the MCU?2. Is there any way to check if the chip is locked at RDP Level 2 when we can’t connect at all?3. Are there recommended method
I am using the Nucleo-L433RC-P board and have configured pin PC13 as SYS WKUP (for the blue top button).How can I read the state of this pin when the processor wakes up, because HAL_GPIO_ReadPin will not work.I am sure I used a function or macro to read the state of this pin before, but can't remember how I did it.I need to distinguish between an RTC wake or a pin wake from shutdown.I use wake markers stored in an RTC backup register to detetc an RTC wake. I write to the backup register just before calling shutdown in the function SCH_mcuSleep....void SCH_mcuSleep (void){ /* The Following Wakeup sequence is highly recommended prior to each Standby mode entry mainly when using more than one wakeup source this is to not miss any wakeup event. - Disable all used wakeup sources, - Clear all related wakeup flags, - Re-enable all used wakeup sources, - Enter the shutdown mode. */ // write value to RTC backup register to indicate mcu was in sleep HAL_RTCEx
Hello friends : )I've recently tested the NUCLEO-G491RE board for an upcoming redesign.Current design relies on quite tough interrupt latency so here is where I begun.As I understand, with no FPU usage (in isr) (ASPEN + LSPEN = 0) one could expect up to 12 SYSCLK latency.In this case 75ns at 160MHz which sounds pretty decent (today it's about 73ns). I started off by creating two very similar interrupt services I intended to toggle between.Each would pulse a output pin and trigger the other one:Attributes: 'interrupt' + optimize("-O2")' + 'section(".RamFunc")' + 'aligned(8)' + 'naked'static void onTimeStampEvent(void) { GPIOA->BSRR = 1<<12; NVIC->ISPR[1] = 1<<(39-1*32); // USART3 GPIOA->BRR = 1<<12; #ifdef NAKED __ASM volatile ("BX LR":::); #endif return; } static void onReceiveEvent(void) { GPIOB->BSRR = 1<<14; NVIC->ISPR[0] = 1<<(11-0*32); // DMA1_CH1 GPIOB->BRR = 1<<14; #ifdef NAKED __ASM volatile ("BX LR":::);
Hello team,Generally , Reset pin by default status is Logic High.But in AN4206 ( Page 31) , NRST pin is not Connected to 3.3V , it is left Floating with Capacitor.Is that Okay ? My device is STM32F303.Regards,
Hi, I´m reading the following document : "an4879-introduction-to-usb-hardware-and-pcb-guidelines-using-stm32-mcus-stmicroelectronics" to implement USB in my application. In section 2.6.1 Simple Resistor Divider it says "This solution works well as long as GPIO maximum operating conditions are >= VDD+ 3.6 V" this must be meet to use the following voltage dividider I´m going to use PA9 pin, in the datasheet of my MCU STM32L4P5RGT6 it states this pin is 5V tolerant As I understood this pin doesnt meet the condiciton mentioned before because my VDD=3.3V and so GPIO maximum operating condition should be >= VDD+3.6V so we have 3.3+3.6V=6.9V so 5V < 6.9V so I can't use this configuration do I understand this well ? Should I use this other configuration? I´m a bit confused about it hope some one could help me to clarify this.
Apologies for the ignorance, I'm a beginner with STM32 and I purchased the STM32C071K8T6 MCU since it has built-in USB capabilities. I am trying to implement USB CDC, but I'm becoming quite confused with all the USBX and ThreadX stuff I have to enable. Currently, just through configuration of the IOC file, I can get the device to appear in my PC device manager, but it is not enumerated (device descriptor request failed). I have not found many other resources describing in simple terms how I can just get a basic virtual com device up and running, especially for the C0 series. Could anybody provide a basic minimum working example to have the device enumerated? Thank you.
Split from: Nucleo-H7S3L8 Board in Arduino IDE - this is a new question.Hi @Andrew Neil Trying to send text via USART3 (which is linked to the virtual com ST LINK USB, correct?) and show it with Putty. But as I see the USART3 in the MX is disabled (grayed out) that I cannot configure it. Any help with that?
Hi, I am using an STM32H523 MCU where I transmit some data via SPI (master tx only) in blocking mode.In debug build the SPI behaves as it should be and everything is fine.In release build the SPI CLK line remains high for too long, after the last bit of a transmission has been sent.This results in the (software) CS line going high before the CLK returned to 0 (the DAC7562 slave does not like that)How it looks like in Release:How it looks like in Debug (correct):My code for the transmits: HAL_GPIO_WritePin(GPIOA, CS_Pin, GPIO_PIN_RESET); hal_status = HAL_SPI_Transmit(spi_handle_, data, sizeof(data), HAL_MAX_DELAY); HAL_GPIO_WritePin(GPIOA, CS_Pin, GPIO_PIN_SET); CubeMX config code:void MX_SPI1_Init(void) { hspi1.Instance = SPI1; hspi1.Init.Mode = SPI_MODE_MASTER; hspi1.Init.Direction = SPI_DIRECTION_2LINES_TXONLY; hspi1.Init.DataSize = SPI_DATASIZE_8BIT; hspi1.Init.CLKPolarity = SPI_POLARITY_LOW; hspi1.Init.CLKPhase = SPI_PHASE_1EDGE; hspi1.Init.NSS = SPI_NSS_SOFT; h
I'm using STM32H750Is it possible to read and write like EEPROM in a specific part of the program (the last part of the internal flash area?)?I think it's impossible because there's only one sectorIf possible, I would appreciate it if you could give me an example
Hi,In STM32U5, the GPDMA has both request sources and trigger sources, what's the difference between them?Thanks.
Hello,Until yesterday I was able to connect my ST-LINK V3SET via SWD to my STM32F411E-DISCO board without any problems. My setup is the STM32 extension for VSCode, where I debug using the STM32CubeProgrammer CLI. Everything was working fine, but now when I try to flash the program, the target is not detected. The log shows:ST-LINK FW : V3J16M8B5S1 Board : STLINK-V3SET Voltage : 0.00V Error: Unable to get core ID Error: No STM32 target found! If your product embeds Debug Authentication, please perform a discovery using Debug AuthenticationIf I open STM32CubeProgrammer, I also cannot connect to the board when pressing Connect. However, I found that if I select Hardware Reset, the connection works, and if I perform a full chip erase, flashing from VSCode works (although very slowly). On the second attempt, it fails again.The log always reports the voltage as 0.00V, which should not be the case. I have already tried changing the power supply and USB cables, but nothing changes.Any ideas on
Hi!I'm working with the STM32F042K6T6TR (LQFP-32 package), and the documentation on mouser.com says that it is moisture sensitive. So what is the maximum temperature I can put this chip into the oven at (for ~24 hours) to dehydrate it. The working temp is max 85C, but I'm guessing it can take 100C when not powered, just dehydrating, right?Link to mouserLink to datasheetThanks!
Hello... can anyone advise on the difference between F446RE and F446ZE? i just found out the USART to USB VCP was shifted to USART3 instead of USART2 in the new ZE. Can anyone advise on any other difference?
Hi everyone,I'm currently trying to flash firmware to a custom board with STM32WLE5CCU6 MCU using the onboard debugger of a NUCLEO-WL55JC1 development board. I'm running into multiple issues and would appreciate any help.Setup:Target MCU: STM32WLE5CCU6 (custom board)Debugger: Integrated ST-LINK on STM32WL55JC1 (used as programmer)Tools: STM32CubeIDE(Ver 1.15.1) and STM32CubeProgrammerIssue Summary:CubeProgrammer only connects at very low frequency (200 kHz SWD clock). Higher frequencies fail to detect the target. Even when connected, flashing consistently fails with different errors on both IDE and Cube programmer depending on the attempt.(in all modes). Errors observed in STM32CubeIDE:Spoiler (Highlight to read)Failed to execute MI command:load ...\LoRaWAN_End_Node.elfError message from debugger back end:Error finishing flash operationFailed to execute MI command:load ...\LoRaWAN_End_Node.elfError message from debugger back end:Error finishing flash operation4. Errors observed in
Hello,Based on the NVM example, after: ZbPersistNotifyRegister(zigbee_app_info.zb,APP_ZIGBEE_persist_notify_cb,NULL).What actions cause the device to enter the callback? Where can this information be found?Thanks,
Hello,I copied the logic from the NVM Zigbee examples. I notice that the end devices almost periodically calls the persistent data callback to save when I am sending sequential data sequences.However, this unfortunately causes the end device to sometimes miss the reception of Zigbee data, and in my case, does not call ZbZcl_custom_ls_ServerSendCommandRsp.The devices end up LOSING connection shortly after saving to persistent data.Is this intended, and are there any solutions?Thanks,
Hello,I am looking how to shorten the timeout and/or failure entering of the callback.I am using ZbZclClusterCommandReq(cluster, &req, callback, arg). I currently have my own ACK timeout implementation, however, the callback still is entered with either ZCL_STATUS_TIMEOUT or ZCL_STATUS_FAILURE. I noticed this may cause flooding-like effects and overload the network.Is there a way to shorten this timeout (to around 300ms instead of its default ~6s) so I can remove my ACK timeout implementation and just work with this? Is that recommended to do?Thanks,
Hi support, I’m currently working with a Nucleo-WB55RG board, and my goal is to perform a firmware update using an ESP32 as the host. The ESP32 is connected to the STM32 via USART1 (PA9 and PA10).The sequence followed is : 1. Connect to the bootloader2. Test the link with Get command3. Erase memory (mass erase)4. Write binary + read for checking data5. Go I’m encountering an issue when sending the Extended Erase command to the bootloader (3. Erase memory). I followed the documentation closely for both the hardware and protocol, as described in AN2606 (pattern 16) and AN3155. Here is my manipulations :=====================First step : activation and synchronization with the bootloader :0x7F sent0x79 received Then, Get command to check supported commands on the chip. Those are following : 0x00, 0x01, 0x02, 0x11, 0x21, 0x31, 0x44, 0x63, 0x73, 0x82, 0x92.-> So, this confirm that the uart interface and hardware setup are working correctly . When I send
I was able to get CDC_Standalone in STM32CubeH7RS running on Nucleo-H7S3L8.Next, I am trying to get USB FS CDC running based on the Templates_board project.First, I need to modify the .ioc file to display the COM port in the Windows Device Manager. However, the USB regulator ready flag (PWR_CSR2_USB33RDY) is not set within HAL_PWREx_EnableUSBVoltageDetector(), causing a timeout.I have attached the current .ioc file.Any advice would be greatly appreciated.
Hi everyone, for several days I've been trying to replicate the Nx_TCP_Echo_Server application example by creating a project with the .IOC file, but I can't establish Ethernet communication. If I compile and run the example, everything works, but my application doesn't. I'll send you my project if anyone can help. Alternatively, can someone point me to a simple TCP stack without using an RTOS? Thanks so much for your help. I'm using a NUCLEO-N657X0-Q board, STM32CubeIde 1.19
tried to set up a USB device serial emulation (CDC) for STM32H563. Started a Free RTOS based project project in STM32CubeMX. But there I only can activate USB as "device_only in the "connectivity" segment but do not find any other USB related settings. I did that previously with the stm32F series and there it was in STmCube, no prob.The generated code also seems not to have the USBD_DESC_Private_Defines or similar things needed. Is it somewhere hidden under another name in STM32Cube? Or does STM32Cube does not support it? Or is this CPU issue? Or do I need to somehow get me drivers from other places and when yes, from where?
Why are the motor parameters of the compressor analyzed by Motor Pilot_6.4.0 so different from those described in the compressor specification?The attachments are a screenshot of the analysis results from Pilot and the compressor specification.If I have any misunderstandings, please help me to correct them. for example,Polot get:Ls 7.21mH, Inertia 108.8spec. of compressor:15.6mH , 230
I am using the BLE_p2p_Server_ext example on a stm32wba55cg and i want to use ADC_Channel_2 as a way of voltage measurements.My current setup:I use a new adc handle:ADCCTRL_Handle_t adc_channel2_handle = { .Uid = 2, .State = ADCCTRL_HANDLE_NOT_REG, .InitConf = { .ClockPrescaler = ADC_CLOCK_ASYNC_DIV1, .Resolution = ADC_RESOLUTION_12B, .DataAlign = ADC_DATAALIGN_RIGHT, .ScanConvMode = ADC_SCAN_DISABLE, .EOCSelection = ADC_EOC_SINGLE_CONV, .LowPowerAutoPowerOff = DISABLE, .LowPowerAutonomousDPD = ADC_LP_AUTONOMOUS_DPD_DISABLE, .LowPowerAutoWait = DISABLE, .ContinuousConvMode = DISABLE, .NbrOfConversion = 1, .ExternalTrigConv = ADC_SOFTWARE_START, .ExternalTrigConvEdge = ADC_EXTERNALTRIGCONVEDGE_NONE, .DMAContinuousRequests = DISABLE, .TriggerFrequencyMode = ADC_TRIGGER_FREQ_LOW, .Overrun = ADC_OVR_DATA_OVERWRITTEN, .SamplingTimeCommon1 = ADC_SAMPLETIME_814CYCLES_5, .SamplingTimeCommon2 = ADC_SAMPLETIME_1CYCLE_5, .OversamplingMode = DISABLE, }, .ChannelConf =
Hello,I have an application that shows image from camera from time to time on the screen. This app flashed at 0x7010'0000 and works well when I run FSBL in dev mode from debugger.But if I flash this FSBL at 0x7000'0000 and switch to flash boot app works in general (according to uart output and ethernet activity) but screen flickers.Sometimes correct image appears for very short time.What can cause the problem?(FSBL is almost unmodified Projects/STM32N6570-DK/Templates/Template_FSBL_XIP)
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.