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
Hello all, I've been having trouble with the ADC system on the STM32G071G8U6. I'm using the STM32CubeMX to generate initialization code. I have 5 external A/D inputs and it appears I am not getting readings anywhere near the real values, so I have switched to trying to just read the internal reference. I hope that if I can get the internal reference or the temperature to read correctly, I'll be able to solve the problems with the external inputs. My VDD is provided from a 2.5 volt LDO. Looking at it with a DVOM, that looks accurate. I am running the A/D at 12 bit resolution and my clcok prescaler is Synchronous clock mode divided by 2. I have the sampling time set to the maximum available in Cube, 160.5 cycles. I have a polling routine running every 1 second that reads all 5 external and all 3 internal channels. I set the VREFEN and TSEN bits in the ADC CCR register at the end of init and leave them enabled. I realize there may be board related problems wi
Hello,I am an engineering student working on my senior graduation project using the STEVAL-WBC2TX50 evaluation board. I need the STSW-WBC2STUDIO (or the updated WPSTUDIO) GUI to configure the board, but all official links on the ST website return a 404 error.Could you please provide a working download link or the installer files? My project exhibition is approaching soon, and this is a critical blocker.Thank you for your support.
Are HAL drivers and/or LL driver available for SR5E1E3 or E1E5?Where can be found?I saw some HAL LL drivers fin the MCTK SR5E1x Motor Control Toolkit 1.3.0 folder in Stellar Studio (\StellarStudio-9.0\contrib\SR5E1_MCTK-1.3.0\) but they are not present for all peripherals.Drivers present in SDK are not HAL style and seems not complete Thanks
Hello,I am designing a high-speed data logging architecture using STM32H743VIHx. I would like the community to validate my DMA architecture and answer specific questions about eMMC access. I did not find answers in the forum and I am also not an expert in microcontroller hardware/software architecture. --- SYSTEM OVERVIEW ---The logging produces a continuous signal sampled by the ADC. I need to log raw data samples along with GPS and IMU data to an eMMC for post-processing.Key parameters:- ADC: 14-bit dual interleaved on PA6 (ADC12_INP3), differential ~10 MSPS effective- eMMC: S32 GB, eMMC 5.1- SDMMC1 in 8-bit MMC mode- IMU: on SPI2 (PB12-15) at 8 kHz- GPS: on UART4 at 115200 baud --- PROPOSED DMA ARCHITECTURE ---Four concurrent DMA paths:1. ADC1+ADC2 interleaved → DMA1_Stream0 → AXI SRAM (ping buffer)Triggered by ADC1 EOC, reads CDR register (32-bit = 2 interleaved samples)Rate: ~20 MB/sPriority: VERY HIGH2. AXI SRAM (pong buffer) → MDMA_Channel0 → SDMMC1 → eMMCTriggered aft
ST moderator: updated the title to be more concise according to the below exchanges. Hello All, I am facing a problem for debugging one of the board which uses stm32h7 controller. I am not sure why this is happening but on other board I am able to debug it, but for first one its not working. Though the code and debug config settings are same for both the board and using same system to debug both, but on one board I am able to debug while on other its is not. so could you please tell me what I can try to resolve this issue. Thanks, SD
Hello ST Community,I am working on STM32H7B3LIH6Q with TouchGFX.I have successfully initialized the TFT RGB display on hardware, and the RGB test output is working properly. I created two screens in TouchGFX Designer, where pressing a touch button on Screen 1 should open Screen 2.This works correctly in the PC simulator, but on actual hardware the touch command/button press is not working. The display is visible, but touch input is not detected.I have attached the hardware output image and my touch enable/source code for reference.Could anyone please suggest what I should check in the hardware touch interface? Is the issue likely related to , BSP touch driver, I2C touch controller initialization, or touch coordinate mapping?Thank you,Vijaya.
Hi, I have all configured using internal loop FDCAN1 and there is not working on my STM32G474RE-Nucleo board
Hi, We are busy making a setup with 2 nucleo-c092rc boards. Our first test was to send from board 1 to board 2 by the integrated CAN interface on these boards. We started at 1Mbits and this worked great. Also on 4Mbits the setup worked great. But we also want to test this on 8Mbits and now the transmitter is not sending correctly. We only see that the arbitration phase is send out and a couple of bits of the data part, but then the transmitters stops sending. We have tried with internal HSI(48Mhz) and external HSE crystal which is also 48Mhz on the nucleo boards. We calculated the values for the SyncJumpWidth and timeseg1 and 2 and also tested with values slightly altered. hfdcan1.Init.DataPrescaler = 1; hfdcan1.Init.DataSyncJumpWidth = 2; hfdcan1.Init.DataTimeSeg1 = 2; hfdcan1.Init.DataTimeSeg2 = 3; But we allways have the same outcome. Sometimes it's not sending anything and sometimes only a small part of the total message of 64 bytes. What could be the issue here?
Hello,I am evaluating the STMicroelectronics IIS2MDC magnetometer and measuring its supply current using a Joulescope. According to the datasheet, the device should draw approximately ~1.5 µA in idle mode, yet I consistently measure about 450 µA, which is far from the specified behavior.Test setup & observationsSupply: 3.0–3.3 V (also tested across the allowed 1.71–3.6 V range).Measurement instrument: Joulescope (µA resolution).Verified results across multiple PCBs and multiple IC samples.Tested the sensor stand-alone (no MCU connected, only power rails).Same behavior observed on the STMicroelectronics evaluation board.Datasheet behavior (expected)After power-on, the device performs a ~20 ms boot procedure to load trimming parameters and then enters Idle mode automatically.In Idle mode, most internal blocks are switched off to minimize power consumption, while I²C/SPI remain active.Idle mode is selected with MD[1:0] = 10 or 11 in CFG_REG_A.A single-measurement cycle (MD=01) perform
This is some feedback for the STM32C5 OEMiRoT example provided by ST.This is based on the STM32C5-MCU-HAL2.0.0 pack download 06-05-2026.Attached you can also find the CMake Config files for the example, specifically for the NUCLEO-C542RC board.General Bug Provisioning Python ScriptThe provisioning python script has a small bug when it comes to the prebuild script which adjusts the linker files.These files are compiler specific so the correct adjustment function needs to be called.This compiler dependent code is missing in the `_update_linker_define()` function in `STM32C5-MCU-HAL/rot/rot_provisioning/helper/project/project_generic.py` starting at line 318:linker_path = self.config.get_compiler_linker(compiler) value = f"0x{self.flash_layout.get_flash_layout(define):X}" update_define_in_file(linker_path, define, value)change tolinker_path = self.config.get_compiler_linker(compiler) value = f"0x{self.flash_layout.get_flash_layout(define):X}" if (compiler == "gcc"): update_variable_
Hello, ST expert For GPIO structure, what are the differences between FT and TT mode? Are there any differences for the ESD diode and the other diode in these two modes? BR Yang
Hi, I am working on a TPMS project and I have migrated from FXTH to NTM88. With the FXTH I was using the MKW01 board for RF communication, on the NTM88 side, to use the same RF board I need the Starter Package for NTM88 and MKW01. The link can be found on NXP website but doesn't work. I have been advised to get in touch with you as the NXP MEMS sensor products have been transitioned to you since February 2026. I have also search on ST website but with no luck. Would it be possible to advice how can I get hold of the info from the NTM88 and MKW01 package? Regards,Mihnea
I am working on UART communication between an STM32H563 and a Raspberry Pi CM4.Currently, I am using UART without hardware flow control (RTS/CTS disabled). During continuous communication, I am frequently getting ORE (Overrun Error) on the STM32 side.Configuration details:MCU: STM32H563Communication: UARTFlow control: DisabledUART mode: InterruptPeer device: Raspberry PiI would like to know:1. What is the best workaround to avoid ORE errors without enabling hardware flow control?2. Is it reliable to use UART communication continuously without RTS/CTS?3. What are the recommended UART settings or software handling methods for STM32H5 series?4. How should ORE recovery be handled properly in STM32H563?Currently, once ORE occurs, The data became lost.
Is there anyway to increase the size of the icons in the top menu bar in the IDE?I am 70 now and my eyesight needs a wake-up here :)
Hi All,I've just been watching an ST tutorial video on how to implement bare-metal Device CDC USB on an STM32U3.During the video, the lecturer says that the code is available within the workshop download. No link is provided to the workshop code....Does anyone know where I can find it? This is the video in question : https://youtu.be/m8ph9JIY5QE?list=PLTJzs51NlEIAHFfePhKJPsnWvT5XidJuU&t=1164Any help would be appreciated.CheersMichael
Hello ,I am working on a project with the STM32L562CET6 microcontroller and have encountered an issue with the timer interrupt callback function. 1. I configured TIM6 as the clock source for the microcontroller. Consequently, the HAL_TIM_PeriodElapsedCallback() function is automatically triggered whenever the TIM6 interrupt occurs. 2. Now, I have configured TIM2 for a different purpose, but I noticed that when the TIM2 interrupt occurs, the same HAL_TIM_PeriodElapsedCallback() is triggered.Since the HAL_TIM_PeriodElapsedCallback() is defined with the weak attribute, I understand that I can redefine it in my user code. However, this causes conflicts when multiple timers (like TIM6 and TIM2) trigger this callback.Questions: 1. Is there a way to alias or redirect the HAL_TIM_PeriodElapsedCallback() to separate functions for different timers (e.g., one for TIM6 and another for TIM2)? 2. Is there any other specific callback function available for timers i
Hi All, I want to do something very basic, but somehow cannot manage to do it. What happens if you have a PWM signal on an IO Pin, generated by a timer, and you disable the timer? What happens to the physical IO Pin ? Is it stuck at the state where it was when you disabled it ?, Does it go Low ? Or High. The Idle state of the Timer is Low, and the On state High. Thanks, DJ
I am trying to learn how to program a STM32 micro-controller, specifically a STM32C593. The thing is according to its datasheet it has Ethernet functionality, bit it is missing in the peripheral list inside STM32CUBEMX2 IDE.
Hello ST Community team,I would like to report a possible inconsistency in the STM32 MCU Portfolio Selector regarding Ethernet filtering for the STM32C5 series.While selecting MCUs using the Portfolio Selector, I filtered devices through:- EthernetThe reference STM32C593CET6 appears as supporting Ethernet functionality. However, according to DS15136 (Table 1), this specific MCU does not include the Ethernet peripheral.This may create confusion for developers, especially since the STM32C5 family is still relatively new and many users rely on the Portfolio Selector during early device selection.Could you please review and correct this behavior.Ps: more details available on this post. Best Regards.II
Hello!I am having trouble verifying NPU operation on the NUCLEO-N657X0-Q board.I am trying to test a simple INT8 FNN (Feed-Forward Neural Network) using an ONNX model. The project was generated via X-CUBE-AI within CubeMX. I have configured the AXI and Clock settings (CPU: 600MHz, NPU: 800MHz, NPU AXI: 800MHz) and, given the model's simplicity, I set it to use internal SRAM only.While the code execution seems to flow correctly without errors, I noticed that the output values are not being updated. The output buffer remains unchanged, or in some cases, still holds values that look like the input data. It seems the NPU's computation results are not being written back to the memory correctly.I would greatly appreciate any advice or suggestions, even if they aren't complete solutions!Environment Versions:CubeIDE: 2.1.1CubeMX: 6.16.1CubeProgrammer: 2.22.0ST Edge AI: 4.0ST-LINK: V3J17M10I have attached one of the project files I’ve been testing for your reference. Thank you always for your s
Hello everyone,I am currently working with the Aliro software expansion for STM32Cube using the new STEVAL-ALOCKCB board (Aliro access control reference design based on STM32WBA65RI, ST25R300, and STSAFE-A120).Both the hardware and software are in their original, unmodified state from ST. The nfc12ble project builds successfully without any issues.However, I am encountering a consistent problem:the function CryptoInit() always returns false.From debugging, I can see that the failure originates from the CheckReaderPubK() function, which internally calls isValidProvisioning(). This function also returns false, causing the entire initialization to fail.It seems that the provisioning structure is not considered valid. In particular:The check prov->isValid == DEVICE_PROVISIONING_STRUCT_IS_VALID fails.DEVICE_PROVISIONING_STRUCT_IS_VALID is defined as 0xA5A55A5A (decimal: 2779077210).However, the actual value read from flash appears to be different (e.g., 0xFFFFFFFF), which suggests that t
Dear STMicroelectronics Community / Support Team,I hope you are doing well.I am currently working with the STM32N6 Discovery Kit and noticed that it uses an external Octal NOR flash device with the part number MX66UW1G45G. However, I have been unable to locate a public datasheet for this exact component.I was able to find datasheets for similar parts such as MX66U1G45G and MX66UM1G45G, but not for the “UW” variant used on the board. This has led to some confusion regarding the exact specifications, supported features, and command set of the device.I would appreciate your guidance on the following points:Is MX66UW1G45G a custom or internal part number used specifically for STM32 evaluation boards?Is there a publicly available datasheet for this device, or can it be shared upon request?Can MX66UM1G45G (or another publicly documented part) be considered a fully compatible equivalent for development purposes?Are there any specific differences (e.g., command set, timing, interface behavior)
Hello, I am working on an SNMP implementation using STM32H753ZI with the LwIP Ethernet stack. Currently, SNMP v1 is working successfully, including trap generation and reception testing using Net-SNMP tools. I am able to send enterprise-specific traps from the STM32 device. Below is the trap code currently working for SNMP v1: void send_temp_fault_trap(void) { static const u32_t enterprise_oid_arr[] = {1,3,6,1,4,1,50598}; struct snmp_obj_id enterprise_oid; enterprise_oid.len = LWIP_ARRAYSIZE(enterprise_oid_arr); memcpy(enterprise_oid.id,enterprise_oid_arr,sizeof(enterprise_oid_arr)); ip_addr_t dst; IP4_ADDR(&dst, 192,168,0,255); snmp_trap_dst_ip_set(0, &dst); snmp_trap_dst_enable(0, 1); static const u32_t msg_oid_arr[] = { 1,3,6,1,4,1,50898,10 }; static struct snmp_varbind vb; static struct snmp_obj_id msg_oid; static char msg[] = "System Working"; msg_oid.len = LWIP_ARRAYSIZE(msg_oid_arr); memcpy(msg_oid.id,msg_oid_arr,sizeof(msg_oid_arr)); vb.next = NULL
Hello everyone,I have encountered a strange issue with my UART transmission function on an STM32 microcontroller operating in Half-Duplex Open-Drain mode.Currently, the function works perfectly fine without checking the TC flag. However, when I add a check to wait for the transmission completion at the end of the function, my logic analyzer shows completely garbled bytes (corrupted data).Here is the code that works perfectly (without the TC check):void send_array(uint8_t *arr, uint8_t size) { /* Receiver disable */ USART3->CR1 &= ~(CR1_RE); for (int i = 0; i < size; i++) { /* Wait until Transmit data register is empty */ while(!(USART3->SR & SR_TXE)){} /* Send byte */ USART3->DR = arr[i]; } /* Receiver enable */ USART3->CR1 |= CR1_RE; }And here is the modification that breaks the transmission and leads to garbled bytes on the analyzer:void send_array(uint8_t *arr, uint8_t size) { /* Receiver disable */ USART3->CR1 &= ~(CR1_RE); for (int i
Hi,I am using the STM32F407VET6 chip to simulate the SENT protocol. I have encountered some issues and would appreciate it if professionals in the forum could provide some answers.1.Since the SENT protocol signal needs to change the output waveform based on the transmitted data, I attempted to use the TIM BURST feature of the chip to simulate the SENT signal. I am configuring it using STM32CubeMX software. Below are the relevant configurations: 2.The SENT protocol specifies that one tick is 3μs to 10μs. I initially set the PWM to a period of 3μs with a 50% duty cycle square wave and output it. Since I am not very familiar with the TIM BURST feature, I first used the HAL_TIM_DMABurst_WriteStart() function to attempt to modify the waveform originally output by the chip. I plan to change the waveform to the synchronization signal in the SENT protocol, which involves outputting 5 ticks of low-level signal and 51 ticks of high-level signal.Initial PWM output waveform:The de
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.