Join conversations with your peers and ST experts. Explore the full potential of STM32 microcontrollers for your embedded design.
Most recent activity
Hey STM community,I have a G431RB & IHM16M1 however whenever i try to run the motor pilot, i cant seem to connect to the board. I have made sure all the necessary link drivers are installed, i have made the baudrate 115200, 8bit all to match up with the software but i consistently get no connection. My cube ide, motor workbench and motor pilot are all up to date and i have the associated packages( the G4 library v1.61) installed in cube-mx.Thanks
Hello, I am using the STM32F407VGT6 microcontroller for a project involving GPIO interrupts, but the interrupt is not triggering reliably. Despite configuring the interrupt settings, it occasionally works, but other times it misses the edge completely.Here’s my setup:GPIO Pin: PA0Interrupt Mode: Rising edgeInterrupt Priority: Low (priority 5)NVIC Configuration: Enabled for this pinDebouncing: Software debouncing appliedI’ve attached the STM32F407VGT6 Datasheet for this model if that helps in troubleshooting.Has anyone experienced similar issues with the STM32F407VGT6? Any tips on debugging or configuration would be appreciated.Thanks in advance for your help!
Hello,I am experiencing an issue with LwIP on the NUCLEO-F746ZH board. I am using STM32CubeIDE 1.14.0 with the STM32F7 firmware package v1.17.3 (I also tried v1.17.0 and the latest CubeIDE version, but the errors still persist).In the screenshots I shared, you can see my LWIP, ETH, FreeRTOS, and Cortex MPU settings. With these settings, I expect to be able to ping without adding any extra code, but unfortunately I encounter problems in the lwip_init function.This issue has been mentioned before in the forums: when I configure the MPU as suggested (example file attached), the first configASSERT hits a breakpoint. If I try without any MPU configuration, it stops at the second configASSERT (as shown in the screenshot).I tried many approaches but couldn’t solve it. Without RTOS, there is no problem and ping works fine, but with RTOS I face an issue related to semaphores. At this point, I am not sure what I am missing. I also attached my FreeRTOSConfig file.Interestingly, the LWIP_HTTP_Serv
I am developping STM32F469 with TouchGFX to display with LTDC in RGB888. I can display an image in the internal SRAM. However, when trying with SDRAM, the screen truns black, and the debugger can only read 0s. But when I tried with the framebuffer reader offered by ST, I can still read the image which seems to be already loaded into the SDRAM. Is there any suggestions to figure out the issue to give a final solution?
Hi @Amel NASRI ,Does STM32H755xI support OTP (One Time Programmable) memory in it's flash like STM32BH7B3x?Muthukrishnan
Hi everyone,My evaluaiton bord is STVAL-SPIN3201 and I am using Motor Control Workbench 6.4.1.First of all I work with Motor Control Workbench , after work CubeMx program and generate code and finally open CubeIde but I did not see Core folder. I dont know how can write my motor control program in main().c .When open "C:\Users\eem_o\.st_workbench\projects\STEVAL_SPIN3201 " folder "Inc" and "Src" folder in this area.When try to transfer at STM32CubeIde folder "Inc" and "Src" folders, given to many error.How can solve this issue?
This is a line of code i don't understand, /* Force the TIMx prescaler with immediate access (gen update event) */ LL_TIM_SetPrescaler(TIMx, pHandle->HALLMaxRatio); LL_TIM_GenerateEvent_UPDATE(TIMx);The code is part of the __weak void HALL_Init(HALL_Handle_t *pHandle) functionwhen the second line of code is executed does it mean that i get the interrupt timer over flow interrupt immediately. Please clarify. The TIM4 is configured in XOR / Hall mode.
Hi, On the STM32F303, the TIM1 timer is running in input capture, slave mode – reset, with the trigger source set to TI1FP1 (CH1 direct rising, CH2 indirect falling) to record the incoming stream. It operates with DMA in circular mode using two buffers (separately storing the duration of the high and low states). I want to further develop the project, and I have two use cases: 1) I want to forward this signal unchanged with minimal (or no) delay using TIM15. 2) In the DMA interrupts TIM_DMACaptureHalfCplt and TIM_DMACaptureCplt, I want to modify the original waveform and then output it through TIM15. In general, I want the processor to act like a “repeater.”Any hints would be greatly appreciated — maybe the solution is trivial, but advanced timers are still a bit of a mystery to me ;) regards
Hi everyone,I’m working on an STM32U3 project and ran into an issue where flash erase was failing with error code 0x00000080 on page erase, even though the option bytes and addresses appeared correct.After debugging, I found that explicitly setting the voltage scaling to PWR_REGULATOR_VOLTAGE_SCALE1 before flash erase resolved the issue. The working sequence I use is: HAL_FLASH_Unlock(); HAL_StatusTypeDef status = HAL_PWREx_ControlVoltageScaling(PWR_REGULATOR_VOLTAGE_SCALE1); if(status != HAL_OK) { return status; } EraseInitStruct.TypeErase = FLASH_TYPEERASE_PAGES; EraseInitStruct.Banks = BankNumber; EraseInitStruct.Page = FirstPage; EraseInitStruct.NbPages = NbOfPages; if (HAL_FLASHEx_Erase(&EraseInitStruct, &PageError) != HAL_OK) { return status; }This step wasn’t required on my Nucleo board but was essential on my custom hardware.My questions now are:Is it safe and recommended to keep the voltage scaling at SCALE1 permanently after flash erase, or sh
When using the version v2024.08.14-nightly described in the Wiki, configuring and outputting with the ZAP tool does not include GeneralCommissioning inside DispatchSingleClusterCommand in IMClusterCommandHandler.cpp. This causes a build error.Could you please explain the cause?
Hello, What is the best way to drive a 4x4 keypad, taking in account power consumption and MCU life expectancy? Option 1: Continuous scan of columns and read rows.Option 2: Like option 1, but including delays (0.01 s) to reduce MCU stress.Option 3: Leave all columns to high or low level and use an EXTI for every row. In the EXTI function, scan columns one only time to see the pressed key. Or doesn't matter and can use any option?. Looking technical data, the main thing to have in account for power consumption is the clock frequency. Now using nucleo-F446RE, and when the project is finished, I will migrate to other MCU Thanks
HeyI work with the eval-board Nucleo h743ZI. I implemented sine wave playback using the DAC and DMA, and everything worked very well.After that, I designed my own board with the same microcontroller and added an external 25 MHz crystal.I couldn’t get the 25 MHz clock to work.This is the cofiguration:I try to debug my code and I saw that I get error at SystemClock_Config:...if (HAL_RCC_OscConfig(&RCC_OscInitStruct) != HAL_OK){Error_Handler();} here: I switched to using the internal clock of the MCU to work with HSI.The code runs normally, but I don’t see any signal at the DAC output.This is the configuration:Thank you very much
Hello,I'm using STM32G0B1RCT6 use cubemx generate cdc project works okbut when I edit endpoint to 0x03 it Not working properly USB packet capture endpoint 0x03 returns stall ny Idea about this issue and how to fix it please?Thanks.
Good morning,I am working with the MB1389E board and STM32CUBEIDE. I need to put it into low power mode for a few minutes and then measure and transmit data when it wakes up.I tried the LPTIM_Timeout example (included in the STM32Cube MCU Package examples for STM32WL Series), which should make an LED flash at the end of the time set in the timer, but I can't get it to work. Does anyone have any suggestions, information or working code?Thank you,Umberto
Dear ST Community, I'm working on a Zigbee IoT project where I need to configure my STM32WB55RG Nucleo board as a Zigbee End Device that joins an external coordinator (Raspberry Pi + CC2531 running Zigbee2MQTT). I'm having trouble properly flashing the M0+ core with the Zigbee RFD firmware. What I've Done So Far:Installed STM32CubeIDE 1.13.0 and STM32CubeProgrammer 2.13.0 on my Windows 11 laptopLocated the Zigbee RFD firmware at:STM32Cube_FW_WB_V1.16.0/Projects/STM32_Copro_Wireless_Binaries/Zigbee/stm32wb5x_Zigbee_RFD_fw.binConnected my Nucleo board via the ST-LINK USB port (CN4)Opened STM32CubeProgrammer and connected successfully to my board (STM32WB55RC) My Specific Issue:When I connect in STM32CubeProgrammer, I see the "MCU Core" section but I'm unsure how to correctly select the M0+ core (CPU2) for flashing. The interface shows: Cortex-M4 (CPU1)Cortex-M0+ (CPU2) Questions:What is the exact procedure to select and flash the M0+ core (CPU2) in STM32Cub
I am using the 2 stm32wb55rev6 controller and i have uploaded the latest version of the FUS and the stack ble full firmware.I am not able to connect to the client by using the server.
Hello we try to use the backup sram on 0x3880 0000 .We have build the software :#define BKPSRAM_BASE 0x38800000UL #define BKPSRAM_SIZE 0x1000UL typedef enum { BkpSram_Init = 0 , BkpSram_Wait = 1 , BkpSram_WriteStr = 2 , BkpSram_ReadStr = 3 , BkpSram_Read8 = 4 , BkpSram_Write8 = 5 , BkpSram_Read16 = 6 , BkpSram_Write16 = 7 , BkpSram_Read32 = 8 , BkpSram_Write32 = 9 , BkpSram_Reset = 10 , }En_BackupSramCmd; typedef struct { uint32_t counter; float temperature; char name[16]; } Bkp_StrTest; Bkp_StrTest BkpStr_Test = { 42, 25.5f, "STM32H735" }; Bkp_StrTest BkpStr_Read = { 0}; typedef struct { En_BackupSramCmd Cmd; Bkp_StrTest *StrTest; Bkp_StrTest *StrRead; }Str_BackupTest; Str_BackupTest BackupTest; void BackupSRAM_Test(void) { Str_BackupTest* this =&BackupTest; switch(this->Cmd) { default: HAL_PWR_EnableBkUpAccess(); HAL_PWREx_EnableBkUpReg(); while ((PWR->CR2 & PWR_CR2_BRRDY) == 0) {} this->StrTest = &BkpStr_Test; this->StrRead = &
Hi,I'm working on a design containing a STM32U535. I need to connect it to a SDHC interface (µSDHC connector). The STM32U5 documentation talks about a SDMMC1_CKIN signal. It is not clear to me if this signal is always required or not. I think the documentation is not clear on this.I do not use external transceiver and I don't need UHS-1 speed (1.8V mode).Is there a reference design with a STM32U5 and a (µ)SDHC connector ? I have not been able to find one.Nicolas
Howdy;I have a li'l stm32u031, with a pushbutton attached to PA0. This MCU is clocked with no external oscillators. I've configured the button/pin to work with Timer2/Channel1 in Input Capture mode when the MCU is in run mode, to detect and measure button presses. This works swell. I'd like to be able to put this device into STOP2 mode, and be able to re-awaken it with the button. My understanding is that I'd do this by de-initing it as an alt function pin, and re-initing it for EXTI. At the moment, I'm doing this: // Stop all timer channels HAL_TIM_IC_Stop_IT(&htim2, TIM_CHANNEL_1); HAL_TIM_OC_Stop_IT(&htim2, TIM_CHANNEL_2); HAL_TIM_OC_Stop_IT(&htim2, TIM_CHANNEL_3); // Stop the timer itself HAL_TIM_Base_Stop(&htim2); // Mask any stray interrupts and clear latched flags __HAL_TIM_DISABLE_IT(&htim2, TIM_IT_UPDATE | TIM_IT_CC1 | TIM_IT_CC2 | TIM_IT_CC3 | TIM_IT_CC4); __HAL_TIM_CLEAR_FLAG(&htim2, TIM_FLAG_UPDATE | TIM_FLAG_CC1 | TIM_FLAG_C
I needed a very small humidity sensor, so I made a PCB for the Sensirion SHT45. I interface it with a Nucleo-32 F303K8, and have tried a Nucleo 64 as well. It seems that I'm able to send commands to it, but when I try to read it, I receive only NACKs from the sensor. This behaviour could be because of a busy sensor, but I add enough time in between measurement request and reading that it should not be a problem. I tried a few chips. The first ones I soldered with an iron, then I tried hot air, most recently hot air from bottom of PCB, to shield the chip and especially its PTFE membrane from the heat of the air. I wonder if solder heat could have broken the sensor in a way where it will respond to I2C, but the sensing element might be broken.I use CubeIDE, I2C standard default settings.// Buffer to store RX data uint8_t buffer[6] = {}; // Request High Precision reading - no error if(HAL_I2C_Master_Transmit(&hi2c1, (uint16_t)(0x44 << 1),(uint8_t *)0xFD,1, 1) != HAL_OK){ u
Hello,I'm just a begginer with embedded and STM32 so bare with me please.I was trying to follow a program tutorial to periodically blink an LED using a timer channel in PWM generation mode. I have an STM32 Nucleo h755zi-q board, I set the integrated LED on pin PB0 to it's alternate function which is timer 3 channel 3, I assigned timer 3 to core C7 turned on internal clock as source and set channel 3 to PWM generation. I used different setups but for example 200 Mhz on the clock, prescaler 19999, autoreload 9999, pulse 5000. I left everything else as default and generated the code and only added this line"HAL_TIM_PWM_Start(&htim3, TIM_CHANNEL_3);"right before the infinite loop in the main function. This should make the user LED on pin PB0 blink periodically with 1 Hz frequency I think. But the LED isn't doing anything at all.I'm using CubeIDE obviously and using just a basic timer with interrupt works flawlessly, so where is the mistake?Sorry for low details, I'm currently in a rush
I'm developing camera-related things on the N6, and while perusing the JPEG encoder, I noticed that the datsheet and registers for it seem to indicate it can convert raw RGB (565? 888?) to JPEG. This is alongside Grayscale, YUV, and CMYK. However, in the HAL driver, there only seem to be defines and code around the last three. There are defines and support for Greyscale, YCbCr (which I assume to be YUV from the datasheet? But that is also confusing), and for CMYK. But there is little to no reference at all of the RGB options in the JPEG encoder. Is this functionality not supported? Am I missing something? Is it a bug in the firmware? While I'm on the subject, am I able to pump the YUV420 planar from the DCMIPP into the JPEG Encoder? The datasheet suggests I can but all examples and information I canf ind online suggests I need to convert it to YCbCr first, but I thought they were the same? Thanks for Support
I have two MCU's one from F4 series and another from H7 series, Using F4 MCU for calculation of some data and want configured as I2C master which sends data to the H7 MCU. Where as H7 MCU is configured as slave and which responds to address from first MCU. The communication doesn't work on the first go, but when i manually restart the F4 Master MCU it starts working for some time and send data to H7 correctly but after few mins it stopsi have tried resetting master MCU I2C by checking HAL_I2C_IsDeviceReady but its not working eitherusing HAL_I2C_EnableListen_IT(hi2c); in the start itself for H7 and following enabling after each completion of transactionextern void HAL_I2C_ListenCpltCallback (I2C_HandleTypeDef *hi2c) { HAL_I2C_EnableListen_IT(hi2c); } void HAL_I2C_SlaveTxCpltCallback(I2C_HandleTypeDef *hi2c) { // Re-enable listening after transmission HAL_I2C_EnableListen_IT(hi2c); } void HAL_I2C_ErrorCallback(I2C_HandleTypeDef *hi2c) { HAL_I2C_EnableListen_IT(hi2c);
Hello,Can someone please point me to a template proejct with the AI engine, ethernet, UART and graphics library correctly configured? Also, can we also get FreeRTOS + micro-ROS running on this? Any help would be much appreciated. Best Regards
1.Does the STM32H743VIT6 microcontroller include a HASH peripheral that supports SHA-256 operations?I am planning to implement HMAC-SHA256 verification for my application, but I have not found clear documentation confirming the presence of a compatible HASH peripheral.2.If I implement HMAC-SHA256 purely through software, how much time will it take to compute the hash for 1MB of flash data?I would like to understand the performance implications of a software-based approach compared to using the hardware HASH peripheral.
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.