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!I am currently troubleshooting an issue on a customized board based on the STM32F469IIT6 MCU. The board leverages MIPI-DSI Video Burst Mode to render a TouchGFX UI on the display.The problem manifests as follows: the display works perfectly normal when the video signal initializes, but the image intermittently shifts within 5 minutes after power-on.I have captured the MIPI-DSI video signal using an oscilloscope for analysis. The results indicate that the synchronization signal of the DSI output remains stable as expected, while a noticeable delay occurs in the pixel data transmission — which is the direct cause of the image shifting issue.I had confirmed that the registers of the DSI and LTDC wasn't changed before and after the shift. The DSI and LTDC shows no warnings or errors.What could be the root cause of this? Is there any solutions?You can find the shifted image displayed and the wave captured in the attachment.
Hi. I'm having trouble using the old USB Host Middleware to read a USB stick with a STM32U545.I've tried to follow this article, doing my best to adapt it for the host middleware and also using the "FatFs_USBDisk" example project for the F767 Nucleo board and a usbh_conf.c/.h written by a coworker for another U545 project which supposedly worked at least once.My code fails in Enumeration when the MCU tries to get the device descriptor - The MCU sends a SETUP packet and a DATA0 packet with 0 bytes (instead of the expected 8) and the stick sends an ACK. The MCU then sends an IN packet and the stick sends a NACK. The IN & NACK are then repeated for many frames until the stick sends a STALL instead.Can anyone help me identify where the bug is and how to fix it?Thanks.
Hi, 1》In the dark,Place the white target 140mm from the sensor call function Status = VL53L0X_perform_offset_calibration(&vl53l0x_dev,0x8c0000,&pOffsetMicroMeter); 2》In indoor environments ,Place the black target 600mm from sensor call function Status = VL53L0X_perform_xtalk_calibration(&vl53l0x_dev, 0x2580000, &pXTalkCompensationRateMegaCps); 3》in main function Status = VL53L0X_set_offset_calibration_data_micro_meter(&vl53l0x_dev,&pOffsetMicroMeter); Status = VL53L0X_SetXTalkCompensationRateMegaCps(&vl53l0x_dev,pXTalkCompensationRateMegaCps); Is the above process correct? But &n
Hi allI am looking for a solution to prevent the NULCEO-H563ZI board from resetting every time the USB-C cable to the PC is plugged in and out. The virtual COM port of the ST-LINK is used to send configuration data to the board. Therefore, it is not so handy if it resets itself every time I unplug the PC. It is supposed to continue to run.The NUCLEO is supplied by 3.3V from a host board, so no PWR-SEL jumper is set and SB1 is removed. The on-board crystal oscillator is used (SB48 and SB50 equipped with 0R's and SB49 of ST-LINK clock is removed). Thanks for your inputs :)
Hi,If I use STM32CubeIDE 1.19 to start a new project for the STM32H755 Nucleo board, the startup assembly files in both the CM7 and CM4 sub-projects are the same file with the same contents, startup_stm32h755zitx.s. It looks like this file is the one generated for the M7 core that just gets copied over to the M4 directory, because inside it has: .cpu cortex-m7Now, I know both cores share all the peripherals and interrupts. But I would assume the ".cpu" definition would need to be cortex-m4 for the M4 core. So far I haven't seen any issue, but this is probably a hidden bug.Thanks,-m
Hi, I am creating application using LPBAM configuration. The application simply is:Enter stop mode 2- Use ADC4-12bit channel 22 (PC4) to measure voltage using clock HSI or MISK- ADC wdog to generate interupt when the value reach threshold to exit stop mode 2- LPTIM1 will trigger ADC4 500ms cycle using clock LSE- LPDMA1 channel1 to store converted data, and save to array adc4_buffer[1]- LPDMA1 channel 0 ensure queue run LPBAMWhat I have done:ADC4 configuration (ADC4 global interrupt enable in NVIC)LPTIM1 configurationLPDMA configuration (LPDMA channel 0 interrupt enable)Scenario queueThen I generate code and face this warningI already createt project without Trust Zone, also check LPBAM check log but cannot verify it. So I need help. Thank you
Hi Everyone, I've followed STguide on Ethernet on H755 using RTOShttps://community.st.com/t5/stm32-mcus/how-to-create-a-project-for-stm32h7-with-ethernet-and-lwip-stack/ta-p/49308/page/2/show-comments/trueand a github on ETH on bare metal (my case)https://github.com/AngryCarrot61/NUCLEO-H755ZI-Q_003_ETH?tab=readme-ov-file i got the board to work and ping, I've implemented MPU and connected it to a laptopDHCP is disabled, my laptop ip is 10.0.0.100, subnet 255.255.255.0, gateway 10.0.0.1the mcu ip is 10.0.0.60The ping works only if i flash the M4 core with an empty application which gets halted by the HSEM (it never works unless i flash the M4 first after power up) and the connection never lasts more than a minute. Looking for some help, i've included the whole zip file of the project if someboy could replicate it on their machine, i'm using a H755ZI nucleo boardThe problem seems to be releated to Rx heap size, but I'm lost
What is meant by watermark concept in chromArt Controller, Whats the application of it can you explain in detail and clearly
Hi Sir,From the schematics of steval-usbc2dp, the AUX channel is connected to both STM32 MCU and display unit(sink).Does it mean, STM32 MCU can access DPCD information between Host terminal(source) and display unit(sink), or transmit DPCD to display unit instead of Host terminal?Thanks,Eric Fu
I am facing very weird issue in STM32 ADC.1. I used single channel in polling mode and interrupt mode the value i got was 4095, even the pin voltage was 1.7V, i used DSO to look for any serious noise on the pin but it was clean.Also if i gave 0V to this pin (pin 29 Ch10) it displayed adc value round 30.2. Then i tried DMA for single channel CH0 it behaved same.3. Then i tried DMA for 3 channel Ch9,Ch10,Ch11... behavior was same but this time if i touched any of the ADC Channel from ch9 & ch11 the value of Ch 10 became 2200, which was quite correct.4. Then i tried DMA for only Ch10 then adc value became 4095 for 1.7V and touching any pin doesnt do anything.Just if i give 0V instead of 1.7V adc value come near to 30-40.5. Circuit checked multiple times its a custom PCB, connections are solid.. track distances are well above the standard.6. I am using STM32CUBEIDE to generate the code. Unable to figure out what wrong i am doing. for information:- I have used ADC of STM32 mul
Hi there,I am quite new to this embedded platform. I am trying to work on enabling uart7 on the STM32H7S78-Discovery kit, while working on this display GUI using touchgfx designer 4.26.0. After scouring through some videos it is recommended to open up .ioc configuration file using STM32cubeMX to enable the peripheral (e.g uart7). However after generating code and using STM32cubeIDE to flash the H7S78 discovery kit the screen goes blank after reset button was pushed. Could you advice what is the right workflow with touchgfx -> STM32cubeIDE and STMcubeMX (to enable peripherals) -> back to touchgfx to further add/change touch buttons etc
Hello,I am experiencing a persistent verification error when flashing an STM32H7 via USB DFU using the STM32_Programmer_CLI. The exact same command and hardware work perfectly on Windows, but fail consistently on macOS.Environment:Tool: STM32CubeProgrammer CLI v2.9.0 (also tested on newer versions)OS: macOS vs Windows 11Hardware: STM32H7 custom boardConnection: USB DFU ModeFile: .hex file (approx. 44MB) containing internal flash and external memory data.The Problem: On macOS, the download reaches 100%, but the Verification fails at 98%. The error always points to the start address 0x0800E000 reporting a byte mismatch (0x00 instead of 0x70).Log Comparison Observations:Windows (Working): The log explicitly shows individual sector erases: erasing sector 0003 @: 0x0800c000 done.macOS (Failing): The log shows Erasing memory corresponding to segment 0... but never confirms the individual sectors as "done." It seems the erase operation is being skipped or failing silently on the Mac DFU stack
Hi Everyone, I wanted to add a audio codec with stm32U585aii6Q can anyone share he reference or guide how can it be done. Thanks Regards Sakshi
Hello,I am working with STM32H745 (dual core Cortex-M7 and Cortex-M4) and I am trying to understand the correct and supported way to stop and then restart the M4 core from the M7 core using software only, without resetting the whole chip.My goal is to implement a core-local watchdog mechanism where the M7 core keeps running and supervises the M4 core. If the M4 gets stuck or stops responding, the M7 should be able to stop or reset the M4 and then start it again cleanly.I have read the reference manual and found the following:SYSRESETREQ via AIRCR triggers a full system reset, so it is not suitable for this use case.Disabling RCC clocks does not actually stop the Cortex-M4 core execution.HAL_PWREx_ReleaseCore(PWR_CORE_CPU2) only releases CPU2 from the HOLD state and does not reset or stop a running M4 core.I found the MP_GRSTCSETR register and the M4 reset bit mentioned in some discussions, but the CMSIS and HAL naming is confusing and it is not fully clear whether this is the recommend
HI Sir, "Could you please check the following switching frequency waveform images? The setup is: 24V input, 12V output (max load ~1.8A), R-FSW = 68kΩ, inductor = 15μH, and COMP configured as 680Ω + 33nF (parallel with 1nF) — see the images below. This 12V output powers both a mini PC and a 200Hz PWM backlight circuit. Which value should we use for R15: 680Ω, 10kΩ, or another resistance?"
Hello, everyone on the forum. I am using ThreadX and FileX to write files to an SD card on the STMH735G-DK. I successfully created a directory using fx_directory_create and created a file using fx_file_create. This time, we'll tackle directory deletion using fx_directory_delete. However, if the directory contains files, deletion will fail with error code FX_DIR_NOT_EMPTY. How can I search for filenames within a directory using FileX? If anyone knows anything, please give me some advice.
Hello everyone, I am working on a project related to CAN communication, and I don't have complete knowledge about the RTR Remote and RTR DATA features within CAN. Should I use RTR Remote in a complex system?
Hi there,My team has designed a dual motor control board, and I'm responsible for spinning the motors.I have already added the board to MCSDK6 and generated the project without error.However, when I add the code like MC_StartMotor1() after initialization, both the motors are static.I don't know the reason why the motor can't spin.Find the board file and the schematic in the attachments.Can someone help me double-check if I did something wrong?Thanks for your help. May you have a goooood day!
Hi There,So, I got some of the STM32C011J6 MCUs for my simple project of reading sensors data and generating an interrupt.But I am in a dilemma, that the MCU's has I2C Pins, SWD Pins for programming, GPIO pins to act as interrupt but how to initialize it in CUBEMX.I am planning to build PCB after I successfully assign pins in CUBEMX.When I choose I2C, It blocks the SWD Pins and Vice versa. Also, is External Crystal necessary for such MCU? Looking forward to most of the suggestions and resources.My plan is to read a sensor data via I2C and generate interrupt on a GPIO Pin.
Been reading thru the F103 datasheet to try and figure out why my TinyUSB based code isn't working. The datasheet says.. "For mono-directional/single-buffer endpoints, a single register can be used to implement two distinct endpoints". The F103 has 8 physical endpoint registers. There are no flags in those registers to set mono or bidirectional mode. Each register only holds one EP address value. My application requires creating EP0 (IN+OUT) + 4 * (Bulk IN+Bulk OUT+Interrupt In)=2+4*(1+1+1)= 14 EP addresses in total. The datasheet continues on to say "The number of registers is 8, allowing up to 16 mono-directional/single-buffer or up to 7 double-buffer endpoints(a) in any combination. For example the USB peripheral can be programmed to have 4 double buffer endpoints and 8 single-buffer/mono-directional endpoints." So how can you get 14 EP addresses into 8 endpoint registers?
(MCU running, requires power cycle) I am trying to configure an 8080 16-bit parallel LCD using FMC on an STM32H5563 development board, but it is inconsistent and unstable. I am getting a logic analyzer and will be able to provide screenshots of the signals in a bit. Tutorials I have referenced:Phil's LabControllerstechNick Nagy GitHub Tutorial Issue:My test code initializes the display and then alternates filling the entire screen between red and white.For the display to show anything at all, I must perform a full power cycle (physically unplug and re-apply power). Toggling the LCD RESET pin or following the reset sequence from the datasheet does not reset the display.Once reset, on the first draw or two, only about 3/4 of the display is updated then begins updating the full screen correctly. After a few seconds the display freezes, stopping on either red or white. MCU does not freeze, the display just stops updating (tested by including a LED toggle in the loop).So
Greetings,I am bring up a new HW design with the IIS2DLPC accelerometer integrated into the design.I am trying to bring up a Linux IIO device driver for this device, and the kernel does not currently have direct support for the IIS2DLPC, however it does support the LIS2DW12, which from looking at thedatasheet for both, they appear to be SW compatible.Can I just code the device tree node to specify the LIS2DW12?accelerometer@18 {compatible = "st,lis2dw12";reg = <0x18>;status = "okay";st,drdy-int-pin = <1>;interrupt-parent = <&sysfpga>;interrupts = <SYSFPGA_INT_ACCELEROMETER>;interrupt-names = "ACCELEROMETER-INT1";};Thanks,Ken
I am trying to get my own DSI and LTDC code to run on STM32H757I-EVAL in preparation for custom hardware. In parallel, I am trying to get the example code to run (see this thread).I've made some progress with my own code by reading AN4860 and following the steps "34.14 Programming procedure" in RM0399. I copied OTM8009A_init() from TouchGFX example code and adapted it to my code. I can successfully configure the panel and sending panel on/off commands has the desired effect.When I step over OTM8009A_init(), the display shows blocks of noise (see image below). As soon as LTDCEN is set in LTDC_GCR, all LTDC register values change to 0x2220. Is this normal?It never seems to read from my RAM buffer, and I never get anything else on the screen. I also find it strange that if the code is stopped just after CMCR is cleared, then the noise is not on the screen.I've read many forums of DSI and LTDC issues, and clock timing seems to be one of the biggest culprits but I've double-
Hello,I would like clarification on the behaviour of STM32U3 devices when Readout Protection (RDP) Level 1 is enabled.Configuration:TrustZone: DisabledDebug interface: SWD/JTAGQuestions:With RDP Level 1, is Flash completely unreadable by any third-party tool or by any boot mode (system memory boot, RAM boot, etc.), except when accessed by application code running on the MCU?With RDP Level 1, is application debugging still supported (attach debugger, halt, step, breakpoints), and are there any known limitations compared to RDP Level 0?Any confirmation or documentation reference would be appreciated.Thank you,Vijay
Hello, I'm working into writing firmware image to a STM32H7A3AII6Q via internal boot-loader. I'm using AN2606 and AN3155 as reference documents. The boot-loader entry sequence I'm using:State 1: BOOT0: high RST: lowState 2: Wait 200 msState 3: BOOT0: high RST: highThen I'm sending 0x7F over USART2 but, getting no response(0x79).Can you please help me what might be wrong here?
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.