Join conversations with your peers and ST experts. Explore the full potential of STM32 microcontrollers for your embedded design.
Most recent activity
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
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.
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
ST‑LINK Mini V3E not detecting STM32H7 (Core ID error, high current when VTARGET connected)I’m debugging an issue with a custom STM32H7 board and an ST‑LINK Mini V3E. The setup includes a main PCB and a separate power PCB. So far:Power & Basic Checks3.3 V and 24 V rails are correct.Board current consumption is low when powered from either an 8 V or 24 V supply.Connections between the ST‑LINK Mini V3E and the main PCB have been verified.ProblemWhen I connect VTARGET from the ST‑LINK to the board’s 3.3 V rail, the current spikes and something starts to smell hot.STM32CubeProgrammer shows no target voltage, no device ID, and fails to read the core ID.The ST‑LINK is detected by the PC normally.Additional TestsTried a second main PCB and a different ST‑LINK Mini V3E, powering only through the ST‑LINK (no external supply). Same result: STM32CubeProgrammer cannot detect the STM32H7.I’m aware that VTARGET on the Mini V3E is an input, so I’ve tied it to the board’s 3.3 V rail as required.Ne
Hi everyone,I'm working with an STM32F401CCU6 and trying to transmit 2 bytes over I2C3 using DMA1 Stream 5 Channel 6, which is the correct mapping according to RM0368 Table 28:DMA1 Channel 6 Stream 5 -> I2C3_TXThe DMA configuration appears correct, and I do receive the DMA Transfer Complete (TC) interrupt. So the DMA request is generated, the stream runs, and the transfer completes.However, it seems like the I2C slave device (AW9523) never receives the register and data bytes. Unfortunately my osci is currently broken.The same write sequence works perfectly when I use a blocking I2C write (polling SB, ADDR, TXE, etc.). Only the DMA‑driven version fails.What I observe:START condition is generatedAddress is sent and ACKedADDR flag is cleared correctlyDMA TC interrupt firesSTOP is generatedBut the slave never sees the register or data byteDMA is configured as:DMA1, Stream 5, Channel 6Direction: Memory -> PeripheralMemory increment enabledPeripheral increment disabledByte transfersNo
Dear Sir/Mam, As LCD, i.e., RK043FN48H-CT672B Rocktech of STM32F746 Discovery Board is obselete hence can we change to RK043FN66HS-CTG Rocktech without any implication in the firmware of Discovery board? Please respond me as soon as possible. Best Regards Sushant Verma
Moved from STM32 MCU products forum board to MCU embedded software as the main question is about how to run the demo vs LCD versions. I got STM32U5G9J-DK2 and this Discovery is still assembled with LCD board MB1860A version. But the documentation suggesting this DK have LCD board MB1860B version and share only B version scheme. I taked damage of my LCD board MB1860A and replaced it to MB1860B LCD board version from my next Discovery Kit STM32H7S78-DK. And here arising some problems: For example the BSP demo from example pack working flawlesly, but the main demo embedded from factory doesn't work with STM32U5G9J-DK2 and MB1860B version of LCD board. The LCD is dark and look as dead. So my questions which could be provide the answer about incorrectly work of LCD sounds like: 1. Why doesn't the main demo work, despite of the docimentation suggestion that this kit is assembled with the MB1860B LCD version board? 2. How I can obtain the scheme for M
Hi, I'm trying to implement USBPD EPR Source with DisplayPort Alt Mode on a STM32G071. I use the latest https://github.com/STMicroelectronics/stm32-mw-usbpd-core, which seems to support EPR, but I couldn't find any complete examples with a working EPR source. Now I successfully enter EPR mode, and Sink receives EPR PDOs, but can't negotiate any PDO except the 1st. Even SPR PDOs The stack sends REJECT after PE_SRC_NEGOTIATE_CAPABILITY. It works perfectly in SPR mode and can switch between PDOs, but fails the same PDO in EPR mode 1st PDO in EPR mode ACCEPT: 2nd PDO REJECT: How can I debug these things inside the stack? What am I missing? Spoiler (Highlight to read)uint32_t PORT0_PDO_ListSRC[USBPD_MAX_NB_PDO] = { /* PDO 1 */ ( USBPD_PDO_TYPE_FIXED | /* Fixed supply PDO */ USBPD_PDO_SRC_FIXED_SET_VOLTAGE(5000U) | /* Voltage in mV */ USBPD_PDO_SRC_FIXED_SET_MAX_CURRENT(1000U) | /* Max current in mA */ USBPD_PDO_SRC_FIXED_PEAKCURRENT_EQUAL | /* Peak Current info */
Hello,We have procured a STM32U5G9J-DK1 discovery kit. We are in need of the default pre-loaded program that comes with the kit as this will help us to understand how to use Touch display and its other features. We see that this pre-loaded program is not available in the repository downloaded for STM32U5G. Therefore, request you to kindly share it here.With regard,Sudarshan Chaudhary
DearsWe used STM32G431CBT3 in 5000W Three-phase Permanent Magnet Synchronous Motor Driver projects, now facing some issues below, could you help check and advise this, thanks!1. There are some issues encountered in the project of driving with a three-phase permanent magnet synchronous motor. Please assist in resolving them. The attached file contains the design materials. If any other materials are needed, please inform us promptly. Thank you!1. Driver parameters:Rated power: 5000W (continuous operation with approximately 100A)Peak power: 13500W (300A current flow for about 3 seconds)Carrier frequency: 16kHzWorking voltage: 18 series lithium batteries (54V - 78V)Operating environment temperature: -10℃ to 50℃Motor slot-pole number: 36N, 42PTest topology:2. Problem Description: During the pulse experiment, the following issues were encountered. The double pulse parameters were (pulse current 400A, bus voltage 80V, auxiliary test inductance 5.6uH). Regarding the following severa
Hi , I have designed one product with STM32WB55 for BLE and Zigbee concurrency. The schematic design I have followed is the with out SMPS design (LDO mode). VFBSMPS, VLXSMPS, VDDSMPS pins are connected to VDD. Our firmware will scan for BLE devices and it works in Nucleo development board. But not functional in our custom board. With our board it is able to connect upto 4 devices only, but the same firmware can handle up to 18 devices in development board. What will be the reasons for this ?
Hello ST Community Team,I am facing a TouchGFX project generation issue related to path mismatch while working on an STM32H745 dual-core device – unable to locate .ioc / .cproject ?I am sharing my setup and issue details below. Environment Details:STM32CubeIDE: 1.17.0TouchGFX: 4.25.0X-CUBE-TOUCHGFX: 4.25.0Controller: STM32H745XIH3Core Used: CM7Toolchain: STM32CubeIDEOS: Windows Issue Description:I have written application code for Core-M7, and when I try to generate images / assets using TouchGFX, the generation fails during Post Generate Target.Error observed:Post Generatetouchgfx update_project --project-file=simulator/msvs/Application.vcxprojDonePost Generate Targettouchgfx update_projectUnable to locate D:/WORKSPACE_APPLICATION/LPOCIP_090126_1430_PM/LPOCIP_SCRATH_jumper_QSPI_APIS_SWETHA_UPDATED_QSPI_SDRAM_CAN_PWM/.cprojectFailedFailedHowever, the actual .ioc file exists at:D:/WORKSPACE_APPLICATION/LPOCIP_090126_1430_PM/LPOCIP_SCRATH_jumper_QSPI_APIS_SWETHA_UPDATED_Q
I have connected and an external HS PHY to STM32F427VGT6 through ULPI pins.Configured USB_OTG_HS in Host Only mode for external Phy with parameter Settings asSpeed: High Speed 480MBits/s Enable internal IP DMA: DisabledPhysical Interface: External PhyUse External VBUS: EnabledSignal Start of Frame: DisabledIn NVIC settings for USB_OTG_HS all three available interrupts are enabled. USB On The Go HS End Point 1 Out global interrupt true 0 0 USB On The Go HS End Point 1 In global interrupt true 0 0 USB On The Go HS global interrupt true 0 0 In Middleware Packages USB_ Host, FATFS is configured according to attached image.MCU schematic and USB-PHY schematic is also attached.The problem i am facing is STM32 is not detecting USB and gstate of USB always remain to HOST_IDLE, even if i connect or disconnect pendrive.
Split from RF Communication with Nucleo-WL55JC Boards - Seeking Guidance This is a different question. Hiii,I need to receive the time from the network server. How to fix this issue.Give me the clear steps to fix .
Hi,I have been trying to communicate with an SPI peripheral (NOR Flash). I want to use SPI in half duplex mode. The problem is that as soon as enable the SPI peripheral I see SPI constantly sending OxFF over MOSI even though I have not written anything on the SPI DR register.Pasting the screenshot of the Salea LABelow is the simple SPI TX code void SPI_SendData(uint8_t* Txdata, uint32_t len) { if((spi_dev->SR & TXE_FLAG)) { spi_dev->DR = *(uint8_t*)Txdata; Txdata++; len--; } if(!(spi_dev->CR1 & SPI_EN)) { spi_dev->CR1 |= SPI_EN; } while(len > 0) { // Wait for TXE FLAG if((spi_dev->SR & TXE_FLAG)) { spi_dev->DR = *(uint8_t*)Txdata; Txdata++; len--; } } }Edited to apply source code formatting - please see How to insert source code for future reference.
I have ordered NUCLEO-G491R to test STANDBY mode power consumption. The power consumption measurements are taken via the PPK2 from Nordic.https://www.nordicsemi.com/Products/Development-hardware/Power-Profiler-Kit-2The steps:1. Take STM32CubeMX example project PWR_SHUTDOWN that is available for the Nucleo board.2. Program the board (ensure the JP5 jumper is at the 5V_STLK position)3. Remove the JP5 jumper because we will be powering the board via the external 3V3 (PPK2) 4. Connect the PPK2 to 3V3 and GND on the board. 5. Start samplingSee the results below:When the device enters STANDBY, the current consumption is measured at about 1.5mA which is way above what is declared on the datasheet.What could be the reason that I cant achieve the declared current consumption for the STANDBY mode via the official example project? I am convinced that measurements of the PPK2 are valid as I have used this board in the past to measure very low currents and it was showing reasona
Hello everyone,I am facing severe stability issues with a Nucleo-WB55RG project generated via STM32CubeMX (FW Package V1.24.0).The Core Problem: The device advertises and connects, but suffers from random "Silent" Disconnections (no event generated) - connection loops and eventually complete silent (advertisement doesnt start after disconnection). This happens in multiple scenarios, including simple idle connections and bonding attempts.Detailed Scenarios:1. Scenario A: Idle Connection (Without Bonding)I connect using the ST BLE Toolbox app and leave it idle.Behavior: After a random period (non-uniform time), the device automatically disconnects, reconnects, and enters a loop.Observation: Even without initiating bonding, the link is unstable.2. Scenario B: Pairing via Android Bluetooth SettingsI go to Android Settings > Bluetooth and tap the device to Pair.Behavior: The phone displays "Pairing..." indefinitely.Observation: The UART logs show "BLE Connected", but the handshake never
Hello Sir,I urgently want to have an idea whether due to the change of LCD from HT043C KunJjian to RK043FN48H-CT672B Rocktech in 32F746GDISCOVERY Board, is there any changes in the firmware due to this?I would like to request for early response from your team, thanks for your support in advance.Note: From the post only I got a point that RK043FN48H-CT672B Rocktech changed from HT043C KunJjian, 32F746GDISCOVERY B02 and C01 - what's the differen... - STMicroelectronics CommunityBest RegardsSushant Verma
I'm experiencing a HardFault that occurs always on cold boot (after the board sits unpowered for ~1 hour). It also occurs sometimes when flashing and immediately running from the debugger.I'm using FreeRTOS, and I've noticed that commenting a task, flashing the new firmware, no hard faults. De-commenting the same code, flashing again, problem solved (with debugger on).I exit the debugger and try to power cycle the device, all works.After the board sits unpowered for a certain time and I try to turn it on, Hard Fault again.The issue is always the same CFSR.IMPRECISERR (imprecise data access error)I managed to have a call stack and the assembly codeCFSR.IMPRECISERR (imprecise data access error) PC = 0x70017DD2 Stack trace: HardFault_Handler <Exception frame> touchgfx::LCDGPU2D_AXI::blitCopyCompressedRGB565_16BPP() + 0x69d0x7001'7dca: LDRGT R2, [SP, #0x1c] ; Load scratchBuffer address 0x7001'7dcc: STRHGT.W R10, [R2, R5, LSL #1] ; Store halfword 0x7001'7dd0: ADDGT R5, R5, #
Hi,I have 3 radio-buttons in a custom container which is present on several screens.I would like the radio-buttons to keep their states between when switching screens.I have the radio-buttons states reported to the model every time a button is pressed and when the screen changes, the new active view fetches the radio-button state.However, I do not see a function to update a radio-button state without triggering the button action.Is there such a function?
Good day,I've been working for a little on this and can't wrap my head around what the issue is, so figured I'd post here. As a start I'm doing a graduation project from a computer science education and am working on a project that requires a high speed usb to be implemented on a nucleo h755ziq. There are other pieces in play, but those have been disconnected to try and get this one part to work. To make this work I have the nucleo board and a usb3300. This usb3300 has been put on a board and connects to pins placed on the nucleo. I have quadrouple checked the pins and they are all correct. In CUBEMX I setup the USB_OTG_HS external PHY to device mode, as ill be using it as a device which will be detected by an application later in development. I have also set the middleware up for Virtual Com Port as shown below.My pinout is also setup correctly, but for the sake of detail here is the pinout.I have set up the clock for the stm to 192MHZ due to the other components that will b
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.