Join conversations with your peers and ST experts. Explore the full potential of STM32 microcontrollers for your embedded design.
Most recent activity
Hello,I'm using a H743 with the DMA2D device in RegToMem mode. Generally it seems to work for larger images, but I've been trying to fill a small rectangle (5 x 60) pixels, and I was expecting 300 write pulses. Instead, I'm getting 480 pulses (8 x 60 pixels)???. Is there a weird requirement that the width of the fill has to be a multiple of 8? I don't remember seeing such a requirement in the datasheet.thanksMatthew
I am simulating messages to be received via CAN on the STM32F0xx series uC. The hardware FIFO does not overflow as I have activated the overflow interrupt and checked the FIFO level, which never exceeds 1. The current implementation consists of a 128-byte software buffer. Now, the system is able to handle messages sent at 100 ms intervals. When I start sending messages at 10 ms intervals, it begins to overwrite the previous entry in the buffer. It does so once after a long time of sending messages, and does not happen frequently.The potential issue is that the interrupt fires every 10 milliseconds, while the main message processing happens every 50 milliseconds, so the buffer is cleared/read after 5 messages have already been sent. What I am noticing is that the current index for the ring buffer "resets" to the previous interrupt's counter value, the occurrence of which is low. Hence, when the message counter in the CAN frame is received, due to the current index being "reset", it
Hi,I’ve been struggling to get an image from an image sensor using DCMI via GPDMA on an STM32U595.The sensor outputs a 1280x800 image in 12-bit RGGB Bayer format, which I’ve configured correctly. That gives 12 bits per pixel, and I want to capture the full frame at that resolution.DCIMI interface :DCMI_PIXCLK is 64MHz.12 bit data (D0-11) and DCMI_HSYNC and DCMI_VSYNCI've used the AN5020 as a reference for setting up the code, configured I2C communication, DCMI in slave 12-bit external sync mode, and set the DCMI polarities to match the sensor's output. I’ve also verified that VSYNC and HSYNC polarities are correct based on the sensor’s datasheet (AR0144CS).When I capture an image without accessing any other peripherals like USB (USB_OTG_HS) or GPIO ports (Port B, D, E), it works fine. No DCMI or DMA overrun errors occur, and the buffer gets filled correctly with 1,024,000 bytes (1280x800x2).However, the moment I access USB or any of the GPIOs, I start seeing DCMI/DMA overrun errors, no
Hi,In STM32H56xx, if both EDATA1_EN and EDATA2_EN are set to 0, can I place application code in the high-cycle data flash memory?I am confused by these two descriptions in the reference manual:“A threshold per bank (EDATA(1/2)_STRT) is programmable in user option bytes to determine the beginning of the data flash area. By default, all flash memory is used for code.”“Attempt to fetch instructions from flash memory high-cycle data area.”
Hello,We are working on an STM32F469/79-based device that uses SBSFU, which we are seeking to modify to use the STSAFE-A120 to perform the authentication and decryption algorithms.Section 2.7 of the STSAFE-A120 datasheet includes that the STSAFE-A120 supports the following symmetric ciphers for encryption and decryption.AES in CCM*/CTR modeAES in CBC modeAES in ECB modeAES in GCM/GMAC modeSection 4.7 of the STSAFE-A120 datasheet includes that the STSAFE-A120 supports symmetric decryption by chunks via the "Start decrypt", "Process decrypt", and "Finish decrypt" commands.We planned to use X-CUBE-STSE01 (v1.0.0) to interface with the STSAFE-A120. However, we were surprised to see that AES-CBC decryption does not seem to supported. This prevents us from using the STSAFE-A120 with SBSFU crypto scheme "SECBOOT_ECCDSA_WITH_AES128_CBC_SHA256". X-CUBE-STSE01 seems to also lack support for AES-GCM decryption by chunks. This prevents us from using the STSAFE-A120 with SBSFU crypto
Hello everyone,I am experiencing a HardFault on an STM32F746G-DISCO board while working with TouchGFX. The issue seems to be related to code automatically generated by the TouchGFX Generator in STM32CubeMX.The fault occurs when my application tries to set text on a TextArea widget. The debugger stops inside the HardFault_Handler, and the call stack clearly indicates the issue originates from the setTypedText() function chain.Here is the relevant part of the call stack from the debugger:HardFault_Handler()touchgfx::TextArea::getTextWidth()touchgfx::TextArea::resizeToCurrentText()touchgfx::TextArea::setTypedText()... (my application code, which was generated by the generator)It seems that a call to setTypedText(), which is part of the generated code, is leading to the HardFault. I suspect this might be caused by an uninitialized TextArea object or a configuration issue within the generator, but I'm having trouble pinpointing the exact cause.Has anyone encountered a similar issue with cod
I'm trying to talk to a string of WS2812C LEDs with an STM32C011J4M6. The timing requirements are:Here's the schematic. I populated R3 and removed R1:I'm hoping for the simplest hardware implementation, so I'm using the HSI 48MHz clock. This means that each clock cycle is 20.8ns, which means that, for a 0, the pin can only be high for at most 18 clock cycles. With that in mind, I tried to write the most efficient driver that also takes the same time for each bit.My problem is that, when I try to output a string of 1s, the timings vary despite the code being the same for each bit:I get 4 short pulses (840ns, good) followed by 4 longer pulses (1670ns, too long). Somehow, ~45 extra clock cycles are embedded in the long pulses, which doesn't make any sense since the code is the same for each bit.Is the microcontroller doing background tasks or something? Why is the timing different in such a predictable way?Here's my main.c:#include "main.h" #define NUM_COLOURS 3 #define LED_COU
I've been trying to read the analog temperature sensor on an STM32H723 MCU. Somehow, my readings were invalid. So, I've started debugging and realized that there are possibly faulty macros defined in stm32h7xx_ll_adc.h (HAL v1.11.5). As shown below, these macros treat ADC3 (to which the internal temperature and Vref are connected) as a 16-bit ADC instead of a 12-bit ADC. When I use LL_ADC_RESOLUTION_12B instead of LL_ADC_RESOLUTION_16B in those macros, the problem gets solved.Am I missing something?/** * @brief Helper macro to calculate analog reference voltage (Vref+) * (unit: mVolt) from ADC conversion data of internal voltage * reference VrefInt. * @note Computation is using VrefInt calibration value * stored in system memory for each device during production. * @note This voltage depends on user board environment: voltage level * connected to pin Vref+. * On devices with small package, the pin Vref+ is not present * and internally bonded to pin Vdd
Hello,I am working on a project using the STM32F429I-DISC1 board. This project is part of my part-time job and will also serve as my university thesis. I’ve been working on it for about a month, but I’ve run into some issues I can’t solve.My goal is to make the board function somewhat like an oscilloscope (Gaussmeter) — it doesn’t need to be perfectly precise.I’m sampling at 10 kHz and storing samples in a buffer of size 168 (since 10,000 / 60 ≈ 167.6). Every handleTickEvent() (which runs at 60 Hz), I send this buffer to a DynamicGraph.The problem is that it doesn’t behave correctly.In a previous version, I plotted one point per tick, which naturally skipped some samples but still displayed the sine wave correctly on the DynamicGraph, and the computed values were accurate.In this new version, I’m trying to buffer 168 samples and then plot them in a for loop, but the results are inconsistent:sometimes nothing is drawn,sometimes the same Y value repeats for many X values, and calculated
Hi everyone,I’m facing an issue with power consumption in STOP2 mode on my custom board.The board includes only the STM32U595 MCU, bypass and decoupling capacitors, and the inductor for the SMPS — nothing else is connected.According to the datasheet, I expect a current consumption of around 4.65 µA in STOP2 mode (pag 214 Table 59, VDD = 3.3 V).However, when I measure it with my STLINK Power Monitor, I get about ~10 µA with fast oscillations. MX configuration:All peripherals are disabledSysClk = 16 MHzAll SRAM banks in Power-Down modePower saving mode enabledSMPS enabledVoltage scale = Range 4All pins configured as analog input (via Project Manager → Code Generator)Application code: HAL_DBGMCU_DisableDBGStopMode(); HAL_Delay(5000); /* USER CODE END 2 */ /* Infinite loop */ /* USER CODE BEGIN WHILE */ while (1) { /* USER CODE END WHILE */ /* USER CODE BEGIN 3 */ printf("Entering lowpower mode\r\n"); HAL_Delay(500); HAL_SuspendTick(); HAL_PWREx_EnterSTOP2Mode(PWR_STOPE
Hello,I'm migrating from a H743 to the N657 device. Are there any tutorial / documentation / video that shows what the meaning of FSBL / Application / ExtMemory does and how to configure?and how to use this?thanksMatthew
Dear ST Technical Support, I am looking for reliability data for the STM32L151 series microcontrollers, including:- FIT rates (failure rates)- MTBF/MTTF calculations - Lifetime expectations- Qualification test results Could you please provide the relevant documentation or direct me to the appropriate resources? Thank you.
Hello I tried to upgrade the STWIN.box Wi-Fi Module with the instructions provided in the STM32CubeFunctionPack_DATALOG2_V3.1.0. i tried dragging the HEX file to tera term with the following settings attached in the images below. i was not able to successfully upgrade the wifi module.i am using the stlink-v3minie with the boardi really appreciate the help of community memberskind regards Jose John
I'm working on some automation for our project using the STLINK-V3PWR. For that, I need to control the GPIOs. Based on the information from this page, I managed to get a working solution. Unfortunately, when compiling on Windows, I ran into a linker issue with the provided STLinkUSBDriver.dll. It seems that I'm missing the corresponding .a file for the linker. I also tried using dlltool, but it appears that some of the required functions are not present in the DLL.Has anyone managed to successfully generate a working import library for Windows/Cygwin? /usr/lib/gcc/x86_64-pc-cygwin/16/../../../../x86_64-pc-cygwin/bin/ld: STLINK-V3-BRIDGE/src/sharedStlk/common/stlink_interface.o:stlink_interface.cpp:(.text+0x31): undefined reference to `STLink_FreeLibrary()' /usr/lib/gcc/x86_64-pc-cygwin/16/../../../../x86_64-pc-cygwin/bin/ld: STLINK-V3-BRIDGE/src/sharedStlk/common/stlink_interface.o:stlink_interface.cpp:(.text+0x7e): undefined reference to `STLink_FreeLibrary()' /usr/lib/gcc/x86_64-pc-c
STM32F411CEU6 Minimum System Board Microcomputer STM32 ARM Core BoardI'm unable to flash my board using USB DFU mode. When I enter DFU mode, Windows fails to recognize the device and shows a USB error. However, UART flashing works correctly using PA9 (TX) and PA10 (RX)- Hold the BOOT0 button- Pressed and released RESET button- Then released BOOT0- Windows shows a popup:_USB device not recognized. The last USB device you connected to this computer malfunctioned- Device Manager says "USB Device Descriptor Failed"- STM32CubeProgrammer and dfu-util do not detect the deviceAnd also I installed STM32CubeProgrammer, Drivers and more but still cant enter dfu mode On the other hand Im unable to flash board with UART which I dosent like Note- Im new to STM boardsI'd appreciate help in diagnosing and fixing the USB DFU issue on my STM32F411CEU6 Black Pill board.
Hi AllHope everyone is well,Im working on a large and expensive project that requires dual core processing, therefore prior to committing to the cost of my project I created a custom dev board to ensure I can achieve what is required for my project.My dev board I am soldering components using stencil and reflow plate. The Chip connects to Cube PRG and runs code I uploadWhen powering my board via USB (5v VBUS) the STM32 is getting extremely hot (Burn your finger hot), I have checked the following. 1. VCAP and VCAPDSI tied to GND via 2.2UF CAPS2. Don't appear to have any bridges across pins / pads , iv checked under microscope.3. Board is drawing current of 1.2amps when using USB.4. I am getting continuity between 3.3v and VCAP pins, which suggest I have a short, I can only think maybe a bridge on the rear of the pins that I cannot see.5. When powered on Im reading 1V on the VCAP pins, suggesting the VCAP are being pulled done by over current.6. D+/D- pins when powered ,
Hello,I am attempting to program many devices (~15-30) using the built-in USB DFU on the STM32U585 in parallel. Using the STM32CubeProgrammer CLI (v2.17.0), I am running the following command to connect the devices:–-connect port=usb sn=<DFU serial number>I am performing device programming in a threaded-manner such that each device is put into USB DFU mode and connected to/programmed in parallel. To create the DFU serial number, I first obtain the 96-bit MCU UUID, combine the first and third 32-bit sections, then concatenating the first 4 MSB of the second section. For example, given UUID 00580027 3331500b 20333153Combining 0x00580027 and 0x20333153 yields 0x208B317AThen concatenating the first 4 MSB of 0x3331500b yields 0x208B317A3331The resulting DFU serial number 0x208B317A3331 is in line with the DFU serial number detected within STM32CubeProgrammer as well the serial number detected within the USB device manager. However, producing this DFU serial number dimin
Hello, I am trying to set up an external flash memory (MX25V1635F) on a Nucleo-U575ZI-Q using SPI.- I managed to simulate a disk using RAM memory, Windows formats it perfectly, which leads me to believe that my USBX configuration is correct.- I also tested my LevelX functions for reading and writing to my NOR flash, and they seem to be working correctly, which leads me to believe that the LevelX configuration is correct.- I disabled all my FileX functions (format, open, read, and write) because it seems that Windows (USB Host) takes over the formatting. (Btw, if FileX can't be used, how can I write a formatted file to my flash memory?). My problem: when I leave the USBD_STORAGE_Write and USBD_STORAGE_Read functions empty, Windows can see the size of my disk and offers to format it (without success):And when I implement these two functions (based on the only example I found online using the Levelx functions lx_nor_flash_sector_write and lx_nor_flash_sector_read: LINK), Windows
I have been working recently on a board that i have made for a flight computer. But unfortunately, I have encountered some problems while programing the board.The conection to the board works great, and I´m able to upload de code and read it. The Issue comes when I try to make the code run that the board does not do anything. I have the doubt of it being a hardware or software problem as I did the design of the board.Here I adjunt some of the evidences that I have been looking in case someone needs them to provide and answer:debugger console log:warning: ARM M in lockup state, stack unwinding terminated. set *(unsigned int *)0xe00430a0&=~0x1 Note: automatically using hardware breakpoints for read-only addresses. set *(int *)0xE000EDFC=*(int *)0xE000EDFC|0x7F0 set *(unsigned int *)0x5c001004|=0x3f warning: ARM M in lockup state, stack unwinding terminated. set *(unsigned int *)0xe00430a0&=~0x1 Note: automatically using hardware breakpoints for read-only addresses. set *(int
#include <stdint.h> #include <stdio.h> #include "stm32f4xx.h" volatile uint8_t rxdata = 0; int main(void) { SystemInit(); SystemCoreClockUpdate(); // clock configutation RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOB, ENABLE); // TX: PB6 RX: PB7 RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOD, ENABLE); // LED LED4: PD12 LED3: PD13 RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1, ENABLE); RCC_APB2PeriphClockCmd(RCC_APB2Periph_SYSCFG, ENABLE); NVIC_PriorityGroupConfig(NVIC_PriorityGroup_4); // gpio initialization GPIO_InitTypeDef GPIO_InitStruct; GPIO_StructInit(&GPIO_InitStruct); GPIO_InitStruct.GPIO_Mode = GPIO_Mode_AF; GPIO_InitStruct.GPIO_OType = GPIO_OType_PP; GPIO_InitStruct.GPIO_Pin = GPIO_Pin_6 | GPIO_Pin_7; GPIO_InitStruct.GPIO_PuPd = GPIO_PuPd_UP; GPIO_InitStruct.GPIO_Speed = GPIO_Speed_50MHz; GPIO_Init(GPIOB, &GPIO_InitStruct); GPIO_PinAFConfig(GPIOB, GPIO_PinSource6, GPIO_AF_USART1); GPIO_PinAFConfig(GPIOB, GPIO_PinSource7, GPIO_AF_USART1); // usart initiali
I have made an adapter that sits between the STLink V3 and the device that needs to be programmed, so that I can give T_VCC on the STLink side 3.3V from an external supply.So far I have used 3.3V as VCC on the target as well, but I am considering lowering VCC on target to 3.0V instead.As far as I can tell from datasheets, there shouldn't be an issue with keeping T_VCC on the STLink side at 3.3V while VCC on target is 3.0V, but I wanted to check here if anyone has something different to say about this mismatch. If it's a bad idea, I will need to have adapters around with T_VCC 3.0V and others with T_VCC 3.3V depending on which target device I work with, which in this case is a bit of a hassle.
Hi ST Community — quick question about the MB1280 fanout and the ESP-01 socket.I’m trying to get UART comms between an STM32H747I-DISCO and an ESP-01 (plugged into the MB1280 ESP-01 socket) but I can’t get any response from the ESP.SetupSTM32H747I-DISCO (MB1248) + MB1280 fanout (3V3-C01 rev)ESP-01 in the dedicated ESP-01 socket on MB1280STM32 ↔ ESP via STMod+ P2 (20-pin) — USART2 on PD5 (TX) / PD6 (RX)USART2: 115200 baud, RX handled with interruptsWhat happensSTM32 transmits AT commands (verified on a logic analyzer).ESP-01 powers.But: STM32 receives zero bytes — no boot messages, no AT replies. Tried other baud rates (9600, 74880, 57600) — nothing.What I measuredGPIO0 (ESP-01 pin 5) reads 0 V (GND) with a multimeter.That explains it: GPIO0 = LOW at boot → ESP goes into flash/bootloader mode, so it won’t run AT firmware. The LED behavior also matches (LED stays on in flash mode).QuestionsHow is GPIO0 wired on the MB1280 at the ESP-01 socket? Is it tied to GND by default?Is there a jump
Hello ST experts, I have recently taken up a LORA wireless communication project, previously the transmitter side was using ebyte's lora module based on SX1278 and the receiver side was using a combination of STM32L1 and SX1278, they have been working well at 408MHz. my work switched the receiver side to STM32WLE5J8 for better integra , I designed the PCB myself but there are some flaws. Although I could boot the chip properly, I ran into some problems.My STM32WLE5J8 can receive the data sent by the SX1278, it shows the RSSI and SNR of the received signal, but the data can't pass the CRC checksum, based on the log of the SUBGHZ-PINGPONG routine, which shows IRQ_CRC_ERROR and HDR KO. after I turned off the CRC checksum on the transmitter and receiver side, I saw my exactly what kind of error data is being received. When I set the payload size to 111, I tried transmitting single bytes, multiple bytes, and 111 bytes. The receiving end would receive the correct number of bytes, but
Hello All,I am using STM32F103C8T6 dev board and implemented UART code with RX idle line interrupt. I tested using USB to TTL converter it working as expected. But when I connected this UART to the Bluetooth module, it did not get interrupt if the command length was more than 1 byte.This behavior is very wired because it works when connect USB to TTL and not work when want to actual hardware with Bluetooth module.My working simple code isHAL_UARTEx_ReceiveToIdle_DMA(&huart3, Serial3RxData, UART3_RX_MAX_LEN); void HAL_UARTEx_RxEventCallback(UART_HandleTypeDef *huart, uint16_t Size) { // printf("UART SERIAL REC:%s\r\n", Serial3RxData); isSerialAvailble = 1; HAL_UARTEx_ReceiveToIdle_DMA(&huart3, Serial3RxData, UART3_RX_MAX_LEN); } //when isSerialAvailble is set trigger the function and execute RX command.Is there any external pullup or pulldown for Rx line required? What could happen when send more than 1 byte length and then not receive interrupt? Thanks in advance
I just discover that the TouchGFX tool run only on Windows ...:(I do not use Windows and I have no plan to use it one day.Do you know if it run on Linux with Wine ?Thanks
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.