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 Everybody, I'm new in this place. I use an Evalboard ISC005V1 with STUSB4500 and an dedicate MCU to manage I²C port. I wanted to change the configuration of the PDO3 from 20V to 15V. I select PORT3 ( write 3 in 0x70 register ) I configure DPM_REQ_RDO3 register ( adress 0x91 ) with 0x96, 0xB0, 0x04 and 0x00. I soft reset the STUS4500 But nothing change. VBUS and PDO3 out still 20V??? What's wrong Thanks for the help!
Hi everyone,I’m working with STM32L010K4T6, which is based on the ARM Cortex-M0+ core.I’d like to use FFT (Fast Fourier Transform) functions in my project, preferably within STM32CubeIDE.However, I noticed that the CMSIS-DSP library (which provides FFT functions) seems to have limited or no direct support for the L0 series inside CubeIDE.My questions are:Is it possible to add and use the FFT / CMSIS-DSP library with STM32L0 series MCUs like STM32L010K4T6?If yes, what is the recommended way to integrate it in STM32CubeIDE (manual CMSIS-DSP source import, or any ready package)?Are there any performance or memory constraints I should be aware of when running FFT on Cortex-M0+?Thank you in advance for any guidance!Best regards,Burak
Hi,Using STM32CubeMX version 6.15.0When I start a new project from the NUCLDO-F767ZI board I just get a blank chip, none of the component configuration at all, I tried it on two PC's both the same.This used to work and was quite handy starting a new project. At the moment I am going through a selection of processors so having to manually configure it before I can test it is a bit of a pain, any solutions?
Hi All, I'm using an STM32F1 with a 240x240 LCD screen that comunicates with the micro by SPI (with DMA). The screen uses the ST7789 driver (I supose it is not important). I'm working with RGB565 color format.The problem that I have is, for example, when I'm using the ST7789_Fill_Color(YELLOW); the SPI uses the DMA and the LCD shoul be yellow but it's not. If yellow is 0b1111 1111 1110 0000 the DMA only sends to SPI the LSB (0b0000 0000 1110 0000) witch is a wrong color.When I do the same without DMA it work's fine!The DMA is configures this way:I tried every configuration possible but nothing works. My question is why the DMA only graps the first byte of a color and what I have to change in order to send the real color.Thanks in advance!!!
Hello everyone,I’m working on an STM32F103 microcontroller using CAN in polling mode (without FreeRTOS).From my testbench, I transmit 16 CAN messages cyclically every 100 ms.Each message has a unique CAN ID.My goal is to:Receive all 16 messages within the 100 ms cycle,Process each message and,Send back an acknowledgment (ACK) frame for each received message.However, when I send all 16 messages cyclically from the testbench,I’m receiving only 3 messages’ acknowledgments — the rest are missing.Can anyone help me out.
Hello, NUCLEO-F411RE JP5 in E5V reset When my F411RE board is powered with 5V, I have to press the reset button to start it. Why doesn't it start? Thank you for your help.
STM32WBA54 SAI work in slave mode with DMA: SAI1_Block_A Slave out, SAI1_Block_B Slave in. test code as: MX_SAI1_Init();//in __HAL_LINKDMA(&hsai_BlockB1, hdmarx, handle_GPDMA1_Channel2); MX_RxQueue_Config(); HAL_DMAEx_List_SetCircularMode(&RxQueue); HAL_DMAEx_List_LinkQ(&handle_GPDMA1_Channel2, &RxQueue); if (HAL_SAI_Receive_DMA(&hsai_BlockB1, (uint8_t *) aSrcBuff, SAI_MAX_BUFF_SIZE*2) != HAL_OK) { } //Out__HAL_LINKDMA(&hsai_BlockA1, hdmatx, handle_GPDMA1_Channel1); MX_TxQueue_Config(); HAL_DMAEx_List_SetCircularMode(&TxQueue);HAL_DMAEx_List_LinkQ(&handle_GPDMA1_Channel1, &TxQueue);if (HAL_SAI_Transmit_DMA(&hsai_BlockA1, (uint8_t *)aSnkBuff, SAI_MAX_BUFF_SIZE*2) != HAL_OK) { } TxDMA = HAL_SAI_DMAStop(&hsai_BlockA1);RxDMA = HAL_SAI_DMAStop(&hsai_BlockB1); TxSai = HAL_SAI_DeInit(&hsai_BlockA1);RxSai = HAL_SAI_DeInit(&hsai_Block
Hello ,I have developed a custom board using the STM32MP157DAA1. Its design is very similar to the STM32MP157-DK2.I am trying to build and boot TF-A and OPTEE. However, I am encountering an "I/TC: Forced system reset PSCI" error, which causes the system to enter a programming loop.Below is the CubeProgrammer log during this loop state:16:33:55 : USB speed : High Speed (480MBit/s) 16:33:55 : Manuf. ID : STMicroelectronics 16:33:55 : Product ID : DFU in HS Mode @Device ID /0x500, @Revision ID /0x0000 16:33:55 : SN : 002700303532510837363531 16:33:55 : DFU protocol: 1.1 16:33:55 : Board : -- 16:33:55 : Device ID : 0x0500 16:33:56 : Start Embedded Flashing service 16:33:56 : Opening and parsing file: tf-a-stm32mp157d-a_cv2-mx-optee-programmer-usb.stm32 16:33:56 : Memory Programming ... 16:33:56 : File : tf-a-stm32mp157d-a_cv2-mx-optee-programme
Hi,I have a problem with the ADC2 calibration on STM32H743VIT6(V). I use ADC1 and ADC2 in dual mode(Regular simultaneous mode). On some boards the ADC2 calibartion doesn't work. (The ADCAL-Bit in ADC_CR is not cleard after start).On the boards where I have the problem with the ADC2 calibration, when I change the dual mode to simultaneous mode + Regular simultaneous mode the calibration of ADC2 works.I don't unstertand this bevaior. What is the problem of ADC2 calibration on some controllers in Regular simultaneous mode.
I tried to connect one MP34DT01 mic to NUCLEO-N657X0Q via SAI peripheral's PDM interface. I included my project's clk configuration, peripheral configuration and main code below.Debugged and when i only touch the mic, value is changing. HELP
Hi, I’m working on a custom board based on the STM32MP157DAC. U-Boot splash is enabled, psplash is enabled in the kernel, and we have custom display drivers in both U-Boot and Linux. The display initializes in U-Boot and shows the splash, but ~4–5 seconds after the kernel starts the screen goes blank. About 10 seconds later, when the kernel’s display driver probes and re-initializes the panel, psplash appears. We want to eliminate that blank interval—i.e., keep the U-Boot splash visible until the kernel takes over and psplash is shown. Why is this happening, and what can we do to maintain continuous display across the handoff?Note:- In discovery kit we dont see any blank screen with default image.Regards,Adnan
I am experiencing issues when attempting to upload the code to the MCU mentioned above on my board. I am trying to upload the code using the programmer on the STM32F407 Discovery board. It reads the chip, it erases the chip, but it does not upload the code. What could be the reason? The log file and the schematic of the MCU section of my board are below. Thank you for your assistance. 08:47:43 : MASS ERASE ...08:47:43 : Mass erase successfully achieved08:47:43 : UPLOADING ...08:47:43 : Size : 1024 Bytes08:47:43 : Address : 0x800000008:47:43 : Read progress:08:47:43 : Data read successfully08:47:43 : Time elapsed during the read operation is: 00:00:00.01008:51:28 : MASS ERASE ...08:51:29 : Mass erase successfully achieved08:51:29 : UPLOADING ...08:51:29 : Size : 1024 Bytes08:51:29 : Address&nbs
Can I learn the value of the M24256-DRMN3TP/K /K component?
Hello everyone,I’m trying to communicate between an Arduino Nano and the STEVAL-ESC002V1 board via UART, but I’m unable to get any proper response or control signal exchange. I’ve configured both devices at 115200 baud rate, but communication doesn’t seem to work. Any guidance or example code would be really helpful.
Hello,I am trying to take a log using my sdcard on my project.I am using FATFS that included in STM32CubeIDE but I got some issues, without FREERTOS everything works as expected and fine but when I enable the FREERTOS and it want's me to enable USE_NEWLIN_REENTRANT. When I enable it generates problem with FATFS USE_LFN(long file name) selection and normally it is Enable with dynamic working buffer on BSS. But the IDE wants me to change it and I change it for the STACK than I tried the HEAP and also tried for the disable option. But in both way my system got stuck in f_open function and returns FR_NOT_READY I searched online but I couldn't find the exact solution for this problem. When I searched I found examples for DMA option but I don't have the dma option in .ioc file you can see it in attachements. I am trying to initialize my sdcard in main code and my function looks like this FRESULT initialize_sd_card(void) { FRESULT res; /* FatFs function common res
Hi, I want to count the time that an incoming level signal is high for. To achieve this I setup Timer 15 as a Gated Mode Slave, which has it's counter counting while the trigger input is high. The trigger input is the Filtered Timer 15 Channel 1. For some reason when I connect my signal to my input Timer. Nothing Happens. The signal on the IO Pin TIM 15 CH1 is a 2V square Wave.My own software seems correct. I then moved to Hal to see if I can achieve it. I've tried to use HAL to achieve this without any luck here is my HAL software.Uploaded is the main and IOC fileI am working on the STM32G071Thanks
I’d like to use the NUCLEO-N657X0-Q board together with the B-CAMS-IMX camera to output video to a computer as a webcam using CSI → DCMIPP → UVC.However, since all the CSI and UVC examples are provided only for the STM32N6570-DK, I’m having difficulty creating this setup. Although there are some examples for the NUCLEO-N657X0-Q, I’m struggling to understand the code. Is there a simple project or example that uses only CSI – DCMIPP – UVC?
Hello.I am using an STM32H562VI board with an LSM6DSV16X sensor,and when I read the whoami value, it reads as 71.I configured the register as follows to check the interrupt on INT1./* Enable Block Data Update */ lsm6dsv16x_block_data_update_set(&dev_ctx, PROPERTY_ENABLE); pin_int.wakeup = PROPERTY_ENABLE; lsm6dsv16x_pin_int1_route_set(&dev_ctx, &pin_int); //lsm6dsv16x_pin_int2_route_set(&dev_ctx, &pin_int); irq.enable = 1; irq.lir = 1; lsm6dsv16x_interrupt_enable_set(&dev_ctx, irq); lsm6dsv16x_filt_xl_fast_settling_set(&dev_ctx, 1); lsm6dsv16x_mask_trigger_xl_settl_set(&dev_ctx, 1); lsm6dsv16x_filt_wkup_act_feed_set(&dev_ctx, LSM6DSV16X_WK_FEED_HIGH_PASS); wu.inactivity_cfg.inact_dur = 0; wu.inactivity_cfg.xl_inact_odr = 1; wu.inactivity_cfg.wu_inact_ths_w = 3; /* threshold resolution to 62.5 mg */ wu.inactivity_ths = 0; wu.threshold = 1; wu.duration = 0; lsm6dsv16x_act_thresholds_set(&dev_ctx, &wu); /* Set Output Data Rate.*/ lsm6dsv16x
Hello everyone,I'm working on a custom board with an STM32H563 and using CubeMX, HAL, and ThreadX.I am trying to receive variable-length UART data via DMA using HAL_UARTEx_ReceiveToIdle_DMA(). My problem is that the HAL_UARTEx_RxEventCallback never triggers for the HAL_UART_RXEVENT_IDLE event. It only triggers for HAL_UART_RXEVENT_HT (Half Transfer) and HAL_UART_RXEVENT_TC (Transfer Complete).SetupFunction Call: HAL_UARTEx_ReceiveToIdle_DMA()RX Buffer Size: 1000 bytesDMA Mode: CircularData Source: A peripheral sends packets of variable size (approx. 2048 - 4096 bytes) at 1,000,000 bits/s.Idle Time: There is a guaranteed idle time of > 45ms between packets. This should be more than enough to trigger the UART IDLE event.Here is the .iocHere is the RX line on the scope:ProblemExpected Behavior: Given the long idle time, I expect HAL_UARTEx_RxEventCallback to be called with an event type of HAL_UART_RXEVENT_IDLE after each packet.Actual Behavior: The IDLE event never fires. I only get H
I have several an 2 F401RE boards connected to my PCs and getting data by the Virtual Communication Port.Unfortunately when installing a new board on the PC, I ve seen that my 2 boards were declared by Windows with the COM portCOM port 7, 9 and 10 are allocated by Windows to others boards I am under the impression that there is a bug in the Virtual COM driver that do not authorize to declare a virtual COM Port beyond COM10.Is there a fix or a workaround. Otherwise Is it possible to reuse an COM port, for instance the COM 9. Is there a procedure to unsintall the COM9 in order to use for my new boardFinally, I would have connected in parallel, on my system, 3 boards with COM8, COM0 and COM10
Hello ST community,I have two STEVAL-WBC86TX transmitter boards that appear to be locked. The boards still charge a phone when powered, but the I²C reset tool provided by ST cannot communicate with the main IC. I've tried FT260 recovery tool. I would like to know whether there is a recovery or reprogramming method. Thank you for any guidance.
I'm working with the STM32WB5MMG module and have been using SPI communication with DMA successfully. Previously, in a bare-metal setup, the following was working perfectly:HAL_SPI_TransmitReceive_DMA() starts the transferHAL_SPI_TxRxCpltCallback() is triggered upon DMA completionSPI and DMA configurations were verified, and the interrupt fired reliablyHowever, after integrating FreeRTOS into the project, I noticed that the DMA transfer still starts successfully (HAL_OK is returned), but the DMA interrupt no longer fires, and HAL_SPI_TxRxCpltCallback() is never called.Additional Notes:DMA and SPI are initialized the same way as before (generated via STM32CubeMX)SPI state and error checks show normal operation (HAL_SPI_GetError() returns 0)NVIC interrupts for DMA channels are enabledFreeRTOS is running with default settings, and I'm not using CMSIS-RTOS wrappers for SPI or DMANo changes were made to SPI or DMA configuration between bare-metal and RTOS versions Are there any specific
The linkerscripts generated by the STM32CubeMX for STM32F767ZI appear to use the AXIM interface:/* Specify the memory areas */ MEMORY { FLASH (rx) : ORIGIN = 0x08000000, LENGTH = 2048K RAM (xrw) : ORIGIN = 0x20000000, LENGTH = 512K }But the default boot vector is set to address 0x0020 0000 which is a ITCM address:# gdb console > monitor stm32f7x options_read 0 stm32f2x user_options 0xFFC, boot_add0 0x0080, boot_add1 0x0040boot_add0 0x0080 indicates ITCM.When I move the boot vector by 128K, I have to set boot_add0 to 0x0088 (8*16K=128K) and set FLASH ORIGIN in above linker script to 0x08020000. Otherwise it will not work. That is a bit confusing.Is the MCU really booting from ITCM?The binary code is not explicitly position-independent. I contains absolute jumps to addresses in the AXIM space because that is what LMA and VMA are configured to in the default linker scripts. Does my application only work by accident?Should LMA and VMA in the linker script be separated, i.e. V
In application note TN1571 "Reference design based on the ST1VAFE6AX and ST1VAFE3BX biosensors..." Table 2 mentions that ST1VAFE3BX has a selectable 50/60Hz notch filter. However, there's no further reference to this filter or how to enable it in the datasheet.Is this an error in TN1571, or something I'm missing.Thank you.
Hello,I have the LIS2HH12 chip in two separate boards, same board, same firmware. These devices have been working well, producing X,Y,Z data. Until today, that is, after a firmware update.This device is the only thing on the I2C bus, 100KHz, 5.1K pullups, 3.3V, connected to an ESP32 S3. Waveforms on the oscilloscope look clean.The CTRL1 register gets 0x3F and CTRL4 register gets 0x04 which I believe should provide initial functionality.WHOAMI returns 0x41, but STATUS returns 0x00 and all six OUT_ registers return 0, as illustrated below.I have a feeling I've overlooked something really simple. I've read both datasheet and appnote, and looked through this community for hits on the LIS2HH12. Thanks for any thoughts or ideas.WHOAMI and STATUSOUT regs
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.