Join conversations with your peers and ST experts. Explore the full potential of STM32 microcontrollers for your embedded design.
Most recent activity
Hello.I try to get the nema-gfx working on a STM32H7S78-DK.But there's a bug in the NEMA library, or a bug in the ST toolchain. When I try to call the library function nema_cl_create() in my function nema_gfx_init(), according to the STM32H7RS GPU2D document (page 6), stm32h7rs-system-gpu2d.pdf the stack is overwritten with values, so the return address on stack (0x7002AEFB) is no longer available (0x00000000) and the cpu goes in hard fault. I suspect it's a bug in the NEMA library. The correct version for the H7 series was used. The error occurs with both versions: libnemagfx-float-abi-hard.a and libnemagfx.a. I looked inside the function in the disassembler, and at the end of the function, registers r0-r3 are written to the stack, but much too far! (See images) Stack bevore calling nema_cl_create. Return-adress: ok Stack after calling nema_cl_create. Return-adress: 0x00000000 Dissass. inside der nema_cl_create: overwriting behind actual stack en
Hi,I have purchased NUCLEO-F411RE controller EVK and X-NUCLEO-IHM08M1 expansion board to write motor control application and check the motor parameters on Motor Control Work bench tool.While checking for sample application or extension packages for the expansion board and controller, I don't find SPN8 package on X-CUBE extension list. And don't find sample application to add and compile on STM32IDE for NUCLEO-F411RE + X-NUCLEO-IHM08M1. Please suggest me sample application for the NUCLEO-F411RE + X-NUCLEO-IHM08M1 and how to add it into STMCUBEIDE, Compile and Run.Regards,Omkar
Hello,I'm trying to detect a USB stick insertion event to write a text file in the stick. I'm working on a NUCLEO-H563ZI with a jumper connected to JP2 USB USER line and a USB TYPE-C TYPE-A connector attacched in CN13. I started the code from an ST Example but without the USB-PD because I need only two lines (USB_FS_P and USB_FS_N).I saw others example with USB_OTG but my .ioc doesn't have this option. The problem is that I can't catch the USB stick insertion event. I put a breakpoint on "_ux_host_class_storage_activate" and on the "ux_host_event_callback" functions but I never reach these points.Where the event is cathced in the ST functions? What I'm missing / I'm doing wrong?I have attached the project. Thanks for the support
Hi everyone,I’m using the STM32F407VET6 VBAT pin to power the RTC, and I plan to use a CR2032 coin cell directly.I noticed that many schematics add a diode between the CR2032 and the VBAT pin to prevent reverse charging, but after checking the datasheet I’m still not fully sure whether this is actually required.I’d like to ask two questions:When the main supply is present, can the F407’s VBAT pin back-charge the coin cell? Is a diode necessary?Does ST provide an official reference design for powering VBAT with a CR2032? If so, where can I find it?Thanks for your help!
I have multiply\accumulate operations that I want to streamline by using the FMAC. For my application I will be loading the X1 buffer by DMA from peripherals and I don’t want to use circular mode. Documentation mentions ‘vector mode’ which matches what I need, but I don’t see documentation anywhere detailing how to make it work this way. Is this really supported?I'm researching how to improvise by tweaking the R\W pointers, but I'm not sure it is allowed either:Is there a way to keep the pointers from advancing after setting FIR and START bits?Can I reset the read pointer to the base address before executing the start commands?
In a recent design I needed an additional pin and I configured the PA13 / SWDIO pin as a GPIO input.All going fine, code works, but then this happened: After I program the chip in automatic mode and set the option byte rdp to 0xBB I can't connect again with the programmer. Programmer sais: No STM32 Target found...I tried different modes and reset modes, no luck.The readout protection alone is not the issue, I have been able to connect and reset this on other designs after it was set. The difference here is that the processor is using the SWDIO as an input when running. I thought this would not affect it as it should be available to the programmer directly after reset. The code without the readout protection set does not prevent me from connecting either. This must be the combination of both somehow.Any smart ideas how to circumvent this and connect the programmer again?Regards, PeterP.S. I know you like to look at the schematic for a custom board, so I will attach a snippet of the rele
I’m using the X-NUCLEO-IHM16M1 BLDC driver board, which is based on the STSPIN830, together with a NUCLEO-F446RE. In the STSPIN830 datasheet, ST clearly mentions that the device supports both 3-PWM and 6-PWM input modes.But in practice, on this expansion board:Only INU / INV / INW are connected to the MCUENU/ENV/ENW are present but “NP” (Not Populated) unless manually solderedNone of the INxH / INxL pins (the 6-input mode pins) are routed to the Nucleo connectorsTIM1 complementary outputs (CH1N/CH2N/CH3N) have nowhere to goMotor Control Workbench only allows 3-PWM mode for this boardThe user manual (UM2415) seems to confirm that the 6-input mode requires hardware changes: removing R12, replacing R11, and populating the NP resistors that route INxH/INxL to the MCU. Out of the box, the board is locked to 3-PWM “direct driving” mode.My question:Has anyone actually gotten TRUE 6-PWM complementary drive (TIM1 CHx + CHxN with dead-time) working on the X-NUCLEO-IHM16M1?Not "6 logic inpu
I updated The FUS of my STM32WB55 Nucleo Board to FUS v2.2.0.0 and the BLE Stack to v1.24.0.3After this change Flash erase operations fail at the call of `SHCI_C2_FLASH_EraseActivity` with the error code `SHCI_FUS_CMD_NOT_SUPPORTED`Additionally BLE does not advertise anymore.The log from the `Read FUS infos` returns some warnings:notably:10:35:12 : Warning: Option Byte: nSWboot0, value: 0x0, was not modified. 10:35:12 : Warning: Option Byte: nboot0, value: 0x1, was not modified. 10:35:12 : Warning: Option Byte: nboot1, value: 0x1, was not modified. 10:35:12 : Warning: Option Bytes are unchanged, Data won't be downloadedThe entire log:10:35:12 : Warning: Option Byte: nSWboot0, value: 0x0, was not modified. 10:35:12 : Warning: Option Byte: nboot0, value: 0x1, was not modified. 10:35:12 : Warning: Option Byte: nboot1, value: 0x1, was not modified. 10:35:12 : Warning: Option Bytes are unchanged, Data won't be downloaded 10:35:12 : Time elapsed during option Bytes configuration: 00:00:
I am using STM32N657 with USBX (MSC device).The function ux_device_stack_initialize() is returning UX_ERROR, and after debugging inside USBX I found that the failure occurs when USBX tries to allocate endpoint transfer buffers. The failing code inside USBX is: #if UX_DEVICE_ENDPOINT_BUFFER_OWNER == 0 /* Obtain some memory. */ endpoints_pool -> ux_slave_endpoint_transfer_request.ux_slave_transfer_request_data_pointer = _ux_utility_memory_allocate(UX_NO_ALIGN, UX_CACHE_SAFE_MEMORY, UX_SLAVE_REQUEST_DATA_MAX_LENGTH); /* Ensure we could allocate memory. */ if (endpoints_pool -> ux_slave_endpoint_transfer_request.ux_slave_transfer_request_data_pointer == UX_NULL) { status = UX_MEMORY_INSUFFICIENT; //0x12 break; } #endif So the device stack initialize fails because of UX_MEMORY_INSUFFICIENT. My current USBX memory setup: #define UX_APP_MEM_POOL_SIZE (128 * 1024) // 128 KB total pool#define USBX_DEVICE_MEMORY_STACK_SIZE (5 * 1024) // only 5 KB given to USBX I allocate memory f
a F407 developer board in hand, it don't fit to touchGFX project, No OS, think to use DMA rise color data send speed,color data in external sram be to send LCD interface, a lots of trying, lost! DMA poll amd interrupt mode had test!for guiding
Hello,I developed a product,but customer wants that if no touch detected in 10 seconds the device will go in home page. I believe that the only way is to manage STM32TouchController.cpp in the point I have higlighted Is it the best way ?Thankyou for your patience.
Hi, We are planning to use PSRAM chip apmemory (APS12808L-3OBM) with STM32U575QII6. Please check pin assignment from STM32 to PSRAM chip And also please share the schematic and layout guidelines for STM32U575QII6 OCTASPI to PSRAM chip integration. And general layout guidelines. Thanks.
I'm using an STM32H725 to communicate with an i2c sensor. I'm using the I2C4 bus with the HAL DMA functions. I also enabled the BDMA channels for the rx and tx and respective interrupts. The problem is that the complete rx/tx callbacks are not triggered. I found that this could be related to the problem described here: https://st.my.site.com/community/s/article/FAQ-DMA-is-not-working-on-STM32H7-devicesAny solutions to this problem?
i use STM32N6570-DK to do a simple project but i cannot get any useful info via printf() on SWVITM data console. (1) I add some code in systemcall.c for printf() on SWVITM data console or UART1 via a "define" in my main.c. (AS many professionals suggested on the net) Now i can get info correctly by using uart but not the SWVITM. (2) I also choose SWD under DEBUG in .ioc config. Three wires are used. SWO is populated.(2) when i use SWV ITM data console, the display is just messy symbols. AI told me that it is either due to the wrong Baud rate or wrong encoding. The default is UTF-8. I tried different Baud rates and coding standards. No one works. The same messy display (3) I have watched a few youtube clips and followed their methods. No one works either. Has anyone got the correct display of printf () in SWV ITM data console ON THIS STM32N6570-DK?Thanks a lot in advance!
Now I want to know whether the STM32C011J6Px has a Low-Power Timer (LPTIM).Currently, we are planning to use the STM32C011F6P6 MCU in STOP Mode 2. Since we do not have any external pin interrupt available as a wakeup source, we are planning to use the LPTIM to wake up the system every 1 ms, read one analog value, and then go back to deep sleep again.I checked the datasheet and found the following list of timers for this series. Can you please confirm whether this is correct, or let me know if I am missing anything?TIM1 – Advanced-control 16-bitTIM3 – General-purpose 16-bitTIM14 – General-purpose 16-bitTIM16 – General-purpose 16-bitTIM17 – General-purpose 16-bitIWDG – Independent WatchdogWWDG – Window WatchdogSysTick – System Timer
Hi, I am using STM32H743ZI Nucleo 144 board for one of my application. As per the observations I got the utilization factor with STM32H743 is 35% where as with STM32H752 it was 60%. We have not initialized any crypto or secure features on STM32H753 but still i can see drastic change in the utilization factor. Have you observed this before? Any suggestions to check?
I want to stop generating a PWM signal after 22 clock edges. It seems like the TIMx_RCR register (repetition counter register) should work for this. My code started from the CubeMX generated code but I have had to remove a lot of it for performance reasons. I am running an STM32H523 with a SYSCLK of 250MHz. The PWM is about 650 KHz so I need to disable the output about 33 us after I start it. That timing is a little tight to do with an interrupt counting down from 22 to zero; however, that seems to be exactly what the TIMx_RCR register does in hardware. My current code uses the HAL_TIM_PWM_PulseFinishedCallback() function but it seems that it is being called for every pulse, not every 22 pulses. Does anyone have some pointers or code examples for how to setup TIM1 on an STM32H523? I am using STM32CubeIDE v 1.19.0 (because 2.0.0 broke my build).
Hi,In STM32H742xI/G datasheet (DS12110 Rev 8), the SRAM3 memory block is not specified in the "Table 7. Flash memory and SRAM memory mapping" but I can see the availability of the SRAM3 in the generated .map file.Can someone please confirm, it is typo mistake in datasheet or really not available for STM32H742xI/G? Thanks
Hi We are using an STM32U073CCT6 on a battery-powered board. We need to put the processor in low-power mode to increase battery life. The current in STOP MODE 2 is about 20uA. To address some issue related to the power supply and our hardware, we put the processor in Shutdown Mode and obtained a current of 2uA. How could we reduce the consumption in STOP2 mode? We have already deinitialized all peripherals before entering stop mode 2. BRGilberto
Actually i tried to upload a custom frimware as per tutorial given in the Lora e5 mini documentation everything is going fine but when it came to changing the RDP level from BB to AA in the post i just changed the level fro BB to AA and clicked apply after changes the module got disconnected and that is the first and last time my board connected to my cube programmer after that i can't connect my lora e5 mini to my cube i tried every method by under reset option and one thing i cannot access the boot0 pin in this board so i cant try this method if any one faced this problem and solved it can you give me solution for this problem
Hi,I’m working on a camera project and I would like to use the MT9M001 sensor if possible.My goal is to capture the camera image with STM32 and display it on a small TFT monitor (for example an ILI9341 or similar).I need a microcontroller board + display combination that:works well with the MT9M001 (parallel DCMI interface, XCLK 20–24 MHz),can use DCMI for the camera and an LCD interface (LTDC or SPI/8080 interface) at the same time without pin conflicts,has existing examples or documentation,and can be brought up within about two weeks.This time I’m in a situation where I cannot afford failures or dead ends, so I’m looking for a proven, reliable combination rather than experimenting with uncertain setups.I first tried the STM32F429I-DISCO1, but the LTDC pins for the onboard LCD conflict with several DCMI pins (PA4, PA6, PC6, etc.), so using its display together with the camera was not possible.(I'm now continuing to use this board only for “camera → PC display”, but not for LCD output
STM32H7S78 Software:TouchGFX Designer + STM32CubeMX + STM32CubeIDEProblems observed:- Screen flickers randomly especially during screen transitions.- UI text disappears or becomes invisible after returning to a screen.- Mixed or corrupted screens — elements from previous screen appear on the next one.- Sometimes partial or outdated frame buffer content is displayed.These issues occur consistently when navigating between screens, I attached video for your reference. TouchGFX Environment:- LTDC enabled, RGB interface, external display 7” TFT- TouchGFX task priority: Normal- TouchGFX task stack size: 4096 bytes- Running under FreeRTOSWhat I have already tried:- I have tested the following but issue still persists:- Increased TouchGFX task stack (4096 → 8192)- Ensured LTDC clocks are correct- Ensured invalidate() is called after UI updatesLooking forward to your further guidance.Best regards,Mehul Rana
Hello there, I'm playing with the NUCLEO-H743ZI2 board and having difficultis with PTP. When TSIE (MACIER is set the interrupt is getting retriggered endlessly. I've tried to clear TSIS by reading both MACISR as well as MACTSSR (TXTSSIS bit set). The manual states this is a way to achieve this, but neither register is cleared. BTW, the alternate way (MACCSRSWCR) semes not being supported altho I've tried that as well. Just at the interrupt entry: macisr = ETH->MACISR; // 0x1000 mactssr = ETH->MACTSSR; // 0x8000 macisr2 = ETH->MACISR; // 0x1000 mactssr2 = ETH->MACTSSR; // 0x8000 macisr3 = ETH->MACISR; // 0x1000 Where am I doing the wrong thing? Thank you for any input.The ST Community moderator has edited the post to comply with the code sharing guidelines. In the future, use the </> button to paste code and linker script content. For more information, see: How to insert source code.
Hi everyone,I’m working with the STM32WB05KZ using the BLE RC Peripheral example from STM32CubeMX.I added a push button on PA1 and an LED on PA0.My goal:Read PA1 button stateTurn ON LED on PA0 when button is pressedSend BLE notification to the central deviceContinuously print PA1 state every 1 second on the serial monitorHere is the code snippet:APP_DBG_MSG("SW1 OK\n"); uint32_t lastPrint = 0; // Print every 1 second if ((HAL_GetTick() - lastPrint) >= 1000) { lastPrint = HAL_GetTick(); uint8_t state = HAL_GPIO_ReadPin(GPIOA, GPIO_PIN_1); APP_DBG_MSG("PA1 State = %d\n", state); } while (1) { // Needed for BLE MX_APPE_Process(); } The output I get is:aci_gap_configure_filter_accept_and_resolving_list command ==>> End BLE_Init function Services and Characteristics creation Success: aci_gatt_srv_add_service command: RC_LR_Periph End of Services and Characteristics creation Success: aci_hal_set_radio_activity_mask command==>> Success: aci_gap_set_adver
HI all i have been working with LTDC to drive an external RGB parallel display . i made it working by placing the framebuffer inside internal RAM . i got output with good update speed. but when i try to incoperate FREERTOS with this project the output is gone . any one encountered such issues like this , any solution for this now? ;)
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.