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
I am using the ST Host library version 3.54 on an STM32F769 device, supporting HID devices. I am using the internal Full Speed phys.I have a USB mouse connected and all works fine, however I would like to save power when the mouse is not being used by putting it into suspend. I cannot see any support for this in the ST middleware, so I asked Ai and got this:USBH_StatusTypeDef USBH_LL_Suspend(USBH_HandleTypeDef *phost) { HCD_HandleTypeDef *hhcd = phost->pData; USB_OTG_GlobalTypeDef *USBx = hhcd->Instance; uint32_t USBx_BASE = (uint32_t)USBx; USBx->GINTMSK |= USB_OTG_GINTMSK_WUIM; /* Suspend the port */ USBx_HPRT0 |= USB_OTG_HPRT_PSUSP; return USBH_OK; }This works fine - the mouse powers down and there is a useful drop in power consumption.However, I cannot get the port out of standby. This is the code Ai gave me for the Host to awake the port:USBH_StatusTypeDef USBH_LL_Resume(USBH_HandleTypeDef *phost) { HCD_HandleTypeDef *hhcd = phost->pData; U
Hello, I wonder that examples could apply Nucleo-H753ZI board... There are some examples about H743 or another one but no example for Nucleo-H753ZI board. I understand 48k-2channel-16bit can be implemented easily, But I wonder that Nucleo-H753ZI can make 44.1kHz sampling or, 24bit input or, 4 ~ 6 channel input. I can't solve just 48kHz-24bit-2Channel input's buffer underrun problem, 44.1kHz-16bit-2Channel buffer underrun, and recognizing USB3300 ULPI to Nucleo-H753ZI. Is it can be done by this board? Or, Is there any spec making limits? edit: related thread <Nucleo - H753ZI> + <USB3300 ULPI> connecting to P... - STMicroelectronics Community
Heyho,I just changed a big PCB (1st revision working) with a H733 and added a micro SD cardholder and connected it to the SDMMC2 peripheral.Only to find out later that this #2 does NOT work with the extra IDMA controller.SDMMC1 is out of the question because I absolutely need I2SCKIN for the SAIs, and I didn't want to change the complete pin-out and PCB design (Altium says: Components on board: 1015).I'm pretty sure I've checked the RM, but maybe I oversaw something...So, is there any way to use another DMA with SDMMC2 ?Thanks in advance!
Hello Team, I am using stm32f769 controller. I am using timer 1 channel 4 for pwm output, and my APB1 clock is 180MHZ here I am taking prescaler : 17999 and ARR=1999 and ccr=1000 for this values I can see output of pwm by generating 5hz pulses. But when I want to generate 486 pulses where my psc:17999 , ARR=19, ccr=10, I cant see any output pulses, my pwm is not responding. (ARR+1)(psc+1)=180MHZ/frequency (ARR+1)(psc+1)=180MHZ/486 (ARR+1)(psc+1)= 370370 ARR+1=370370/18000 ARR+1=20 ARR=19 for some values upto ARR= 40 i am getting output over pwm but from values ARR=20 i am not getting output could you please help me Thanks vamshi kumar
Dear all, I would like to connect a camera to my Nucleo F756ZG board, with the goal to send images via the ethernet port. However, this board doesn't feature a 30-pin ZIF connector nor a 22‑pin FFC connector....Apparently, the STM32 F756ZG has a "DCMI". Is this accessible on the Nucleo board as well?Which module/camera do you recommend for the Nucleo F756ZG?Would you recommend Arducam? They seem suspiciously cheapThe B-CAMS-IMX is not compatible, right?Many thanks
Hello everyone,I’m working with the STM32U5G9J-DK2 and trying to implement a Bootloader + XIP (Execute-In-Place) application architecture using the external flash.Target setup:A minimal bootloader running from internal flashThe main application linked to and executing from external flash (memory-mapped at 0x90000000)The main motivation is to free internal flash and validate this approach for a future MCU with very limited internal flash.What I’m specifically looking for help withProper CubeMX / .ioc configuration for the bootloaderWhich peripherals must be enabled (RCC, PWR, ICACHE, OSPI, etc.)Which peripherals should not be enabled to avoid conflicts with the XIP appAny STM32U5-specific gotchas when initializing OSPI for XIPProper configuration of the application projectRecommended changes to the application .iocWhat initialization should be removed from the app (HAL_Init, clock, OSPI, FLASH, etc.)Reference samplesSTM32Cube examples that demonstrate a full bootloader + XIP app flow on
STM32G030F6P6 microcontroller CubeIDE environment when enabling interrupt for I2C an LL_I2C_EnableIT_RX (I2C2); error occurs _______stm32g030xx.h:618:29: error: expected declaration specifiers or '...' before '(' token error occurs when any I2C interrupt is enabled
We are starting to develop a new hardware platform and are currently evaluating the STM32H7R/S series for the main controller.The question now is which RTOS is best suited here in terms of long-term support from ST. We're going to use a lot of communication interfaces (USB, Ethernet, external WiFi/BT module, CAN), an RTOS with an integrated communication stack would make our work easier.Zephyr: High initial training effort, but you get a great framework. The two available H7RS-Eval boards are already supported, but in the video Zephyr 4.1: Status of STM32 support – Erwan Gouriou // Zephyr Meetup Grenoble Mar. 26, 2025 by @Erwan Gouriou from March of this year you can see that Zephyr support for the H7RS is not yet complete. Can anyone give an estimate of the extent to which you can already work with it or how much effort is involved in porting drivers from the H7 to the H7RS that are not yet available? I'm new to Zephyr and can't estimate the effort involved.ThreadX: Support
Hello everyone,I am working on shifting sensored FOC to sensorless FOC for a BLDC motor using STM32F103C8T6. I have successfully implemented all necessary transformations (Clark, Park, and Inverse Park), and the waveforms appear correct.To estimate the rotor angle, I am using a Sliding Mode Observer (SMO). However, since the STM32F103 lacks an FPU, So function like atan2f() increase execution time. Instead, I implemented an alternate method for angle calculation. I am using position detected by hall sensor as reference, but output of my sensorless algorithm is having some differences from hall sensor signal.This is output waveformHere is the code I am using for angle calculation: void SMOcalcalculation(int32_t Valpa, int32_t Vbeta, int32_t Ialpa, int32_t Ibeta){ // this is for approximated or predicted values of motor phase currents // this is need to reconstant bemf :The error between the actual and estimated currents (error_alpa and error_beta) is used to compute the Slid
I am using the STM32U585RIT6 microcontroller with the B-U585I-IOT02A development kit. I need to implement USB functionality using an interrupt-based approach. In my project, I have configured USB_OTG_FS in Device-only mode, enabled the NVIC global interrupt, and enabled USBX CDC-ACM. I am using bare-metal code (no RTOS or ThreadX). After completing all the USB configurations, inside the MX_USBX_Device_Init() function I added the following initialization: RX FIFO and TX FIFO configurations USBX DCD initialization using _ux_dcd_stm32_initialize() Started the PCD using HAL_PCD_Start() In the main while loop, I am calling ux_device_stack_tasks_run(). With this setup, the USB device starts correctly and is detected as a Virtual COM Port. Now, I want to handle USB connect and disconnect events using interrupts. For this, VBUS sensing may need to be enabled. While referring to the B-U585I-IOT02A schematic, the USB_VBUS_SENSE pin is shown as PF14. However, in the MCU datasheet and in STM32Cube
i am using nucleo-h753zi and i need to integrate external flash via spi, MX25L6433F this is my flash ic. i was struggling to integrate this flash so please guide me to achieve it also if possible please give any example code for this project
Please check STM32MP157F-DK2 no function issue after STM32MP157F-DK2.#1. After receiving the STM32MP157F-DK2 board, I connected a 5V/3A Type-C Power Adapter to CN6 and verified Linux boot and operation. LCD operation.#2. Updated the Linux image on the SD card using STM32Cube Programmer on a Windows PC.Following the procedure in the link below, successfully updated the Linux flash image to the SD card using FlashLayout_sdcard_stm32mp157f-dk2-optee.tsv via STM32Cube Programmer on the Windows PC.https://wiki.st.com/stm32mpu/wiki/Getting_started/STM32MP1_boards/STM32MP157x-DK2/Let%27s_start/Populate_the_target_and_boot_the_image#3. Turn SW1 BOOT0 and BOOT2 back ON, connect the USB Cable to the ST-LINK (CN11) on the PC, and connect the 5V/3A Type-C Power Adapter to CN6 to boot the stm32mp157f-dk2 board.#4. UART logs output normally, but the message "ERROR USB TYPE-C connection in unattached mode" appears and Linux does not boot. - The same Type-C Power Adapter used in #1 above was
Title edited - part number added (not an ST part)After commencing debugging with the JLink, these faults persistently occur after approximately 30 seconds. However, this JLink functions correctly when debugging IAR. What might be the cause?The actual chip used is the STM32F407VET6.JLink keeps disconnecting from CubeIDE for some reason. Debugging frequency SWD=500kThe ST Community moderator has edited the post to comply with the forum language guidelines. The language of the Community is English. For more information, see: ST Community Terms and Conditions
Right now, if there are any widgets on a page the Designer automatically creates a canvas buffer for it. The following code is created in the ViewBase .hpp/.cpp files static const uint32_t CANVAS_BUFFER_SIZE = 12000; uint8_t canvasBuffer[CANVAS_BUFFER_SIZE]; touchgfx::CanvasWidgetRenderer::setupBuffer(canvasBuffer, CANVAS_BUFFER_SIZE); This gets set up for each view that has widgets. I want it to STOP DOING THAT. I want to allocate my own buffer to it, in a piece of ram that I choose. Please, please, please give me the option to tell the Designer that I will handle it myself.I can allocate my own buffer in the TouchGFXHAL::initialize() function, but it's just going to get overridden as soon as a View gets, as that constructor will set up it's own function. This is especially important, because I have give it a buffer at the start of time anyways, otherwise it crashes. When the view page is changed to, it calls StatusContainer, which calls an I
When using the STM32H743ZI Nucleo board as the I²C master and two STM32 Blue Pill boards as I²C slaves with different addresses, the master requests data from the slaves and the slaves respond accordingly. However, I²C communication is unreliable during initial startup, and intermittent I²C errors are observed during runtime.Is there anyone to help me with this issue.Thank you.
I am trying to get wake-up from HALT mode working on the STM8L151 using the RTC, but without success. I tried two approaches:using the RTC wake-up counter to wake the device after 10 seconds andusing the RTC alarm to wake it up every minute.Neither approach was successful — once the MCU enters sleep, it no longer wakes up. I have the feeling that the issue is not so much directly in main and in the CLK + RTC configuration, but rather in the ISR, IQR handling setup. At this point, however, I’m not sure what to add, what to check, or in which files (stm8_interrupt_vector.c, stm8l15x_itc.c,....).I would be very grateful if someone could advise me on what belongs where, so that I can understand the entire interrupt chain and which additional files in the Inc directory need to be adjusted. In parallel, I also have several related follow-up questions:I am using STM8L15x_StdPeriph_Driver (downloaded from ST as STSW-STM8016 version 1.6.2) — is this version up to date?In the examples, there are
I am developing with STM32CubeMX and generating initialization code for an STM32N6 device. In my FSBL (First Stage Boot Loader), I use USART10 to connect to the ST-LINK V3’s Virtual COM Port (VCP). However, it seems that CubeMX does not correctly generate the peripheral clock initialization code for USART10.After a series of investigations, I found that when generating USART10’s clock initialization code, only the kernel clock for USART10 is set to IC14, but the PLL source and divider for IC14 are missing. This happens with both LL and HAL libraries. For USART6, there is no such problem — its clock configuration is generated correctly.This behavior is very strange. During debugging, I also encountered an issue where PLL2 was not initialized, but that problem disappeared later.To work around this, I manually added IC14 configuration code for USART10 following the pattern used for USART6, setting IC14 = 96 MHz. After that, USART10 worked normally at the maximum baud rate of 12 Mbps.Has a
So as the title suggests, I have been trying to get the LCD screen to work on the STM32F469i-DISCO board. Currently I just want it to turn on at all. I found the BSP drivers in this link as well as the OTM8009A drivers in this other link When I run the code however, it gives me the following error:../Drivers/BSP/STM32469I-Discovery/stm32469i_discovery_lcd.c:402:5: error: too few arguments to function 'OTM8009A_Init'402 | OTM8009A_Init(OTM8009A_FORMAT_RGB565, orientation); I noticed that the function prototype for that function is int32_t OTM8009A_Init(OTM8009A_Object_t *pObj, uint32_t ColorCoding, uint32_t Orientation);so I am not sure why the lcd drivers call the function in that way. Are there better/newer drivers that I should be using instead?
Dear Sir/Madam, We are using the STM32WLE5CCU6 LoRa MCU for our custom LoRa application project. We are able to detect the MCU successfully, and flashing/programming is also working without any issues. However, with our LoRa application, we were initially unable to establish a link with the LoRa gateway. After investigation, we identified an issue related to the 32 MHz clock circuit. We replaced the crystal on our custom board with the crystal used on the STM32WLE5 evaluation board, and after this change the issue was resolved. We were able to communicate with the gateway, and packets were received correctly. Later, we ordered the same evaluation board crystal again and assembled it on our board. However, this time we are once again unable to link with the gateway, even though the crystal part number is the same. This behavior is confusing, as the evaluation board crystal had previously worked on our board. We would like to understand: Is there any register or configuration option in
We are operating ASM330LHH with ODR set at 3333Hz, but the actual measured output is about 3570Hz.This is not stated in the specifications, but is this within the range of the specifications?
When using stm32n6 and enabling both GFX and AI models, the runtime continuously reports errors:"Epoch controller error interrupt: EC_IRQ = 0x00000008 Epoch controller opcode counter: 0x00000000 Epoch controller tag: 0x00000000 ATON_STD_IRQHandler()@851: irqs=0xlx Assertion '0' failed: file 'E:/TouchGFXProjects/AR_Glasses/Middlewares/AI_Runtime/Npu/ll_aton/ll_aton_runtime.c', line 855, function: __LL_ATON_RT_IrqErr"What could be the possible cause of this? Is it related to the XSPI2 bus? both GFX and cubeAI utilize XSP2.The model used is the official demo program: st_yolo_x_nano_480_1.0_0.25_3_st_int8.tflite from STM32N6-GettingStarted-ObjectDetection-main.I sincerely hope that st can help me solve this problem. Thanks
I want to use DMA with SPI in slave receive mode with words longer than 8 bits :I launch the DMA with the function: HAL_SPI_Receive_DMA( &HSPI_ADS, (uint8_t*)ads_dma_buffer, ADS_BUFFER_MAX_SIZE );Unfortunately in this function the following test fails: /* Packing mode management is enabled by the DMA settings */ if (((hspi->Init.DataSize > SPI_DATASIZE_16BIT) && (hspi->hdmarx->Init.DestDataWidth != DMA_DEST_DATAWIDTH_WORD) && \ (IS_SPI_FULL_INSTANCE(hspi->Instance))) || \ ((hspi->Init.DataSize > SPI_DATASIZE_8BIT) && (hspi->hdmarx->Init.DestDataWidth == DMA_DEST_DATAWIDTH_BYTE))) { /* Restriction the DMA data received is not allowed in this mode */ errorcode = HAL_ERROR; __HAL_UNLOCK(hspi); return errorcode; } Because the structure "hspi->hdmarx->Init" is never initialized. It is not initialized, but the structure associated with the nodes is indeed initialized.In the case where the data size is 8 bits, the test i
Since STA8135G is a triple-frequency GNSS chip, its hardware should have the capability to decode the E6 HAS message. However, I can't find related message from its RTCM output. I have searched the web and was informed that it can be supported by upgrading to certain firmware, named Measurement Engine (ME) Firmware. Can anyone help to tell me where I can find the suitable firmware, and whether I can do the upgrading and make my chip a more precise one?
HiI have been messing around with VL53L4CD for the last few months, and I recently realized that my readings differ significantly, depending on the target color/texture.Here is my setup: The sensor is set on its side, and directly in front of it, at the 20cm mark, I place a few different gray-level cardboard boxes, ranging from black to white, mostly gloss-textured.The sensor readings vary by about 10mm (222 shortest, 233 longest) depending on the box.Performing offset calibration helps to have an accurate reading on a gray target, but the error persists for other colors.I have tried performing cross-talk calibration, although I don't have a cover glass for this test, but that doesn't seem to help either.My question is - do we have to know the target reflectivity in advance and calibrate for it? Am I wrong to expect more consistent readings against various targets?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.