Join conversations with your peers and ST experts. Explore the full potential of STM32 microcontrollers for your embedded design.
Most recent activity
Hello ST Community!I've been trying to recreate the DCMIPP_ContinuousMode example with STM32CubeIDE, but have been running into some issues with the IMX335_Probe function, the ID read by the I2C bus never matches the expected define IMX335_CHIP_ID. The original example runs completely fine in the STM32N6570-DK.- AXISRAM3 (0x34200000) is being used as the address for the DCMIPP CSI Pipe.- ISP Middleware does not return any errors in initialization.- All files regarding IMX335 registers and functions match with the original examples. Same for all the BSP drivers.- RIF has been configured for all peripherals involved.- AXISRAM3 has been enabled in the CubeMX configurations, and it's clock has also been enabled.static void IMX335_Probe(uint32_t Resolution, uint32_t PixelFormat) { IMX335_IO_t IOCtx; uint32_t id; /* Configure the camera driver */ IOCtx.Address = CAMERA_IMX335_ADDRESS; IOCtx.Init = BSP_I2C1_Init; IOCtx.DeInit = BSP_I2C1_DeInit; IOCtx.ReadReg = BSP_I2C1_ReadReg16; IOC
Recently, I encountered a tricky problem, I used STM32F405VGT6 this IC, but I found that it could not enter DFU mode normally, after repeated troubleshooting, I found that when the chip was USB probed, HSE was detected and did not vibrate, I also saw a similar article on the forum, I noticed that in the article, changing F405 to F429 can enter DFU mode normally.Further investigation, comparing the difference between the two ICs, it was found that the HSE start-up timeout time of the F405 IC was too short, and the HSE timeout time of the F405 was found from AN2606, and the version of the v3 version was 0.79ms, and the version of the v9 was relatively normal with 96msI want a timeout of 0.79ms, how do I do that? Is there any way to start HSE within 0.79ms of bootloder version v3? I hope the official can give an answer, thank you very much
Hi ST Family,We are using STM32H745BIT6 MCU in our design and interfaced the same to multiple I2C slaves. For I2C lines, we have connected pull up of 2.2K to 5V power rail. In STM32CubeMX, we are enabling "No pullup or No pull down" for I2C lines.Since this MCU family is "not true open drain" ( Page 202 of datasheet), we need to know if we can continue with this configuration.Over the long run, do we see any issues of I2C engine going bad because of this configuration.?Regards..
Hey there community, I am having trouble fixing an interesting scenario on Usart communication,With the same software doing a reception on a given usart interface, It has been noticed the reception segregates one connection but not the other, Both connections having the same configurationIt has been tested that the board on which it fails has connection on that line and that the connection actually reaches the intended pin for sure by testing the Usart Rx pin when set up as a both a GPIO input and latter as an output.by playing with this GPIO input and output mechanisms on that pin. and observing respectively from both the led toggles on the board intended to signify sign of life on the pin and, logic analyzer to see the GPIO state when toggled from with in the system.Note, we are able to see the usart signals on both and are able to decode the messages on a logic analyzer for both, but the stm does not receive the message on one connection.We appreciate any insight into the Issue
Hello I have a STM32f469-discovery. I have trouble loading code/programming. I have successfully programmed the board via the Flowcode software. Also I can use the Hex or Bin generated file from Flowcode, import it in the STlink utility and load it on the board. That works. What I can't do is to open a demo or example for the touchGfx designer and program the board. I click on the "program and run target" but ends up in error"ST-LINK error (DEV_CONNECT_ERR)c:/TouchGFXProjects/MyApplication_7/gcc/include/flash_sections_int_ext.mk:2: recipe for target '_extflash_' failedmake[1]: *** [_extflash_] Error 1../gcc/Makefile:53: recipe for target 'flash' failedmake: *** [flash] Error 2FailedIn the touchGfx there is no indication that the board is connected. I get indication only on the STlinkIf I select the "Generate code" it successfully does it but later on I dont know where to load that code in order to use it to program my board via another software. Is there a specific sequence f
Hi,I'm using STM32H755 Nucleo board and I'm evaluating ADC. I'm using 1.92MSPS per ADC sample rate for ADC1 and ADC2. I'm using A0 and A5 pins from CN9. I'm using ethernet to transfer data. My input to A0 (I channel) is 100kHz sine and A5 (Q channel) input is constant 1.6V. The problem is periodic noise around 320kHz.What might cause that and is it possible to get rid of that? I have read that it might be caused by ethernet connection. I would need ethernet in final application, so would need to solve the issue somehow.
There are still some typos to fix in the migration docum. for instance:"Atomic" API names - change to "unitary" as was agreedPACKET - > PACKED
Hi! Starting a design with an STM32WL31K8V6. This is the 32 pin VFQFPN32 variant.As far as I can see, there is no HW Reference PCB that covers the 32 pin package. Looking at the datasheethttps://www.st.com/resource/en/datasheet/stm32wl31kb.pdfon p.32, there is Figure 10. "STM32WL31xx application circuit with SMPS, VFQFPN32 package" which shows the typical circuitry around the chip (i.e. the matching network).However, looking into the details of AN5457, latter shows a different matching topology than the datasheet. It´s similar, but still...https://www.st.com/resource/en/application_note/an5457-rf-matching-network-design-guide-for-stm32wl-series-stmicroelectronics.pdfSince the AN5457 shows details on how to so the matching I tend to use the topology shown there but what is the reason that there are different references?Thanks
I'm in need to scan a bunch of contacts in a 4 rows, 8 column diode matrix configuration. PA0-PA7 are the inputs, PB12-PB15 the outputs. What I'm wondering about is the PA0-WKUP special function in contrary to the rest of inputs (PA1-PA7). Do I have to care about this circumstance?
Hi Everyone, I one of our project i want to store the logs on NOR flash. I want to use Levelx to take care of NOR flash low level . But as per documents levelx can be used with Filesx, Is there is any way that i can use Levelx with Filex?
Hello, I have a problem reading VBat voltage with ADC3 and DMA in STM32H743VIT6 If i compile with CubeIDE 1.17.0 and FW 1.12.1 my program works as spected, but if i compile with last CubeIDE 2.1.1 and last FW 1.13.0 my program enter in a infinite loop related to DMA and never execute the while(1) loop. Can anybody help me? Thanks in advance. regards Jose. My program is very simple (see below): in main.c: /* USER CODE BEGIN 2 */ HAL_ADC_Start_DMA(&hadc3, &VBat_ChAna, 2); /* USER CODE END 2 */ /* Infinite loop */ /* USER CODE BEGIN WHILE */ while (1) { Vbat = 4 * (((VBat_ChAna &0xffff) * 3300) / 0xFFFF);/* Convert the result from 16 bit value to the voltage dimension (mV unit) *//* Vref = 3.3 V.*/ /* USER CODE END WHILE */ /* USER CODE BEGIN 3 */ } /* USER CODE END 3 */ ADC3 configurationADC3 DMA configuration
Hi community !I was working on a custom STM32 board as part of a robotics project. We started evaluating STM32H7 through the Nucleo boards, and now that we've confident with our chip selection, I designed a custom nucleo-type board, which can later be integrated on our main robot PCB. Since we didn't need any additional features, main focus was to have a board with just the STM32 chip (STM32H755ZIT6) along with the basic components needed. During the evaluation, I am not able to establish connection between ST-Link V3 MiniE, it shows "No target found". The board is powered by an 5V external supply, which powers the STM LDO, providing 3.3V for the chip. I tried playing around with the ST-Link config settings like Frequency, Mode, Reset Mode and Speed, but it doesn't help in fixing the error.Upon testing the ST-Link with the Nucleo board, it is able to connect to the STM32 onboard (so the ST-Link board is working fine). Upon reviewing my schematic, I realized that there were tw
I am working with the NUCLEO-WBA55CG board on a Zigbee_OnOff project, and I am facing an issue with the LED behavior.EnvironmentBoard: NUCLEO-WBA55CGMCU: STM32WBA55CGSTM32CubeMX version: 6.17.0Firmware package: STM32CubeWBAApplication type: Zigbee On/Off example / based projectThe project is able to run, and Zigbee side behavior appears to be partially working, but the LED is not blinking/toggling as expected.The problem is:button press has no visible impact on the LED, orZigbee On/Off action does not toggle/blink the LED as expectedIn my case, the issue looks more related to the GPIO / board mapping / callback path than to Zigbee network joining itself.
Hi, I am trying to configure the X-NUCLEO-GFX02Z1 display expansion board with the NUCLEO-F767ZI board. The LCD controller used is ST7789, and the interface is configured via FMC. During BSP initialization (BSP_LCD_Init), I am encountering an error: Return status: BSP_ERROR_COMPONENT_FAILURE The LCD ID read is not as expected (expected value: 0x858552U as per the BSP driver) However, if I bypass this failure and proceed: I am able to set the orientation using BSP_LCD_SetOrientation I can retrieve the orientation using BSP_LCD_GetOrientation successfully When attempting to draw on the display using:BSP_LCD_FillRGBRect(0, 0, (uint8_t*)buffer, 0, 0, 100, 100); there is no visible output on the screen. Could you please help identify: Possible reasons for incorrect LCD ID reading? A minimal working example to display a solid color on the screen using this setup? Any guidance on debugging steps or known issues with this board combination would be greatly appreciated. I am already
Hello everyone, I am currently working with the STM32G431CBT6 and designing a custom ESC using the DRV8301 gate driver. My application requires a total of 9 ADC channels: ADC1 → 4 channels ADC2 → 5 channels I configured both ADCs in independent mode with DMA (circular) using STM32CubeMX. Issue Description When I start ADC with DMA using the following function: void ADC_Start_System(void) { // 1. Calibration HAL_ADCEx_Calibration_Start(&hadc1, ADC_SINGLE_ENDED); HAL_ADCEx_Calibration_Start(&hadc2, ADC_SINGLE_ENDED); HAL_Delay(10); // 2. Start ADC1 if (HAL_ADC_Start_DMA(&hadc1, (uint32_t*)adc1_buffer, 4) != HAL_OK) Error_Handler(); // 3. Start ADC2 if (HAL_ADC_Start_DMA(&hadc2, (uint32_t*)adc2_buffer, 5) != HAL_OK) Error_Handler(); } Observed Behavior ADC1 + DMA works perfectly MCU gets stuck when calling: HAL_ADC_Start_DMA(&hadc2, (uint32_t*)adc2_buffer, 5); No error returned, but CPU halts inside HAL (likely waiting on a flag) What I Ha
hello community ! I'm facing issue wiht RS485 mod on USART3. Please find here a TL;DR of the issue, context, workaround and finaly request for answers. HARDWARE PLATFORMMCU: STM32U595USART: USART3 configured in RS485 modePROBLEM DESCRIPTION:During development of RS485 communication firmware for the STM32U595, we encountered anunexpected issue that challenged our understanding of the USART configuration: USART3 is configured with RS485 mode via HAL_RS485Ex_Init() which correctly sets the DEM (Driver Enable Mode) bit in CR3 for hardware-controlled driver enable:HAL_RS485Ex_Init(uart_handle, UART_DE_POLARITY_HIGH, 16, 16);This is the documented, correct approach for RS485 with automatic driver enable pin control.However, after extensive investigation and troubleshooting, we discovered that working RX/TX communication on this specific hardware appears to require ALSO calling:HAL_HalfDuplex_EnableTransmitter(); // - before transmission HAL_HalfDuplex_EnableReceiver(); // - in tran
Now that that the CRA dates are near, why is there isn't a forum for regulatory compliance and CRA specific questions ?For example, which products STM offers now will not be CRA compliant ? This is important as those products would have to be revised or removed from the market.For example an STM32F072 would still meet requirement 1. as the main controller of the product with our without an RF/network connection (via UART/I2C etc..) or 2. as a peripheral connected to the main MPU (indirect) which connects with LAN or WIFI to outside world
I have set up a STM32U5 nucleo board with an additional 8M of memory using an APS6404, following the example in AN5050. Initial setup was straightforward, but trying to create a ThreadX thread that uses an array in that section of memory as its stack isn't working -- local variables within the thread are fine, but function calls like printf("foo") or tx_thread_sleep(10) cause a hard fault.This is my first project using a STM32 microcontroller, and think I'm missing some fundamental understanding of how this is supposed to work -- any suggestions for what I've missed / what I should try?------------------ Details about what I'm trying ----------------- After following the steps given in AN5050, I updated my .ld file to create a corresponding memory section:MEMORY { RAM (xrw) : ORIGIN = 0x20000000, LENGTH = 2496K SRAM4 (xrw) : ORIGIN = 0x28000000, LENGTH = 16K FLASH (rx) : ORIGIN = 0x08000000, LENGTH = 4096K OCTOSPI1 (xrw) : ORIGIN = 0x90000000, LENGTH = 8M } SECTIONS { .octospi1 :
Hi : I’ve been working on planning an STM32WBA25 series product recently. Regarding the antenna design, I’ve been referencing ST’s development board “NUCLEO-WBA25CE1.” From the MCU pin, the signal goes through an IPD, then a matching network, and finally to the antenna.Currently, the IPD is a major challenge for me. Is it possible to replace the IPD with discrete components?
Hello,A custom control board using an STM32G0C1 stopped working after some time. Upon plugging into the board and stepping through the program using the CubeProgramer, it was discovered that the PC was cycling through the same addresses repeatedly and getting hung up. These memory addresses were traced back to various HAL delay functions using addr2line. Normal operation involves the board initializing and executing various state machines in a superloop (no RTOS), not getting stuck in a "boot loop" delay. The entire flash memory was dumped to a .bin file and then an attempt was made to erase the flash using the CubeProgrammer with no luck and an error thrown. No fuse bits or any kind of erasure protection was enabled during the programming of this board. Then the CubeIDE was used to compile some code and start a debug session. Somehow, the CubeIDE had no issue loading a program into flash. This is where it gets interesting. 
Hello, I'm reading the article on "How to create an STM32N6 FSBL load and run" and have a couple of questions about DFU implementation on the STM32N6: 1. Is DFU possible with the application as part of the FSBL? 2. Is there an example on how to implement DFU for when the application is part of the FSBL and also where the application is separate from the FSBL? https://community.st.com/t5/stm32-mcus/how-to-create-an-stm32n6-fsbl-load-and-run/ta-p/768206 I'm using the stm32n6570-dk eval board. Thanks!
Board:B-L4S5I-Iot-01A discovery kitMCU: STM32L4s5Vit6Hello , We have an application in which we are using the USB_OTG interface configured in host-only mode with the USB CDC class. Our requirement is to receive data at a rate of once per second through this interface. However, upon configuring the USB CDC class, the USB_OTG_FS global interrupt gets enabled automatically. In our application, we want to minimize the use of interrupts, as frequent interrupts may impact overall system performance. Therefore, we would prefer a polling-based approach, where data can be read only when required rather than being interrupt-driven. Could you please advise if it is possible to: Disable the USB_OTG_FS global interrupt, and Use the USB CDC host driver in a polling-based manner to retrieve data on demand? Any guidance or recommended approach for achieving this would be highly appreciated. Thank you.
Hi people,i have trouble with writing to the internal eeprom / flash. I can write values one time to the EEPROM and read it correct back from eeprom. When i write next time values to the eeprom and read them, the values changed but are incorrect. I tried many solutions, but know i am perplexed.//EEPROM Funktionen void EEPROM_Unlock(void) { while ((FLASH->SR & FLASH_SR_BSY) != 0) /* Wait for FLASH to be free */ { /* insert timeout test */ } if ((FLASH->PECR & FLASH_PECR_PELOCK) != 0) /* If PELOCK is locked */ { FLASH->PEKEYR = FLASH_PEKEY1; /* Unlock PELOCK */ FLASH->PEKEYR = FLASH_PEKEY2; } //FLASH->PECR = FLASH->PECR | (FLASH_PECR_ERRIE | FLASH_PECR_EOPIE); /* enable flash interrupts */ } // EEPROM lock void EEPROM_Lock(void) { while ((FLASH->SR & FLASH_SR_BSY) != 0) /* Wait for FLASH to be free */ { /* insert timeout test */ } //FLASH->PECR = FLASH->PECR & ~(FLASH_PECR_ERRIE | FLASH_PECR_EOPIE); /* disable flash interr
Hello,I'm developing the software to exchange secure data between a remote host (Linux-OS computer) and a electronic board based on STM32U5 MCU and STSAFE-A110 secure chip. I already implemented the board authentication and I chose to use the symmetric key encryption that the two hosts securely exchange data. For that the two hosts computes each on their own the shared secret after sharing their own public key. That's works fine!But I don't know what functions of stsafe library to use to encrypt and decrypt data using the computed secret key board-side.Could you please help me?Best regards,Alex
Hello, I have been working on a project attempting to get Lua 5.5, Freertos running on a STM32h723.I used cubeMX to generate my project with Freertos enabled.I brought in Lua 5.5 library from their website https://www.lua.org/download.htmlI was able to get it compiling and my project as a whole builds and flashes without errors.Now the part that I'm struggling with. If for any reason Lua has a error the STM32 goes into hard fault and most of the time it seems to be a BusFault caused by IMPRECISERR.I'm trying to figure out if getting Lua to work on the Cortex-m7 is more involved than just adding the library. As I was watching a video from a person that was getting LuaJIT ported to the STM32h7 and he had talked about a few issues he had in regards to the Cortex-m7 https://www.youtube.com/watch?v=U9Jnah4uXBY Though I will admit he was trying to port over the Lua Just In Time compiler and other things that I don't believe base Lua has. I would appreciate it if anyo
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.