Join conversations with your peers and ST experts. Explore the full potential of STM32 microcontrollers for your embedded design.
Most recent activity
Hi , I am using multiple ST Evaluation Boards and all worked well . However , in one of the board i am facing issue of UART connection . Board is ST EVAL-CTM012V1A . STMCSDK is 6.3.2, Keil u vision 5 , STM32cube Mx 6.11.1 . Baud rate tried :- 9600,115200,19200,1843200 . . However board is running fine in debug mode . Please help me in solving this issue
Hi!i have managed to port the exisiting example of USBX device printer to the H563 micro and use it.now i'm trying to do the same thing with the USBX HOST printer class.but there are two problems:1) there isn't an example2) if i create a new project and select USBX HOST printer i think there are some missing files in the cube generationfor the device printer class the cube generate app_usbx_device.c app_usbx_device.h ux_device_printer.c and ux_device_printer.h for the Host printer the cude generate only app_usbx_host.c and app_usbx_host.ham i missing something?my cube ide is 1.18.0 release thank you !
Hello All,I am new to embedded systems.I am trying to enable ethernet communication in stm32f746 discovery board.But I am failing to achieve this, sometimes I am able to ping the device and sometimes not.I came across a thread https://community.st.com/t5/stm32-mcus-embedded-software/how-to-make-ethernet-and-lwip-working-on-stm32/m-p/261456 which mentions faults in LWIP and documentation.Even when I am using the example project STM32Cube_FW_F7_V1.17.0\Projects\STM32746G-Discovery\Applications\LwIP\LwIP_HTTP_Server_Netconn_RTOS I am able to ping the device sometimes only.Please guide me accordingly, I am not asking for a complete working project only a healthy documentation and links. Thankyou
Hello all,I'm currently working on bringing up the CMWX1ZZABZ-078 module from Murata. This module integrates an STM32L082 microcontroller connected to an SX1276 via SPI1, RESET, and DIO0–DIO3.The datasheet for the module is available here:https://www.murata.com/en-eu/products/connectivitymodule/lpwa/overview/lineup/type-abz-078I'm using the STM32CubeExpansion_LRWAN_V2.1.0 package (downloaded as i-cube_lrwan.zip) from ST. Specifically, I'm working with the following project path:...\Projects\B_L072Z_LRWAN1\Applications\LoRaWAN\LoRaWAN_End_Node\STM32CubeIDE\cmwx1zzabz_0xxThis project is designed for the B-L072Z-LRWAN1 board, which uses the STM32L072 and interfaces with the SX1276.My goal is to port this project to the STM32L082 and bring up the LoRa module to transmit data from the end node using OTAA.I have the following questions:How can I replace the linker script for STM32L072 with one for STM32L082?Are there official linker files available, or should I manually modify the exist
I am using custom board and MCSDK 6.4.0, I need some clarity on the Application current and the overcurrent protection variablesThe above setting is related to the Max application current.And the over current protection settings in MCSDK is as belowHere it is mentioned as 45A. Now my question is do i need to change this value and how this is related with the 1.6A max application current? I am using FOC to run the motor.
Greetings! Getting back into embedded after a long while. As the title says I am wanting to use STM32H563ZI with openocd, but it is not supported out of the box. I have gone through the readme and it looks like I need to create a specific `target/stm32h5x.cfg` file to use with this board. I just want to get working on command line right now. I am on a Mac. I think I am missing something fundamental and/or gotten tunnel vision.* Is there a template to create a new .cfg for this board somewhere.* What is the usual process to get support for a new board ? Fork below repo, add new file, and submit a PR?* I have looked at the following links but must be missing something. Thanks in advance!https://openocd.org/doc/pdf/openocd.pdfhttps://github.com/STMicroelectronics/OpenOCDhttps://community.st.com/t5/stm32-mcus-products/nucleo-stm32h5-debugging-openocd/td-p/618225
I need to send a single address byte with write bit and read bit.For the write, I'm using HAL_I2C_Master_Transmit_IT(&hi2c4, I2C_ADDRESS, (uint8_t*)i2c_buff, 0)It works perfect, it sends a start, single address with write bit cleared, slave device ACK's and stop works fine.I need the exact same thing, but with the read bit set.I tried:HAL_I2C_Master_Receive_IT(&hi2c4, I2C_ADDRESS, (uint8_t*)i2c_buff, 0)It just sends the start, address, read bit set, slave device ACK's ok, but then MCU doesn't do the stop bit, gets stuck infinitely waiting. I've tried using the LL drivers too, and also played around with disabling AUTOEND and using SOFTEND to try to manually generate start, send addr and then stop, no go, just waits for the I2C_ISR_STOPF flag to be set, which never happens. On the scope, SCL goes high, but SDA stays low.Any ideas? Using STM32U535, I2C4
Can someone please guide me with 8KHz audio, echo cancellation is almost perfect for 16khz audio on stm32u5, but seems problematic at 8KHz, i've tested pass-through (loopback, mic connect to speaker) at 8Khz and it is clear when AEC is disabled, also when pre-processor is disabled and AEC is enabled, it can remove the echo but I need pre-processor for agc, ns related stuff.#ifdef SPX_EC_FS_8000 #define ECHO_BUFF 128U #define NN_MAX 128 #define NN 128 #define FS (uint16_t)8000 #elif defined (SPX_EC_FS_16000) #define ECHO_BUFF 128U #define NN_MAX 128 #define NN 128 #define FS (uint16_t)16000 #elif defined (SPX_EC_FS_32000) #define ECHO_BUFF (32*8) #define NN_MAX (32*8) #define NN (32*8) #define FS (uint16_t)32000 #elif defined (SPX_EC_FS_48000)I've tried to change ECHO_BUFF to 64 as well, but no success so far, maybe this library isn't tested for 8KHz audio, but speexdsp support 8KHz, reason I'm trying to achieve aec at 8KHz is because VOCODER for audio compression supports o
Hey @eBirdman I know this is an old question, but I got into the situation to wonder about this too. After some research through the mystical STM documentation and some educated guesses I compiled this document. It might prevent others from the pain to find information in the STM documentation.STM32H7B0VBT6 Timer Clock Sources TimerAPB BusBase Clock SourceTimer Kernel ClockClock RegisterTIM1APB2rcc_pclk2rcc_timy_ker_ckRCC_APB2ENRTIM8APB2rcc_pclk2rcc_timy_ker_ckRCC_APB2ENRTIM15APB2rcc_pclk2rcc_timy_ker_ckRCC_APB2ENRTIM16APB2rcc_pclk2rcc_timy_ker_ckRCC_APB2ENRTIM17APB2rcc_pclk2rcc_timy_ker_ckRCC_APB2ENRTIM2APB1rcc_pclk1rcc_timx_ker_ckRCC_APB1LENRTIM3APB1rcc_pclk1rcc_timx_ker_ckRCC_APB1LENRTIM4APB1rcc_pclk1rcc_timx_ker_ckRCC_APB1LENRTIM5APB1rcc_pclk1rcc_timx_ker_ckRCC_APB1LENRTIM6APB1rcc_pclk1rcc_timx_ker_ckRCC_APB1LENRTIM7APB1rcc_pclk1rcc_timx_ker_ckRCC_APB1LENRTIM12APB1rcc_pclk1rcc_timx_ker_ckRCC_APB1LENRTIM13APB1rcc_pclk1rcc_timx_ker_ckRCC_APB1LENRTIM14APB1rcc_pclk1rcc_t
i whant to know if the B-CAMS-OMV is compatible with the 32F746GDISCOVERY, NUCLEO-N657X0-Q, and the STM32N6570-DK?because i why didn't I find the specific connector data of the 3 kits regarding the camera,And I want to know this one camera B-CAMS-OMV is good for me for the 3 different kits?
I am trying to run ECDH p384 operation on STM32H753.Using the STM32 Cryptolib 4.5.0, I get the CMOX_ECC_ERR_MEMORY_FAIL error during the operationI increased the stack size to the maximumI was able to run this using mbedTLS + hardware blocks like RNG, CRYP, CRC enabled. And it runs but the time for ECDH P384 is about 200ms (with 480mhs clock). I was hoping to achieve times in the order of tens of milliseconds as described here.What am I missing?https://wiki.st.com/stm32mcu/wiki/Security:STM32H7_Series:_Cryptographic_Library_Performance#tab=STM32H753
I ordered https://www.st.com/en/evaluation-tools/nucleo-n657x0-q.html and it mentions Camera module FPC. But I cannot find any information on which protocol it uses for this camera connection. For example, can I use https://www.st.com/en/evaluation-tools/steval-56g3mai.html#overview with the MIPI-CSI2 protocol? Where could I find more information about the supported camera's for the STM32N6 evaluation board?
Hi, I am working on a project where I have a custom board with STM32L073 MCU and I want to read a color sensor (AS7341) via I2C. This will be a low power application. I will harvest energy via NFC from a smartphone (I am using NTAG I2C plus). I can get a voltage is about 2.8 V and current about 10-14 mA from the harvested energy. This will power up the color sensor and the MCU. I have been trying to operate the MCU at low power but I am unable to do it. I have tried regulating down voltage from a 3.7V 1000 mAh lipo battery to 1.8V and trying to run the MCU to get the color sensor data but I cannot do it. I tried using a logic analyzer to observe the I2C signals. For greater than 3.3V, it works fine, I am able to see the data in uart as well as in the logic analyzer but when it goes below 3.3V it doesn't work. I also tried regulating down to 2.8V from a battery, still doesn't work. I think I am missing something on how to operate the STM32 MCU in low power mode. Please let me know what
Current Situation: I have implemented a bootloader that receives a .hex file and writes the application starting from Sector 2. After successfully jumping to the application, the system runs as expected. The Problem: Once the application is running, if I send a new .hex file, it is not accepted by the bootloader unless I perform a hardware reset. Currently, I can only reset the board manually using the reset button. What I Want: I want a software-controlled reset mechanism. When the application is running and a new .hex file is sent (or an update request is detected), the system should trigger a software reset (NVIC_SystemReset()), switch to the bootloader, and allow the new .hex file to be processed automatically—without requiring a hardware reset.
Hello,I am using a STM32L476RCT which should work up to 85°C.I am receiving unsolicited interrupts when I put my board in an environment at 60°C.I only use usart1 and a few GPIO interrupts, which are working fine. But when the temperature rises, the system gets stuck.Using the debugger, I was able to see that interrupts are occurring and sending the system to default handler. Those interrupts are WWDG_IRQHandler, and UART/USARTX_IRQHandler. Looking at the registers, those interrupts should be disabled. We do not use WWDG.A quick fix is to define a custom handler for the interruptions that I don't want, but it does not explain why those interruptions are occurring.Does anyone has any idea what could go wrong ?Thanks
I am attempting to interface an STM32H723 with an ADXL345 accelerometer. I used CubeMX and generated I2C driver code with 400kHZ clock frequency and error/event interrupts enabled. I have attempted both I2C1 and I2C2, but neither peripheral generates any clock pulses or driving of the SDA pin low. I am using 4.7K pull-up resistor between SDA/SCL and 3.3V. I am attempting to do a 1-byte simple register read of the ADXL345 device from register 0x00, and the ADXL345 device address for read is 0xA7. However, I cannot seem to get I2C1 or I2C2 pins to drive any activity - they just remain pulled high to 3.3V. I am wondering if I am missing something in the initialization code CubMX generated. Cross-referencing with the reference manual, nothing looks out of the ordinary for what I attempted to configure. If anyone could point out anything odd in the init code, I'd greatly appreciate it. Init code:void MX_I2C2_Init(void) { /* USER CODE BEGIN I2C2_Init 0 */ /* USER CODE END I2C2
Hey all,I've spent a fair amount of time trying to make a DTMF tone generator using an STM32F411VE board I got as a gift. The board comes with a CS43L22 DAC chip that can be accessed by the STM32F411 through I2C and I2S. My rationale is as follows:1) Using the reference manual and CS43L22 datasheet, write a simple I2C driver to initialize the DAC, send commands, etc.2) Using the reference manual and CS43L22 datasheet, next write a simple I2S driver to send audio data via DMA to the DAC.3) Use the FPU to calculate samples of the desired DTMF tone and use a circular buffer/DMA to write those samples to the DAC with a frequency of 48 kHz.Seemed simple enough to me, and if I thought that if I followed the two aforementioned documents closely, I should be able to knock it out in a couple of days (I'm still a bit of a beginner with bare-metal programming).That was not the case :) the biggest hurdle I've hit so far involves the CS43L22 DAC. It does not seem to be seeing the same MCLK/SCK/LRCK
HiI just received a STLink-V3SET from www.tme.eu.It does not appear to be a clone in any way.Upon trying to update it with StLinkUpgade 3.16.8 it shows its ST-Link ID but claims that the current firmware is V0J0S0 and at the bottom it says "Unknown firmware type. Don't know how to upgrade." Have I received a faulty device?Best regardsMartin
I am currently working on the STM32H7S78-DK board & after building GPIO demo present Example code from git repository of that STM32 provided, while flashing binary from the STM32 programmer I faced issue it is mentioned belowWhen code is flashed from STMcube programmer it sometimes flashed and sometimes showing error that , core is locked or core is under resetWhen code flashed successfully , I did not get expected result (Ex. LEDs not blinking)Can you please help me to resolve this error, I attached screen shots of errors below
Hello, we use STM32F413RGT6 as slave board communicate through rs485 bus. In application, we drive rts by emulated gpio. We use for update of the board HW uart bootloader. Due to weakness of the HW bootloader we face some problems during update on half duplex uart, because HW bootloader sometimes response sooner, than is complete msg send. Due to it we receive damaged ack, for example 0xb9 instead of correct 0x79. Next challenge was activate uart HW bootloader, because STM logic is, that first activity on any digital bus lead to choose that bus as update bus, so we must rework our application to have stable start until we start to communicate on update uart (rs485) bus. This could be improved forexample by HW boot pins... Last thing, what i can say as improvement could be better specification in an2606-stm32-microcontroller-system-memory-boot-mode-stmicroelectronics.Because if you want to jump from bootloader to the application, you must send sequence init, GO command and ju
Basically, my requirement is to run RTC to monitor actual date and time for various schedules to actuate the devices. Note that RTC configuration is provided via LoRaWAN downlink and timestamp after LoRaWAN join.Hence, I would need mix mode to run both BCD calendar for clock and binary mode for LoRaWAN stack timer server. However, I could not get alarm working with free running BCD calendar and binary mode (mix mode) in STM32WL55. But I could see working if I configure only free running BCD calendar or binary mode separately. Attached the configuration for the reference to advise.Is there any example program on mix mode alarm operation?
What should be the color input format for hal_dma2d_start()?According to the function definition, it seems that only ARGB8888 format colors can be inputted.static void DMA2D_SetConfig(DMA2D_HandleTypeDef *hdma2d, uint32_t pdata, uint32_t DstAddress, uint32_t Width, uint32_t Height) { uint32_t tmp; uint32_t tmp1; uint32_t tmp2; uint32_t tmp3; uint32_t tmp4; /* Configure DMA2D data size */ MODIFY_REG(hdma2d->Instance->NLR, (DMA2D_NLR_NL | DMA2D_NLR_PL), (Height | (Width << DMA2D_NLR_PL_Pos))); /* Configure DMA2D destination address */ WRITE_REG(hdma2d->Instance->OMAR, DstAddress); /* Register to memory DMA2D mode selected */ if (hdma2d->Init.Mode == DMA2D_R2M) { tmp1 = pdata & DMA2D_OCOLR_ALPHA_1; tmp2 = pdata & DMA2D_OCOLR_RED_1; tmp3 = pdata & DMA2D_OCOLR_GREEN_1; tmp4 = pdata & DMA2D_OCOLR_BLUE_1; /* Prepare the value to be written to the OCOLR register according to the color mode */ if (hdma2d->Init.ColorMode == DMA2D_OUT
I am using the following tool versions:MC Workbench: v5.4.8STM32 Firmware Package: v1.11.3STM32CubeMX: v6.2.0Here are the steps I follow:Open the ElectronicSpeedControl.stmcx file in STM32 Motor Control Workbench and save it to a new, empty location.Go to Tool → Generation. In the dialog window that opens:Select STM32CubeMX v5.2.0 or laterChoose STM32CubeIDE as the target toolchainSelect STM32 FW V1.11.3 or later for the firmware packageEnsure the HAL (Hardware Abstraction Layer) option is selected for Drive TypeClick UPDATE to proceedThis starts the code generation process.Then click RUN STM32CubeMX to open the .ioc file in STM32CubeMX.Once opened, click Generate Code (top right corner).Open the generated project in the target IDE (STM32CubeIDE).Build the project and flash the resulting .bin file to the MCU using STM32CubeProgrammer and ST-Link V2.After flashing, the motor starts beeping and runs smoothly when PWM signals are applied. However, once the board (STEVAL-ESC001V1) is resta
Hi all,I'm trying to find out if any STM32 MCUs support hardware input qualification on GPIOs, similar to what's available on TI C2000 MCUs.On the C2000 series, GPIOs can be configured for input qualification using a sampling window—typically 3 or 6 samples spaced apart based on the system clock. Here's a reference from the C2000 TRM for clarity (see attached images):Sampling is done every 2 × QUALPRD × T_SYSCLKOUTThe input must be stable for multiple consecutive samples before it's considered validThis helps filter out glitches or noise on input lines without software debounceI'd like to know:Do any STM32 series (F0/F1/F4/G4/H7, etc.) provide similar hardware input qualification or multi-sample filtering at the GPIO input level?If not at the GPIO level, do any EXTI lines or timer input capture channels offer configurable digital filtering that could replicate this functionality?Are there STM32 families with 'majority-vote' digital filters like what some comparators or HRTIM inputs pro
Hello,I am using the EVLSERVO1 board with a differential quadrature encoder (A and B phases). The encoder has a resolution of 4096 pulses per revolution, and I am observing issues when the motor speed exceeds a few hundred RPM.Specifically, the system becomes unstable above ~500 RPM. The motor fails to spin reliably, and the encoder appears to stop providing meaningful feedback(past 500 rpm, the encoder value stays the same about). However, when I probe the differential signal (A+ minus A−), the waveform looks clean on the scope.Is this behavior expected due to the encoder being considered "high resolution"? Would performing the rework suggested for high-resolution encoders (replacing R81 and R82 with 330 Ω...) help resolve this issue?I am unsure where the resolution or frequency cutoff is that necessitates this rework, and would appreciate any guidance.Thank you!
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.