Join conversations with your peers and ST experts. Explore the full potential of STM32 microcontrollers for your embedded design.
Most recent activity
Hi,I had an issue with UART communication in the SubGHz_Phy_PingPong middleware. The problem is that I can't receive any characters and the callback function never gets called to read the incoming bytes. Also, I figured it out from the ISR routine even the RXNE flag would set randomly. And if I use this function HAL_UART_RxCpltCallback(&huart2); it just keeps calling the callback function and the registered task associated with the callback function even if there are no incoming bytes from UART. Now wondering if there is any configuration in CuebMX or any function to call to receive characters properly and on time. I've checked other libraries for exmaple SigFox AT-Slave and implemented the same code, but didn't work. /* * app_radio.c * */ #include "app_radio.h" extern UART_HandleTypeDef huart2; static volatile uint8_t arr_comPortRxBuff[COM_PORT_BUFF_SIZE]; static volatile uint8_t arr_comPortTxBuff[COM_PORT_BUFF_SIZE]; static void _init_gpio( void ); /** * @bri
Hello,HAL driver for CRYP peripheral of STM32H7RSxx series generates invalid AES GCM TAG.According specs, header should be 0-padded to 16 bytes, but in the function CRYP_GCMCCM_SetHeaderPhase() the HeaderSize field is assumed to be expressed in words.This leads to errors when header is, for example, 5 bytes long (as in TLS handshake). cfr. STM32H7xx series implementation STM32Cube FW_H7RS V1.2.0 Alessandro
Will STM32H743BIT6 support only OTG_HS mode? Will it support normal USB operations by disabling OTG option? If yes which pin will control that functionality?
Hi, 1. In order to calculate the values of pull up & pull down resistor, in which section can we find the impedance information?2. Should we use external crystal for OSC_IN & OSC_OUT pins?3. If we are using USB2.0 FS feature what is the reference?Thanks,
I'm trying to create an ADC project using nucleo-h723zg. I want to measure AC voltage and current (simultaneously). I created electronics with isolation amplifiers, which have, as an output, a differential signal with a common DC voltage. The common DC voltage is set by the manufacturer to be 1.45V.I followed the STM32H723 manual and noticed that the input common voltage (for differential inputs) on the ADC should be around Vref+/2. So I need Vref+ to be 2.9V. So I created that reference voltage regulator on my separate electronics board. I also created a small power-up delay (~1ms) for this Vref+ voltage. 2.9V LDO's ground is connected to Agnd on the nucleo board.I removed R36 from NUCLEO board and connected my new Vref+ source.ADC signal is within 2.9V span (Agnd - Vref+), together with a DC common voltage. Also, I created a start delay for ADC signal as I did for Vref+ voltage (~1ms).In software, I set VREFBUF mode to "external voltage reference".When I start the system (nucleo boar
Hello friends I don't know what to do and I'm going to ask for help, in my project I use SPI and Full-Duplex mode with the following configuration which works perfectly in this mode. My problem is that I need to use Half-Duplex mode because on hardware I have output data from AD7686 connected to the MOSI pin which I need to read using DMA which is triggered by a timer. Here is the configuration which works for me but only in Fuul-Duplex mode. Timer 2 is used to trigger DMA and the CH1 output generates the CNV signal for the AD7686 SET_BIT(SPI2->CR2,SPI_CR2_RXDMAEN);HAL_DMA_Start_IT(&hdma_spi2_rx,(uint32_t)&(SPI2->DR),(uint32_t)U_RX_buf,U_RX_BUF_SIZE);__HAL_SPI_ENABLE(&hspi2);HAL_DMA_Start(&hdma_tim2_ch1,(uint32_t)&tx_buffer,(uint32_t)&(SPI2->DR),1);HAL_TIM_PWM_Start(&htim2,TIM_CHANNEL_1);__HAL_TIM_ENABLE_DMA(&htim2,TIM_DMA_CC1);
Hi!I'm working on a project with an STM32 microcontroller and need to set up a way to update the firmware remotely. The device will be installed in remote locations so I won’t have physical access once it's deployed.What’s the best way to approach this on STM32?Any tips or examples would be really helpful.Thanks!
Software: STM32CubeIDE v1.18.0, STM32CubeMX v6.14.0, STM32CubeProgrammer v2.17.0Hardware: NUCLEO-WB09KE Hello,I am trying to observe Bluetooth functionality on a NUCLEO-WB09KE board. I have run the p2p_server example for the board unaltered, and it works perfectly. The device is discoverable using a Bluetooth scanner on my phone. However, when I try to copy the .ioc settings and BLE configuration to a custom project (no changes have been made to the .ioc file), it is no longer discoverable. Even when I copy and paste the .ioc file and create the new project from it, it still is not discoverable. I have debugged to verify that I am not ending up in an error handler, and I am not. APPE_Process is running. The only difference is that I am creating a new project and trying as opposed to copying the example from ST. I want to be able to observe BLE functionality in a custom project. Any help here would be appreciated!Matt H.
Hi, I'm using the ADC1 of the STM32H563 and I'd like to configure an offset (64) for all 12 of my analog channels. I'm using GPDMA1 to obtain an array of 1200 values at 100 kHz. When I configure the offset (before starting the conversion), I don't see the offset subtraction : Here is my configuration: Can you help me please? Ghislain
Hi everyone,I'm working on a BLE application based on the Heart Rate Sensor sample. I have two boards:STM32WB55 Nucleo boardSTM32WB5MM-DK (Discovery kit with WB5MM module)On the STM32WB55, everything works fine — after BLE connection, the current consumption stays below 1 mA, as expected.However, when I run the same application on the STM32WB5MM-DK, I observe a much higher power consumption — around 10 mA after the BLE is connected.Both builds use the same project settings, and I've made sure the low power modes are enabled properly in the application.Is there something specific to the STM32WB5MM module or Discovery board that could be causing this increased power usage?Things I already checked:Same BLE connection parametersSleep/low-power modes enabledNo extra peripherals manually activatedSame firmware version on both boardsAny ideas on what might be causing this difference or what else I should look into?
Hello, I’m currently working with the Nucleo-767ZI board and attempting to connect it to an HTTPS client to send raw sensor data to my Google Trust-based database. However, I’ve been facing issues during the TLS handshake, and neither read nor write operations are functioning correctly. The setup involves using DHCP along with LWIP, mbedTLS, RTC, and SNTP. Despite checking various possible causes—including checksum errors and other protocol-related configurations—the problem persists. I’ve already generated and included the required CA certificates (including both intermediate and root certificates), but the issue remains unresolved. Could you please guide me on any possible solutions or processes that might help me achieve the desired outcome? Best regards,Thumula Bhargav
Hi I have a simple question about DFSDM configuration. I want to apply sinc5 with 32 samples length and therefore get 32 times decimation. Btw, I use internal ADC1/ADC2 in dual mode. STM32H725.Thus, for a given ADC frequency F I expect to get decimated frequency Fd = F/32. Here I assume that FOSR = 32 and IOSR = 1. To my opinion there should be no dependency of sinc order X.But I see quite different results. To be more accurate, I use one channel/filter block with FOSR = 1, and another one with a combination of FOSR and X to be investigated. I compared decimated frequencies of the filters and experimentally got the following relation between F and Fd (i.e. input frequency and decimated frequency):Fd = F/((FOSR+1)*X+0.85) for all FOSR > 1. If FOSR = 1, the input frequency seems to be unchanged.Just to stress: I expected Fd = F/FOSR. Perhaps, Fd = F/(FOSR+1). But why is it multiplied by X and got additional 0.85?
Hi guys, I'm trying to implement a sd card interface for the STM32U5 series using SDMMC1 interface. Since there is no native FATFS support over CubeMX, I guess, I started to use the generic fat file module from elm-chan.Basic configuration:1. SDMMC1 in SD 4 bits wide bus mode, clock divider 4, power safe for clock enabled, no hardware control, no external transceiver, SDMMC1 global interrupt enabled, gpios pullup all enabled despite of clk2. Modified diskio.c see code exampleThe interface works and I can also kind of work with fatFS, f_mount, f_open works basiclly, but sometimes I got a FR_DISK_ERR. On my scope I can see that the SD clock is always on when the error occures. So I think there is an issue with the low level driver level or better say somethimg is going on with the diskio layer. Please see the attached pictures of working f_mount and f_open and the f_open where the clock doesn't stop.I'm using FreeRTOS and I have a dedicated SD_Card Task.My modified diskio.c:/*------
Hello,I am new with STM32. We would like to do a current control exactly like on this document :https://www.st.com/resource/en/product_training/STM32G0-Analog-Comparators-COMP.pdfpage 13But we would like to use COMP1 for ZCD and COMP2 for overcurrent.However, it is not clear if it is possible and how to configure the MCU.Anyone can help ?Best regards,Marc
Hi,I am accessing a DRV8873s motor driver (SPI version) on two different NUCLEO boards. My usage is limited to reading data from 2 registries.I got it to work on a NUCLEO-STM32F411RE using SPI2, with the following settings:Motorola format, 8 bits, MSB first, prescaler 32 to get a 1.5625 Mbits/s rate, CPOL = low and CPHA = 2Edge.Now I try to do the same with a NUCLEO-STM32F767ZI and the same code and configuration (apart from the baud rate, set to 1.6875 MHz) don't work anymore.I have tried SPI4 and SPI5 on this board with the same result: the data read by HAL_SPI_TransmitReceive is not correct.Is there a difference in the way STM32F4 and STM32F7 perform SPI communication, or in the electronics?
Hello,I try to decode MP3 files from SD card using I2S and DMA. It works fine with a sampling rate of 48 kHz, but it fails when using 44.1 kHz.Specifically, the MP3Decode() function fails to decode the audio at 44.1 kHz.I have checked the clock configuration and the I2S peripheral settings, but I can’t figure out what causes the failure.(I use STM32F407vgt6)Could you please help me understand what might be wrong or how to properly handle 44.1 kHz decoding in this setup?If someone is interested i can send you the code.Thank you in advance for your support!
I've been trying to set up a timer and DMA to run a synchronous parallel bus onto a GPIO. The timer works great but the DMA keeps failing with a transaction error interrupt and disables the stream. This is on an STM32F413 chip and using TIM2_CH1 as a PWM output and DMA1 Stream 1 connected to TIM2_UP event. The DMA is configured as below: static uint16_t _waveform[2]; _waveform[0] = 0x0555; _waveform[1] = 0x0AAA; LL_DMA_SetChannelSelection(DMA1, LL_DMA_STREAM_1, LL_DMA_CHANNEL_3); LL_DMA_SetDataTransferDirection(DMA1, LL_DMA_STREAM_1, LL_DMA_DIRECTION_MEMORY_TO_PERIPH); LL_DMA_SetStreamPriorityLevel(DMA1, LL_DMA_STREAM_1, LL_DMA_PRIORITY_VERYHIGH); LL_DMA_SetMode(DMA1, LL_DMA_STREAM_1, LL_DMA_MODE_CIRCULAR); LL_DMA_SetPeriphIncMode(DMA1, LL_DMA_STREAM_1, LL_DMA_PERIPH_NOINCREMENT); LL_DMA_SetMemoryIncMode(DMA1, LL_DMA_STREAM_1, LL_DMA_MEMORY_INCREMENT); LL_DMA_SetPeriphSize(DMA1, LL_DMA_STREAM_1, LL_DMA_PDATAALIGN_HALFWORD); LL_DMA_SetMemorySize(DMA1, LL_DMA_STREAM_1, LL_DMA_
Hello,I want to connect my own inveter and motor module, but when I select it in the MC Workbench, I get this error:It is not possible to create a motor control project with the FOC algorithm using the selected hardware. No proper path for motor control signals was found for the following mandatory features: - Phase Voltage GenerationFor more details, please, look at the following log file in your home directory: .st_workbench/connectAlgo.login this log, INFO - --root assets --inverter '~stm32 control board'DEBUG - General: --- Processing start stm32 control boardDEBUG - General: --- Processing completed stm32 control boardDEBUG - CSConnect: ThreeShunt_AmplifiedCurrents TripleADCs NotSupportedDEBUG - CSConnect: ThreeShunt_AmplifiedCurrents DualADCs processing startDEBUG - **** SolutionSet : [['ADC2', 'ADC1'], ['ADC2', 'ADC1'], ['ADC2', 'ADC1']]DEBUG - sharedSignalDict : {'CURRENT_AMPL_U': ['ADC2', 'ADC1'], 'CURRENT_AMPL_V': ['ADC2', 'ADC1'], 'CURRENT_AMPL_W': ['ADC2', 'ADC1']}DEBU
Hi there, We are having some issues with our STM32H7 when the MCU is heated above approximately 55C. This leads to a fault of some form within the STM32 which prevents it from reading an external flash which the code is being run from. This memory is MX66UM1G45GXDI00 being run in memory mapped mode and XIP. We also have external RAM setup on the other XSPI interface, APS256XXN-OBR-BG, with the design being based on the STM32H7S7-DK.The XSPI devices are being run at 1.8V and we have confirmed that all the rails (3.3V, VDD, VCore) are up and stable. Both XSPI devices are being run at 200MHz. We saw a similar forum thread where there was discussion about the SBS Cell Compensation used in the XPI where there was speculation that issues could arise from updating the compensation value during operation. I attempted this fix however the issue still occurs. The symptoms experienced in that thread very closely match the issues we are experiencing. https://community.st.c
When using HAL_SPI_Transmit_DMA with STM32743, must the transmission data buffer and reception data buffer be placed in D1 RAM?Also, is there a way to dynamically allocate D1 RAM? Rather than declaring an array placed in section("D1"), I would like to dynamically allocate it like malloc. Is this possible?
Hi, I have installed MC WorkBench(6.3.2). While Project Generation it gives "STM32CubeMX not found" error. I have already installed STM32CubeMX (6.14.1), also STMCube IDE (1.2.1).Is there any setting that needs to be done?Thanks,Harsh
Hello, New here. I am working with a piece of consumer electronics equipment that uses a STM32F101C8 processor. the customer was doing an update to this unit and in the middle of the update, pulled the USB plug out of his computer bricking the unit. all attempts at using the manufacturers method of updating have failed. I have checked powers and grounds and all voltages are where they should be. I have ordered a ST Link V2 programmer that is due today. I am looking for advice/info On How to get a baseline. How to connect and erase the chip back to a stock setting essentially. reload a basic boot loader. something to attempt to get the chip back to a basic state so i can re-attempt the update process. I have the .BIN file from the MFG if that helps. My thinking is that if i can connect, get in, set up a basic starting point. even something like the blink program would probably reset the chip enough for the manufactures update process through the ST software and
I soldered a new STM32 on the board, it can enter bootloader, but it's under Readout protection(I guess I bought renovated chip), I don't know how to unlock Readout by STM32CubeProgramer, finally, I use STVP and ST-LINK V1 to connect through SWD, and change the option byte, unlock Readout protection.I don't want to use ST-LINK and STVP, because I need to have SWD interface on the PCB(the PCB space room is very limited). I want to use STM32CubeProgramer through USART to set option byte, but I didn't find out how to set option byte if the chip is Readout protected.
Hello,I use EP1 (IN/OUT) for bulk transfer(64 byte) and EP2 (IN) for interrupt transfer(64 byte).I need to use the Vendor-Specific Class for this configuration. Using STM32CubeIDE 1.18.0 to create a usb device, which class shall I use to create this USB configuration. I tried using the Communication Device Class, because it includes EP1(IN/OUT) for bulk transfer andan interrupt transfer endpoint.(primarily for sending notifications back to host)Instead of using interrupt transfer endpoint for sending notifications,I tried modifying this endpoint to send data back to the host when it polls for it.However, the USB device does not seem to respond to the host polling.Is this the correct way to do it?I have also attached my source codethank you very much!!
We have to use 4 RS485 interfaces. The first RS485 interface mapped to UART 5 works fine with DE enabled. But we saw, that the same method of configuration for USART 1 and USART2 does not work properly.The DE signals will be continously high. As so, the receive will not work anyway.All transmitts over the serial interfaces are implemented via DMA. This works fine! Pin configuration for UART 5: (working fine)PC12 (TX), AF 7PD2 (RX), AF 8 PC8 (DE), AF7 (UART5 RTS) Pin configuration for USART 2: (not working)PA2 (TX), AF 7PA3 (RX), AF 7 PA1 (DE), AF7 (USART2 RTS) Pin configuration for USART 1: (not working)PA9 (TX), AF 7PA10 (RX), AF 7 PA12 (DE), AF7 (USART1 RTS) As described in reference manual, all features we use are supported:Table 192. STM32F75xxx and STM32F74xxx USART features; page 1026, in reference manual RM0385 Rev 8
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.