Join conversations with your peers and ST experts. Explore the full potential of STM32 microcontrollers for your embedded design.
Most recent activity
Hello everyone,I'd first like to mention that this project is being developed with support from ST Brasil, which has provided important components to aid in this development.I'm working on firmware for motor control and, being new to this area, I'm looking for guidance on the best way to implement a specific part of the logic. 1. Summary and Context Here is a summary of the hardware and MCU configuration:Hardware: 3 low-side shunts. The signal from the Phase U shunt resistor is shared, acting as a common input for two of the MCU's integrated op-amps.MCU Config:1.1. Timer 1: Configured for Center-Aligned Mode 1. * CH1/CH1N, CH2/CH2N, CH3/CH3N are complementary PWM outputs. * CH4 is used to generate a capture-compare interrupt.1.2. ARR Value: The ARR (Auto-Reload Register) value is 1000.1.3. Interrupt Trigger: Timer 1 CH4 is set to generate a capture-compare interrupt when the CNT (counter) reaches 900.1.4. Modulation Index: For modulation index purposes, the maximum value for
Hello Expert, I am working on an STM32F303VET6 project using the MCSDK. I want to configure TIM16 to generate a 10 ms periodic interrupt . However, I noticed that on this MCU, TIM16 shares its NVIC vector with TIM1 (TIM1_UP_TIM16_IRQHandler), which is already used by MCSDK for motor control.Could you please advise:Can I safely use TIM16 for my 10 ms task while TIM1 is used by MCSDK?If yes, what is the recommended way to handle the shared interrupt? Are there any potential conflicts or timing issues I should be aware of?If the solution could be illustrated with an example, it would make me so happy. In MCSDK- 6.41 , #define TIMx_UP_M1_IRQHandler TIM1_UP_TIM16_IRQHandlervoid TIMx_UP_M1_IRQHandler(void){/* USER CODE BEGIN TIMx_UP_M1_IRQn 0 *//* USER CODE END TIMx_UP_M1_IRQn 0 */LL_TIM_ClearFlag_UPDATE(TIM1);R3_2_TIMx_UP_IRQHandler(&PWM_Handle_M1);TSK_DualDriveFIFOUpdate(M1);/* USER CODE BEGIN TIMx_UP_M1_IRQn 1 *//* USER CODE END TIMx_UP_M1_IRQn 1 */}
Hello,I am learning bare metal programming for STM32F446RE and am trying to write a simple transmit driver for USART2. I managed to do it but my only problem is when I use HSI 16Mhz clock speed (or anything lower) I get a weird first character. When I use a higher clock speed it works fine (using another clock source). Does anyone know the reason for that?Thank you void USART_init(){ RCC->APB1ENR|=(1<<17); USART2->CR1&=~(1<<12); USART2->CR1&=~(1<<10); USART2->CR1&=~(1<<15); USART2->CR1|=(1<<13); // Baud Rate of 115200 and Clock of 16Mhz USART2->BRR=(8<<4 | 11); USART2->CR1|=(1<<3); USART2->CR1|=(1<<2); char g[15]; sprintf(g,"Hello\r\n"); for(int i=0;i<strlen(g);i++){ while(!(USART2->SR & (1<<7))); USART2->DR=g[i]; } while(!(USART2->SR & (1<<6)));
Dear STM experts: I am using the STM32G473RET6 chip for classic mode communication debugging in FDCAN, but there is a phenomenon where I cannot send information. In FDCAN-PSR, I can see an error of LEC being 5. After removing the CAN chip (SN65HVD230, R pin floating), an error of LECt being 2 appears. I am preparing to replace it with SN65HVD232,Is there any STM with similar routines to refer to? If so, where can I find it? Thanks. Best regards!
We have a batch of custom boards using the STM32H725IGK3 and have experienced several failures getting started with them as the SWD interface appears to be fried. Initially we thought just bad luck with the first couple (inexperienced engineers or ?) but the most recent unit failed after a few successful programming and debugging sessions. Do these processors need special handling or design considerations ? Our debug header follows previous designs, with Vcc, GND, nRST, SWDIO, SWCLK provided. nRST is gated with a couple other inputs to the MCU while SWDIO and SWCLK just have 100R series resistors to protect possible voltage conflict. So far just default 3v3 supply.When the boards were working, SWDIO showed Vcc while SWCLK showed 0V before any connections (expected based on internal pullups) while now the pins show about 0.8V until the STLINK/V2 is connected (upon which its pullup/downs take over). The STLINK pod has been tested and working on a NUCLEO_H723.It looks like we'll
I have an STM32L4R5ZI-P on a custom PCB. When designing the PCB I did not think far ahead enough and do my due diligence when it came to assigning and wiring pins on the STM32 in order to flash it. My design incorporates USB D connected to my PCB which supplies power, and such, along with connections to USB_DM and USB_DP on my STM32. I did not wire BOOT0 or NRST. After looking online a bit, I heard that I must pull BOOT0 high and NRST low, allowing the STM32 to enter boot mode and then I can flash my STM32 via the DM and DP pins (using the CubeIDE and CubeProgrammer, etc.). I was just planning to jump BOOT0 to 3.3V and NRST to GND and then use my DM and DP pins on the USB to program is somehow using my PC. Am I thinking about this correctly? Is there an easier way to flash my virgin STM32 on my custom PCB? I do have a NUCLEO evaluation board for my specific STM32L4, which I have programmed and ran code on already. I was wondering if I can utilize the ST-LINK that is on the NUCLEO
Testing a board with STM32U5A5. VDD is 3.3VI have configured one GPIO as input with an external pullup to 3.3V through a 470k ohm resistor.The input reads high, but when I measure the input with a scope, I read 2.2V on the input, which is below 0.7VDD which is guaranteed as V_IH, but above 0.5VDD+0.2 which is specified by design as V_IH.Is 470k ohm too high of a pullup resistance?
Hello ST Community teamThe pin F11 on the TFBGA216 figure (figure 4 of the AN4660) should be VDD and not VSS according to the products datasheets (for the STM32F469N and STM32F769Nx6). That should be rectified on the next doc revision. Best Regards.II
Hi,I'm developing a SW project in a WINSTAR display (MCU STM32F750) and using the STM SW (TouchGFX Designer, STM32CubeIDE and STM32CubeProgrammer).Until now, I design different screens and some parameters are saved and managed by means of the Model.cpp & Model.hpp.But now I need to save some values in the non-volatile memory because I need the screen starts with specific values stored.What I need to configure and add in the code (and where) to enable the writing and reading in non-volatile memory?Thanks in advance for your time :)Josep
I have been working with sensorless BLDC motor control using NUCLEO-U575ZI-Q + NUCLEO-IHM08M1. When I work with Motor Control Workbench I see this warning "IWConnect: BEMFSensingADC BEMF_V is not connected to any matching input (ADC[0-9]*)_IN(?!N)" Can anyone explain this? Is there any physical wiring needed?
I am trying to apply this configuration to my STM32H757 MCU where I am making a development board. here few things confuses me. 1. I have selected this configuration for better efficiency + noise performance. guide me if I am wrong2. What is the VDD External it seems like another input other than VDD.
The STM32CubeG4 package comes with CMSIS v5.6 (https://github.com/STMicroelectronics/STM32CubeG4/tree/master/Drivers/CMSIS) which I think was released in July 2019.Is it necessary to use this version or can I upgrade it to a later release? Currently v6.1 is the latest CMSIS release.
Section 6.1 of AN5056 (for X-CUBE-SBSFU) states that the projects are delivered with the highest level of compiler optimizations turned on for size aspects.If the Optimization Level was set to 'None', then how much larger is the generated code expected to grow for the mapped regions (SE, SBSFU, etc.) excluding the image regions? (% increase in general)Which of the regions will be impacted the most?Update: To aid debug via IAR EWARM, I prefer to develop without any optimizations enabled, understanding that the code output size will be larger. I have no issues if the mappings are allowed to be adjusted to accommodate the larger code outputs.
Hi all, I'm using the STM32F746ZG Nucleo (CubeF7 LwIP HTTP Server Netconn RTOS example). I start my app when the netif gets a valid IPv4 using netif_set_status_callback (LWIP_NETIF_STATUS_CALLBACK=1) and then bind a UDP socket on the assigned IP. Calling getaddrinfo with service “0” (ephemeral) returns EAI_SERVICE (201): “udp: listen: getaddrinfo: <ip>:0 (error 201)”. What’s the recommended POSIX/LwIP way to bind a UDP socket with an ephemeral port on STM32—should I skip getaddrinfo(…, “0”) and bind with sockaddr.sin_port=0 directly? Also, is starting sockets from the netif status callback (after DHCP assigned IP) the correct timing on F7?
Hello everyone,I am working with an ST M 32 U 585 V I T micro controller and I would like to use an SD card for file read/write operations using Azure File X.I have enabled Thread x and File X middle ware in S T M 32 Cube IDE (Cube M X), but I am not completely sure about the hardware connections, Cube M X configuration, and code implementation for SD M M C with File X.
Hi Everybody1) There are some technical o specific reasons, that I was not able to find in the various documentations, to use external SMPS for VDDCORE insted of the internal one ?2) Working on NUCLEO-N675X0-Q, to configure various bridge for internal SMPS, documentation report to remove R103.But if this, VDDA1V8 is missing and board doesn't work.I remove and install all bridge as reported in the documentation (UM3417) , just I left R103 ON, only in this way the board work.RegardsDanilo
Hi All,I'm currently using an STM32WB5MMG on my project and I'm struggling to reach the expected power consumption.Please note one known error on the PCB: the RF_OUT and ANT_IN pins, which should be connected to GND according to the datasheet/guidelines, were inadvertently left unconnected. These pins are currently inaccessible for rework.Anyway, I'm trying with all the examples available for this MCU, and I have read all the conversations about this MCU and the Low Power modes multiple times with no success.I have tested the PCB with the HeartRateFreeRTOS example and with the PWR_STOP2_RTC example, but again, no luck.The current is always around 500 μA.I have already tried to desolder all the sensors from the PCB to be sure that the extra consumption doesn't come from one of them, but no luck.I have also deactivated all debug functionality while testing for power consumption, and I have tested the PCB with the debugger disconnected, so it is not related to this.I also tried to initial
Hi everyone! hope you can help me. I have an issue on the STM32H7A3ZIT6.I already used the BKPRAM on other project, like the STM32H753 and I had no issue, work perfectly.So I don't understand why it is not OK, here below is what I do to test the BKPRAM : (I work on IAR Workbench)__HAL_RCC_BKPRAM_CLK_ENABLE(); // unlock backup domain HAL_PWR_EnableBkUpAccess(); // enable the backup SRAM if (HAL_OK != HAL_PWREx_EnableBkUpReg()) { Error_Handler(); } /* I tried with MPU config enable and disable also, I tried also with Cache enable or Cache disable. same issue. */ //MPU_RegionConfig(); // Test read and write to backup SRAM uint32_t magicNumber = 0xAA55; uint32_t *pBackupSram = (uint32_t *)(0x38800000); //If I look at the value of the pBackupSram I can see on the watch "unavailable" so I know it will hard fault... // when I execute the line below I got an hardfault. *pBackupSram = magicNumber; if (magicNumber != *pBackupSram) { Error_Handler(); } *pBackupSram = 0; if (0 != *pBac
Hello , I am trying to calculate a MAC using `cmox_mac_compute()` from this lib on an STM32L562 in the Secure code.The code looks like this :auto r = cmox_initialize(NULL); /*default template with stm32l5xx.h included*/ auto ret = cmox_mac_compute(CMOX_CMAC_AES_ALGO, in, in_s, key, 16, NULL, 0, out, 16, NULL);This exact code works when run on non secure mode if everything is set as non secure in stm32CubeMX.I tried to debug the library to understand what was wrong and found out that the issue comes from the fact that cmox_mac_compute tries to access my crc peripheral from 0x40023000 instead of 0x50023000 (CRC non secure and secure addresses).I am also almost sure that my GTZ and SAU are correctly set because i was able to write at address 0x50023000 and not at 0x40023000 when running from Secure code.I also have :CRC_BASE_S => 0x50023000 CRC_BASE_NS => 0x40023000 CRC_BASE => 0x50023000So this looks fine. I also tried to forcefuly set CRC_BASE_NS to
Heyho,management asked me about a project involving 1 or 2 audio input channels at 32-bit / 200 kHz and - here's my knowledge almost zero - some "heavy & intense" DSP / FFT algorithms for real-time signal evaluation.We're already using the H723 .. H735 family, so we have the hardware experience, but no idea about the DSP capabilities of these MCUs, and the numbers in e.g. AN4841 (CMSIS DSP) don't tell us too much - and probably also not our DSP software guys, who are working on PC only for 20 years now (which is kinda sad, when I started working, PCs and interfaces were so slow, that our hardware had lots of dedicated DSPs, so we also had the know-how).Due to size constraints, we will also probably be limited to the internal flash (I guess no problem), and it would be easier to live with the internal SRAM of about 500 kB.So, dear community, what's your experience with these H7s and its computational power ? :DThanks in advance!
Greetings! So, I used the OpenBootloader project, and then flashed a GPIO_IOToggle firmware in other area of the flash, close to the example in the video Introduction to Open Bootloader, Part 3: Loading an Application. In that example the CubeProgrammer flashes through the DFU and check "run after programming". When I unplug the board and turn it back on, the OpenBootloader starts (as expected). What I want to do is, as soon as I flash the application, when I turn off the board and turn it on again, the application starts to run and not the bootloader, OR, it starts the bootloader, it checks if there's any application installed, and if yes, it jumps to the application immediately. Any clue on how to do that?Thank you!
Hello everyone.How do I update the firmware via VCP on STM32F407VET6? Is it possible to do so? If so, what needs to be changed and added? Do I have to recreate the bootloader?I don't know where to start here.Thank you :)
Hi,I'm using an STM32H750XBH6 with an ISSI IS42S32400J-6BL, but the read/write operations keep failing.I’ve tried setting the CLK to 166 MHz / 120 MHz / 100 MHz / 50 MHz, but it still fails.When measuring with an oscilloscope, I found that the FMC_Dx pins of the STM32H750XBH6 show an extra waveform in addition to the normal data waveform during output.I disconnected the 22 Ω series resistors, but the same waveform can still be observed on the MCU’s FMC_Dx pins.Does anyone know what might be causing this? pic 1
Are the X-NUCLEO-IHM08M1 motor driver board and the NUCLEO-H533RE development board compatible?I noticed "STM32 Development Boards Portfolio", but I’d like to confirm compatibility before proceeding X-NUCLEO-IHM08M1 | Product - STMicroelectronicsNUCLEO-H533RE | Product - STMicroelectronicsThank you
Hi,Could you please let me know if you’re planning to provide an example of a USB Audio device based on USBX in the near future?By the way, the ST X-CUBE-AUDIO package is based on TinyUSB that is not officially supported. I’m wondering whether it’s feasible to implement a USB microphone using USBX instead.Regards.
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.