Join conversations with your peers and ST experts. Explore the full potential of STM32 microcontrollers for your embedded design.
Most recent activity
Hi, I am evaluating the STM32H7R7Z8J6, intended to working with a TFT-LCD which is working in parallel RGB interface with DE mode only. The HSYNC and VSYNC signals are not connected. Both AN4861 (Introduction to LCD-TFT display controller (LTDC) on STM32 MCUs) and RM0477 (STM32H7Rx/7Sx Arm®-based 32-bit MCUs) documents only SYNC+DE mode, but the does not mention if the DE-mode-only is supported or not? Could you help to point out the documentation where explains how the LTDC working for DE mode in detail? Thanks! Leo
Hi everyone,I am working on an STM32H7A3ZI and I'm trying to to exchange audio data with an SGTL5000 audio codec. Because i want to both send and receive data from the codec i configured the I2S peripheral on the STM32 to Full-Duplex Master mode in Cube MX.My problem:Transmitting data using the HAL I2S functions (HAL_I2S_Transmit, or HAL_I2S_Transmit_DMA) works fine, but when i try to receive data (also using the HAL functions) the bit- and word-select-clock won't start. If i first transmit data and then try to receive everything works fine, because the clocks stay on. If i change the I2S config to Half-Duplex Master Receive mode, just receiving also starts the clocks.So in Full-Duplex Master mode i have to transmit data first (or at least write some data into the transmit data register, which starts the clocks), before i can receive data.My question:This seems to be intended behavior, but i couldn't find any documentation on it. Why is this implemented like that?
Sorry, I'm very new to microcontrollers in general and was wondering if I would need more SRAM or if I could successfully just write to the display driver's memory and not worry about a big frame buffer. I hope to use LVGL to control a 320x240 16 bit colour depth display using this method, any help on this topic would be greatly appreciated, thank you.For reference, the reason I'm interested in doing this is because I'm using the STM32 F4VE Black board and I can see it has a TFT interface.
Hi,I am trying to get the USBX CDC working on a NUCLEO-U083RC, but with no luck.I have tested that the USB port (PA11 and PA12) works, because I can do firmware upgrade using the STM32CubeProgrammer.But I cannot find any example on how to get the USB CDC (Virtual Comport) working.I have spend most of a day trying different examples, but nothing seems to work for me.Do anyone have any help to offer regarding a working example ? Best RegardsJakob
where do I get API documentation for firmware OTA of STM32WBA52CGUX ?
Hi all! AGENDA: Need to verify the external QSPI flash (AT25Q128A) all sectors Write, Read and Comparing with STM32L496ZG-P using driver code. APPROACH: For write, I am have created a buffer which comprises of page size of 256, and I am using two "for" loops one outer "for" loop for incrementing total sectors i.e. 4096 times and inner "for' loop as there are 16 pages for a single sector I am incrementing it to 16 times. In below case I am trying to write letter O to all sectors and read and compare, // Fill buffer with character 'O' for (int i = 0; i < PAGE_SIZE; i++) { page_buffer[i] = 'O'; } for (uint32_t sector = 0; sector < TOTAL_SECTORS; sector++) { uint32_t base_address = sector * SECTOR_SIZE; for (uint32_t page = 0; page < PAGES_PER_SECTOR; page++) { uint32_t page_address = base_address + (page * PAGE_SIZE); //// Write to flash if (CSP_QSPI_WriteMemory((uint8_t*)page_buffer, page_address, PAGE_SIZE) != HAL_OK) { // flash_write_success = false; //
Hello, I designed a board based on the STM32L031F6P6 with an sx1262 chip, and it worked well using the driver https://github.com/Lora-net/sx126x_driver for LoRa transmission. I'm trying to send LoRaWAN signals, but I'm having trouble finding examples of LoRaWAN transmission with sx1262 for STM32 platforms. Does anyone have any tips?
Hello, I'm very new to BLE. I'm following STM example code.I want to be able to run on battery and turn on the BLE to advertise for 5 minutes then stop. After an interrupt, I want to be able to turn on advertising again.In the STM32WBA Bluetooth® LE – Serial communication - stm32mcu Example, i found in main while loop, there is MX_APPE_Process(); which initiates BLE. I want to implement something like:switch (...) { case 0: // walking MX_APPE_Process(); case 1: // stationary // Turn off advertising}How should I do. Please support me.
Hello Everybody,MCSDK : 6.3.2CubeMX: 6.3.2Workbench : 6.3.2Cube IDE : 1.18.1Hardware : Custom but based on EVLDRIVE101-HPDMotor : PMSM 28V - 2 pole pairs - Rmp = 14K - rated current = 13A - Primary sensor : Hall, Secondary sensor Observer+PLL (sensor less)At power up, after a delay, the motor start with hall sensor.When motor control switch to RUN, there is current surge, limited by my power supply (15A), during 100ms. (PWM > 90%).Is it to align the rotor ???If i use FOC as primary sensor, you can limit the current but not if i use Hall sensor as primary sensor.I have change IQMAX_A, NOMINAL_CURRENT_A and ID_DEMAG_A at different value, but i has no effect.What can un do to limit this current to 3/4A during this phase ?After this surge, the motor works well.(Green : rpm, Yellow : power supply voltage, Blue : Power supply current, Purple : W current)
I have a problem I can't solve.In a previous project, I used an STM32L4A6 and set the PC8 and PC9 lines high before entering the system bootloader. After starting the system bootloader, these lines remained high. They were used to maintain power to the device.In the new project, the MCU was changed to an STM32F446. I used the PD10 and PD12 lines to maintain power after confirming with the AN2606 that they were not being used by the system bootloader. Unfortunately, after starting the bootloader, both lines are reset.Why does this happen?
Apologies if this is the wrong group for this query. I have implemented a library from scratch which performs the host side of a DFU upgrade (avoids the dependencies in CubeProgrammer_API.dll, for which I could not find source). The code works just fine but I have a question about the expected values of bAlternateSetting across the whole range of STM32 devices.For the STM32U575, there are three DFU Interface Descriptors with bAlternateSetting values of 0, 1 and 2. These correspond to 0=Internal Flash, 1=Option Bytes, 2=OTP Memory. [This is very clear from the memory descriptor string corresponding to the iInterface value of each interface.]My question is: are these values consistent across the range of STM32s, or might some devices have (say) 1=Internal Flash or whatever?Is there any available documentation for this? I've spent quite a bit of time trawling various UMxxxx and ANxxxx as part of creating this library, but have not found much about bAlternateSetting.The behaviour of D
The Raspberry Pi Pico 2W is a dual-core Cortex-M33 processor. It has 16 DMA channels per bus. While I'm not sure if the exact number represents all DMA channels, there's only one path each for the master and slave. Therefore, if three modules occupy the DMA, there's a delay of nearly a second when switching processes using FIFO messaging.The B-U585I-IOT02A, an STM32 development board, has a single Cortex-M33 core. According to sources, even with a single core, the bus is multi-layered for DMA, so there should be no delay. This is called a bus matrix, and the attached datasheet shows multiple arrows in the diagram, arranged like a matrix. If this is a valid interpretation, I wonder if it would work well when switching from TCP communication to I2S, or from I2S playback to TCP communication.The Raspberry Pi Pico 2W is dual-core, so I don't need to implement multithreading. I2S, FatFS, and TCP communication are all allocated to each core, so it works fine without threading. To eliminate t
Hello everyone,I’m facing an issue with an STM32L4-based design where the USB FS Device stack (CDC) sporadically fails to start correctly. Maybe someone has seen similar behavior or can point me to potential root causes. System overview / setupMCU: STM32L4 (CubeMX / HAL / FreeRTOS)Clocking:MSI as system clock (16 MHz)USB via PLLSAI1 (48 MHz)USB: FS Device Stack (CDC), initialized after HAL_Init() / SystemClock_Config() in the first TaskESD protection: USBLC6-2SC6Lines: no series resistors on D+ / D-Firmware Package Name and Version: STM32Cube FW_L4 V1.15.0Hardware layout: Clock configuration: USB Stack configuration: Observed behaviorOn several boards, the USB stack does not reliably start after power-up.In that case, the firmware blocks → Watchdog reset after ~8 s → endless reset loop.Disconnecting/reconnecting the supply sometimes fixes the issue, and the USB connection to the PC works normally.Interesting: When probing D+ or D- with an oscilloscope, th
I am using stm32wle5jc ( LoRa Wio E5 mini board) with stm32wl FW stack. I tried lot ways to implement the RTC Alarm B (in BIN, MIXED and BCD mode). But is stops entire LoRa Process. How I fixed that?
HiReading this post https://community.st.com/t5/stm32-mcus-security/x-cube-azure-h7-hw-cryptographic-acceleration/m-p/634818/highlight/true#M6417 it seems like ST employee is saying STM chips will not support Azure RTOS going forward? Has any decision on this been made?
I want to add a custom BLE service in STM32CubeMX. I saw on a website that the Add Custom Service feature could be used for this. However, I don't know the procedure for adding a service using this feature. Please tell me the steps to add a service using the Add Custom Service feature in the latest IDE and MX environment.
OS: `Linux Mint 22`Kernel Version: `6.8.0-48-generic`STM32CubeMX version: `6.14.1`STM32 Chip: `STM32F401RET6`I'm trying to just run a simple light blink script for testing. I'm using a Segger J-Link EDU Mini and programming over SWD using a 10-Pin connection. I'm using a CMake project generated by STM32CubeMX and I am debugging from VSCode (which is launching `JLinkGDBServerCLExe`).If I run `Start debugging` I get this output (and it just stops there indefinitely):```/opt/SEGGER/JLink/JLinkGDBServerCLExe -singlerun -nogui -if swd -port 50000 -swoport 50001 -telnetport 50002 -device STM32F401RESEGGER J-Link GDB Server V8.38 Command Line VersionJLinkARM.dll V8.38 (DLL compiled May 28 2025 12:45:51)Command line: -singlerun -nogui -if swd -port 50000 -swoport 50001 -telnetport 50002 -device STM32F401RE-----GDB Server start settings-----GDBInit file: noneGDB Server Listening port: 50000SWO raw output listening port: 50001Terminal I/O port: 50002Accept remote connection: yesGenerate logfile:
Dear ST community member,I am new to ST platform.I am using STM32G030C8T6 Development board from 7 Semi and ST Link V2.Dev board link: https://evelta.com/7semi-stm32g030c8t6-arm-stm32-mini-development-board/?srsltid=AfmBOorI6XBlJ_AMXNVV184OhO-lB02AFODj1611j8H62qR2M0FZkmF9Connection: dev board USB: powerdev board RST: NSRT or pin15 of ST LINK V2dev board SWDIO: pin 7 of ST LINK V2dev board GND: pin8 of ST LINK V2dev board SWDCLK: pin9 of ST LINK V2dev board 3.3: Not connected Please guide me where I am doing wrong. Thanks in advanceRegards,Anand Sagar
Is there any way to configure the HAL to communicate to a slave via I2C WITHOUT sending the address byte first? I know this is part of the I2C standard, but I would like to implement a TM1637 device, which is similar to I2C but does not use an address byte.I have already implemented a "bit bang" version with delays and GPIO, but it would be nice to use the HAL directly somehow.HAL I2C already gives me STARTs, writes, reads and STOPs, which is most of the TM1637 protocol. If I could just turn off that pesky address byte!Or maybe this can be done with the SPI interface instead.Suggestions welcome ...
Hello,I am using P-Nucleo-WB55. I have made a simple BLE server example that receives data from a client and it's working well. But whenever I add sequencer tasks, while these tasks are running, if I send any data from the client (ST BLE App), the nucleo doesn't receive it immediately. I have to wait until the tasks are finished.I try to minimize the task time so that the sequencer can run whatever is related to the events, but it also doesn't work. I have to wait until all the tasks are finished and there are no set tasks, so that the event handler is called and the action that happens when I send data happens. I am trying now with this example mahmoudahmedibrahim5/BLE_Receive_example, so that I can add that to a real application, so this is just an example.This example has 1 service with 1 characteristic. When the client sends data, the event handler calls Custom_STM_App_Notification and it checks the data and blinks different LEDs based on that data. It has only one t
Hello ST Community,I'm facing a MIPI DSI configuration issue with my STM32U5A9 and TFT LCD. When using PHY DSI as the DSI lane byte clock source, my code fails with a timeout on HAL_DSI_ShortWrite. When I switch to PLL3P, the initialization proceeds, but the LCD displays distorted images.Request for Assistance: I'm new to MIPI and suspect a misconfiguration in clock settings. Any insights on proper configurations or similar experiences with STM32U5A9 MIPI DSI would be greatly appreciated.Details:MCU: STM32U5A9LCD: TFT LCD with st7796SClock Source: PHY DSI (fails) / PLL3P (distorted images) Your help in resolving this challenge is appreciated. Share your insights or suggestions if you've encountered a similar problem.Thank you,
If LPAWUR, Sigfox, and Tiny_LPM are enabled in PWR_DEEPSTOP_RTC example code, will the RTC wakeup mode and DeepStop mode work properly?
Hello Firends,Two Questions...1. Firmware Flash with DFU Bootloader succesfully done along with RDP bit. Can we re-flash the fiirmware once RDP L1 is set before through DFU using USB ? my custom board uses STM32F303Rb device. 2. Each STM32 device has UID of 96 bit, Can we use this UID to Club with Firmware so that each firmware image is specifc to that particular Device ? Pls. suggest any Hardware tool / Software tool avilable for same. I found one is segger Flasher secure device, but very expensive. Regards,Bsuthar
Why can't I find the E15 pin?:)
I would like to know why 2 is added to the P2PNotifyServerToClientCharHdle while checking for an attribute handle match in p2p_stm.c file. Later in the same function, 1 is added to P2PWriteClientToServerCharHdle. Is there an implicit assumption made here to add 2 to a notify handle and 1 to a write characteristic handle. P2PNotifyServerToClientCharHdle is declared as uint16_t. Why add 2 to an integer for matching to Attr_Handle. static SVCCTL_EvtAckStatus_t PeerToPeer_Event_Handler(void *Event) { SVCCTL_EvtAckStatus_t return_value; hci_event_pckt *event_pckt; evt_blecore_aci *blecore_evt; aci_gatt_attribute_modified_event_rp0 * attribute_modified; P2PS_STM_App_Notification_evt_t Notification; return_value = SVCCTL_EvtNotAck; event_pckt = (hci_event_pckt *)(((hci_uart_pckt*)Event)->data); switch(event_pckt->evt) { case HCI_VENDOR_SPECIFIC_DEBUG_EVT_CODE: { blecore_evt = (evt_blecore_aci*)event_pckt->data; switch(blecore_evt
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.