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
Hy, I received the STM32N6 DK Kit, switched it on - and it crashes immediately. All demos run smoothly, but as soon as I start the AI demo, the display turns grey after approx 2 seconds. I power the device over USB port with my 65W Laptop Power supply, jumper JP2 set to 3-4 (5V_USB)When running the DCMIPP_ContinuousMode_FSBL example project, I see a stable, smooth camera image, so apparently no connection issues to the camera.Any hints?Best regardsHarald
1. Issues with Headless Execution and CLI CommandsGUI Opens with CLI Flags: Certain CLI flags designed for automation still launch the AWT/Swing GUI components, which causes failures in headless environments (like Docker containers or typical Linux servers).Specific Example: The -P flag (Package Manager) throws a java.awt.AWTError: Can't connect to X11 window server error because it requires a display.Expected Behavior: All package management and code generation functions should have a truly headless (no GUI dependencies) CLI option that works universally in server environments.Lack of Clear CLI Documentation: Documentation for reliable, headless CLI commands (like swmgr install) is sparse or non-existent in the official user manual (UM1718), leading to trial-and-error with internal commands. 2. Issues with Offline Package Management and Database IndexingDiscrepancy Between Repository and Database Paths: Manually placing firmware p
Hi,I'm looking for some guidance on configuring the STM32N6570-DK so i can use the screen and onboard mic / headphone out jack.It looks like everything i need is in stm32n6570_discovery_audio.h and stm32n6570_discovery_lcd.h, and i did manage to get the screen going with some configuration from this repo: https://github.com/jpcano/STM32N6-digits When I then try and enable audio the following calls succeed:void Audio_Setup(void){ AudioInit.Device = AUDIO_IN_DEVICE_DIGITAL_MIC; AudioInit.SampleRate = AUDIO_FREQUENCY_16K; AudioInit.BitsPerSample = AUDIO_RESOLUTION_16B; AudioInit.ChannelsNbr = 1; AudioInit.Volume = 80; if (BSP_AUDIO_IN_Init(0, &AudioInit) != BSP_ERROR_NONE) { Error_Handler(); } if (BSP_AUDIO_IN_Record(0, AudioBuffer, AUDIO_BUFFER_SIZE) != BSP_ERROR_NONE) { Error_Handler(); }}after this the transfer callbacks never get hit and any calls to drawing the screen, HAL functions like UART sending or blinking a led also stop working.I did try the STM
Hello Team,I am trying to add CMSIS FreeRtos to empty project. But I can see that .ioc file is not generated under my project.I have also gone through the posts who have encountered the similar issue. but didn't get the resolution.While creating the empty project. There is no option for selecting Stm32 cube project or empty project. attaching the snippet for your reference.After creating the project successfully, I am getting the below build warningwarning: #warning "FPU is not initialized, but the project is compiling for an FPU. Please initialize the FPU before use." [-Wcpp]So, I request you to guide me to resolve this issue.I am using the Stm32CubeIDE: - V2.0.0 Thanks,Sagar
I am looking for any example project that uses Azure RTOS FileX and LevelX using onchip flash.I understand the programming flash can be segmented and used for general purpose file storage but I cannot find any example across any series packages which uses the on chip flash. Is this even possible?I am mostly looking on how to set the levelx configuration parameters in STM32CubeMX. I know how to integerate the low level flash drivers from the HAL.
I've set up my STM32U5A9J-DK to use ThreadX and connect to my PC via USBX and Audio Class.I'm correctly see the Audio Device on my PC and I can easily stream audio to it. The only thing is that, for some reason, the callback for new frame done is not fired audio_stream_parameter[0].ux_device_class_audio_stream_parameter_callbacks.ux_device_class_audio_stream_change = USBD_AUDIO_PlaybackStreamChange; audio_stream_parameter[0].ux_device_class_audio_stream_parameter_callbacks.ux_device_class_audio_stream_frame_done = USBD_AUDIO_PlaybackStreamFrameDone;The strage thing is that USBD_AUDIO_PlaybackStreamChange is correctly calledVOID USBD_AUDIO_PlaybackStreamChange(UX_DEVICE_CLASS_AUDIO_STREAM *audio_play_stream, ULONG alternate_setting) { /* USER CODE BEGIN USBD_AUDIO_PlaybackStreamChange */ /* Do nothing if alternate setting is 0 (stream closed). */ if (alternate_setting == 0) { return; } BufferCtl.state = PLAY_BUFFER_OFFSET_UNKNOWN; /* Start reception (stream opened).
When attempting to initialize a single GPIO EXTI as disabled, the generated code still enables the interrupt. I did notice that if I uncheck all of the EXTI lines, then none of them are enabled in the generated code. So it seems it's all or nothing. Is this the expected behavior?Thanks,FrankThis:Generates: /* EXTI interrupt init*/ HAL_NVIC_SetPriority(EXTI0_IRQn, 5, 0); HAL_NVIC_EnableIRQ(EXTI0_IRQn); HAL_NVIC_SetPriority(EXTI2_IRQn, 6, 0); HAL_NVIC_EnableIRQ(EXTI2_IRQn); HAL_NVIC_SetPriority(EXTI3_IRQn, 6, 0); HAL_NVIC_EnableIRQ(EXTI3_IRQn); HAL_NVIC_SetPriority(EXTI4_IRQn, 6, 0); HAL_NVIC_EnableIRQ(EXTI4_IRQn);However, this:Generates: /* EXTI interrupt init*/ HAL_NVIC_SetPriority(EXTI0_IRQn, 5, 0); HAL_NVIC_SetPriority(EXTI2_IRQn, 6, 0); HAL_NVIC_SetPriority(EXTI3_IRQn, 6, 0); HAL_NVIC_SetPriority(EXTI4_IRQn, 6, 0);
I'm using an ov2640 camera. When I use HAL_DCMI_Start_DMA(&hdcmi, DCMI_MODE_CONTINUOUS, (uint32_t)camBuf0, (CAM_W * CAM_H) / 2);, HAL_DCMI_FrameEventCallback is called, but when I use HAL_DCMI_Start_DMA(&hdcmi, DCMI_MODE_SNAPSHOT, (uint32_t)camBuf0, (CAM_W * CAM_H) / 2);, HAL_DCMI_FrameEventCallback is never called. Why is this happening? Below are the relevant settings. I'm using an STM32H743 MCU. static void MX_DCMI_Init(void) { /* USER CODE BEGIN DCMI_Init 0 */ /* USER CODE END DCMI_Init 0 */ /* USER CODE BEGIN DCMI_Init 1 */ /* USER CODE END DCMI_Init 1 */ hdcmi.Instance = DCMI; hdcmi.Init.SynchroMode = DCMI_SYNCHRO_HARDWARE; hdcmi.Init.PCKPolarity = DCMI_PCKPOLARITY_RISING; hdcmi.Init.VSPolarity = DCMI_VSPOLARITY_LOW; hdcmi.Init.HSPolarity = DCMI_HSPOLARITY_LOW; hdcmi.Init.CaptureRate = DCMI_CR_ALL_FRAME; hdcmi.Init.ExtendedDataMode = DCMI_EXTEND_DATA_8B; hdcmi.Init.JPEGMode = DCMI_JPEG_DISABLE; hdcmi.Init.ByteSelectMode = DCMI_BSM_ALL; hdcm
Hello all,I am working with the STM32WB series and using a 32 MHz crystal for the HSE (specifically the Murata XRCGB32M000F1SBBR0 on my custom board).To verify correct operation, I measured the analog waveform on OSC_IN and OSC_OUT using a low-capacitance active probe (Keysight N2796A). ObservationOn both my custom board and the official NUCLEO-WB55 evaluation board, I consistently measure the following:OSC_OUT ≈ 500 mVpp, ~400 mV DC biasOSC_IN ≈ slightly lower amplitude but similar bias (~400 mV)The two boards produce almost identical results, so this does not appear to be a layout or crystal-selection issue on my side. Documentation gapI cannot find any ST document (datasheet, reference manual, AN2867, or app notes specific to STM32WB) that specifies:Expected voltage swing amplitude on OSC_IN or OSC_OUTExpected bias pointTypical or minimum oscillator drive level in terms of Vpp for HSE on the STM32WB seriesThe datasheet provides the crystal requirements (ESR, CL, drive leve
Hii, I am using STPMIC25A with STM32mp257FAK3 with DDR3L in one custom design and LPDDR4 in second custom design.I am able to change o/p of Buck 4, Buck 6 and LDO 3 as per the requirement by changing the voltage for the same in the device tree, under fdts in Arm Trusted Firmware. I am sharing the node below:&i2c7 {pinctrl-names = "default";pinctrl-0 = <&i2c7_pins_a>;i2c-scl-rising-time-ns = <185>;i2c-scl-falling-time-ns = <20>;clock-frequency = <400000>;status = "okay";#address-cells = <1>;#size-cells = <0>;pmic2: stpmic@33 {compatible = "st,stpmic2";reg = <0x33>;status = "okay";regulators {compatible = "st,stpmic2-regulators";vddcpu: buck1 {regulator-name = "vddcpu";regulator-min-microvolt = <800000>;regulator-max-microvolt = <910000>;regulator-always-on;};vddcore: buck2 {regulator-name = "vddcore";regulator-min-microvolt = <820000>;regulator-max-microvolt = <820000>;regulator-always-on;};vddgpu: buck3 {reg
I am working on a project using STM32N6570-DK. I now have a big problem with (1) how to run my code in a Flash and (2) how to connect the ST-LINK to stm32cube ide.I created a project “AYA” in cube IDE . Cube IDE asked if it is FSBL project or application project. I chose application, and all my work after are done within AYA_appliI finished the coding and testing from debug version to release version. Both with ST-LINK connected (with is integrated in the DK), and boot1/boot2 keys are set =00. My code runs correctly.TROUBLES came after the FLASH: I used STM32CubeProgrammer to write my .bin file to the -dk board. boot0/boot1=11,I chose this external bootloader (MX66UW1G45G_STM32N6570-DK ) Erasing the full chipWrite my code (start address =0x07000000) to the flash and “verify successfully”Now, I switch boot0/boot1=00, and press the RESET button. However, NOTHING happens‼To make things WORSE: I switched back to the IDE environment, it says “Target unknown error 32 &nb
Hi, @krastThe readme for the VENC_SDCard_ThreadX examplehttps://github.com/STMicroelectronics/STM32CubeN6/blob/main/Projects/STM32N6570-DK/Applications/VENC/VENC_SDCard_ThreadX/README.mdstates:"The output is raw since no file system is used for now"but the first slide of the STM32N6 demo workshop - 11 Video encoder (VENC) in practice workshophttps://www.youtube.com/watch?v=25lEF4GgN8Msays that this example uses a FAT32 file system.I was wondering if there might be an error in the readme where it states "The output is raw since no file system is used for now"?Thank you very much for these examples - they're very valuable.Will
Hello,I'm trying to test FW update over I2C using RPI as host and STM32L432 nucleo board as slave on port I2C1 which according AN2606 (table 152) should be available. I've connected 4.7k pullups on PA6 + PA7 pins and perform NRST to 0 and BOOT0 to 1 and remove NRST pin. In this setup I perform i2cdetect on RPI and I'm getting i2c transfer timeouts for all addresses. When reset STM32 32 board i2cdetect command on RPI return empty table. Is that setup feasible or am I doing something wrong? Thanks.
Hello,I've recently created an External Loader to be used on a TouchGFX project (H563 with SPI LCD and SPI external flash). When I use this loader in Cube Programmer, it programs the processor and SPI flash, and runs as expected. So now I want to add it into my project in CubeIDE. Normally I would find the External Loaders under the Debugger tab (between SWV and Misc) but this seems to be missing. Is there a way to enable this?(This project was created un der CubeIDE 2.0.0, but this section also is missing in projects created by previous versions. Example projects created from TouchGFX does have this section).Any ideas?PP22
Hello,I am currently working on connecting an MT9M001 camera module to the STM32F429I-Discovery board and displaying the captured image on a PC.During this process, I am testing PWM output on the board, but I am experiencing an issue where the output voltage does not swing between 0 V and 3.3 V as expected.EnvironmentBoard: STM32F429I-DiscoveryIDE / Firmware: STM32CubeIDE + HAL (STM32CubeF4 package)Pin used: PB0 / TIM3_CH3 (Alternate Function, Push-Pull, no pull-up/down)PWM: Generated with TIM3 (frequency and duty cycle shown in attached code/images)Measurement: Oscilloscope (×10 probe, GND connected to board GND)IssueThe PWM waveform output from PB0 shows the following problems:The low level does not go down to 0 VThe high level does not reach 3.3 VBefore switching to PB0, I was using PA8 (TIM1_CH1), but I observed the same issue—the voltage could not drop to 0 V.I received advice that PA8 might be loaded by other on-board circuitry,so I moved the PWM output to PB0 (TIM3_CH3).However,
I have an application where I have enabled TX_ENABLE_STACK_CHECKING. The application gets stuck in a do loop in the tx_thread_stack_analyze.c between lines 114 and 135. (H7.3.1.0) It is clear in the debugger that the loop will never complete. The loop is checking for the stack fill pattern 0xefefefef using a binary search after checking the pointer are not NULL. Here is the code: /* We need to binary search the remaining stack for missing 0xEFEFEFEF 32-bit data pattern. This is a best effort algorithm to find the highest stack usage. */ do { /* Calculate the size again. */ size = (ULONG) (TX_ULONG_POINTER_DIF(stack_highest, stack_lowest))/((ULONG) 2); stack_ptr = TX_ULONG_POINTER_ADD(stack_lowest, size); /* Determine if the pattern is still there. */ if (*stack_ptr != TX_STACK_FILL) { /* Update the stack highest, since we need to look in the upper half now. */ stack_highest = stack_ptr; } else { /* Update the stack lowest,
I'm working with a NUCLEO-STM32WBA55 board and trying to build the BLE_p2pClient example project, but it fails with the error shown below:I../../System/Modules -O0 -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"Drivers/STM32WBAxx_HAL_Driver/stm32wbaxx_hal_gpio.d" -MT"Drivers/STM32WBAxx_HAL_Driver/stm32wbaxx_hal_gpio.o" --specs=nano.specs -mfpu=fpv5-sp-d16 -mfloat-abi=hard -mthumb -o "Drivers/STM32WBAxx_HAL_Driver/stm32wbaxx_hal_gpio.o" make: *** No rule to make target 'D:/STM32Cube/BLE_p2pClient/Drivers/STM32WBAxx_HAL_Driver/Src/stm32wbaxx_hal_gtzc.c', needed by 'Drivers/STM32WBAxx_HAL_Driver/stm32wbaxx_hal_gtzc.o'. Stop. make: *** Waiting for unfinished jobs.... "make -j8 all" terminated with exit code 2. Build might be incomplete. 10:35:54 Build Failed. 2 errors, 0 warnings. (took 6s.752ms) Environment:CubeIDE 2.0.0, CubeMX 6.16.0, WBA FW 1.8.0, X-CUBE-MEMS1 12.0.0
Hi,I am running the latest version of the VENC_SERVER application and am interested in the mode that uses no external memory. There is a define for 720p 30fps using internal memory only, but trying to compile it in debug mode results in a compile error with .bss data not fitting in memory.Could anyone advise on how to change the example or linker script to get the internal memory only version working?Thanks
I have the need to access items of a scroll wheel that are not visible on the screen (but that are already initialized)For instance, I have a scroll wheel with each items a toggle button.With the ScrollUpdateItem I'm able to set the correct index to the item withScrollUpdateItem(alarmsItem& item, int16_t itemIndex) { item.setIndex(itemIndex)where setIndex is a function that set the index in the itemNow, this works but, I've got the issue when it comes to the callback of each toggle.For instance, once a callback is called, I need to process items different from the one selected so, I need to access the SelectorScrollListItemsFor some reason, despite setting SelectorScroll.setNumberOfItems(6); I'm seeing TouchGFX generating touchgfx::DrawableListItems<alarmsItem, 5> SelectorScrollListItems; so, when I try to access SelectorScrollListItems[5] I'm seeing the call to the assert TYPE& operator[](int index) { assert(index >= 0 && index
I have been modifying the VENC_SDCard_ThreadX example to read in raw data through pipe0 with success. However, my bottleneck appears to be the SD card write speed; I understand that this example was designed to write compressed h.264 files - and it looks like it only writes at around 320 kB/s.Since I am capturing much more data, I would like to use exFAT instead of FAT32, and write to a UHS I card at max speed (SDR104). I defined FX_ENABLE_EXFAT within fx_user.h, but it I am still unable to write to an exFAT formatted card. fx_media_open() passes just fine, but upon inspection it appears that the available clusters always is 0. Am I missing any steps? Any insight would be appreciated.
Hi, I'm new to STM32 and FMC. I'm connecting STM32H755 to PCL6045, a motor controller which has data/address pins that can be access through FMC. This is what I've done so far:1) Configure the FMC inside CubeMX with clock set to 20MHz (max 20MHz reference clock according to PCL6045BL datasheet)I don't know why there's no unmuxed option in the CubeMX since I need to use the FMC_D instead of FMC_DA pins and the address pins start from FMC_A16 until FMC_A20. As for now I just connect FMC_DA to the data lines from PCL6045BL.2) Then, I try to write something to the selected register of axis XPclAxisWriteReg(ID_X, WRFL, 10);The base address that I use is 0x60000000. Every time I run the code related to PCL6045BL, it always gives a HardFault error. I have also edited the main.c to use FMC_DATA_ADDRESS_MUX_DISABLE manually but it does not seem change anything. I don't know if I miss something important or my steps are wrong somewhere.
I noticed that running cube-cmake --version reports cmake version 4.0.1, but running the actual build commands with cmake 4.0.1 produces a different binary than when running with cube-cmake.Is it safe to build a binary for release using cmake instead of cube-cmake? My program seems to run just fine building with cmake but I am curious what the difference between the two is.
Hi there,I'm starting to use the NUCLEO-H533RE board to evaluate the H5 device family.RM0481 has some errors on the PLL configuration:Fig.55 on page 461 shows a VCO range 0 between 128 and 560 MHz, but the description of bit 5 of register PLL1CFGR (page 492) says 192 to 836 MHz, which is quite different. Which one is the correct one, please ?Section 11.8.12 name is incorrect page 497 (PLL1 written instead of PLL2).Regarding the best PLL setup:For the PLL1RGE possibilities, it select the input frequency range: between 1 and 2, between 2 and 4, between 4 and 8 and between 8 and 16 MHz. What would be the best choice for a input frequency of 8 MHz: between 4 and 8 or between 8 and 16 ? And if possible, explain why that is.Thank you,Kraal
Hi! I am having a lot of trouble configuring the ST-Link on my NucleoF466RE board to JLink with STLinkFlash.exe even after consulting different community posts and websites.I was able to connect to my board using STM32CubeProgrammer on my Ubuntu 24.04.2 LTS laptop and upgrade it with the STLinkUpgrade program below.Then I connected my nucleo board to my Windows VM from Virtual Box since STLinkFlash.exe can only be run in Windows. I have installed the right STLink and JLink drivers from SEGGER website and confirmed in my Device Manager that the STLink was detected.However, when I launched STLinkFlash.exe to upgrade my STLink to JLink, I got the error "ERROR: Timeout: ST-LINK/V2-1 did not enter DFU mode". I tried putting the nucleo board in DFU mode by shorting the BOOT0 pin to VDD or removing/connecting different jumpers available on the board, but none worked...Has anyone been able to configure their STLink on their nucleo board to JLink recently? Would really appreciate any point
Hello,I have a solution which I am trying to port to STM32 MCUs which are able to run a machine learning/deep learning model. i wanted to know is it possible to generate a combined network.c from two models? Or do I have to generate multiple network.c files like network1.c, network2.c etc.How does it work? I have more than one(2-3) DCNN models.please adviceregards,
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.