Join discussions in the Product Forums. Ask questions, learn from your peers, and share insights on ST solutions to accelerate your design journey.
Most recent activity
Hello,I am currently working on a schematic featuring 3x STM32H753ZIT6 MCU , and I have a few questions regarding the JTAG implementation:(1) From what I’ve gathered from various sources, the NJTRST signal is a JTAG ENABLE, meaning that in normal operation mode it must be tied to GND and driven to '1' only for JTAG debug. However, in some implementations on internet i've actually seen it connected to a pull-up resistors.What is correct? (2) I need to daisy-chain the JTAG between three components for debugging via an external channel. Does the NJTRST synchronize the three components for this purpose? In other words, should it be connected in parallel? (3) And what about the NRST signal? Is it also used to synchronize the three components during JTAG debugging, or is it unrelated to this chain? ThanxEli
Hello,I am currently working with the STM32MP157-DK2 platform and would like to integrate OpenPLC into my Yocto-based Linux distribution.I would like to inquire whether STMicroelectronics provides any existing Yocto layer or recipe for OpenPLC. If no official support is available, I would appreciate guidance on the recommended approach to create a custom Yocto recipe for integrating OpenPLC into the build system.Specifically, I am looking for best practices regarding:Creating a custom layer for OpenPLCWriting a BitBake recipe for OpenPLC (including dependencies and build steps)Integrating OpenPLC runtime with the STM32MP1 ecosystemAny potential compatibility considerations with the STM32MP157-DK2Any references, documentation, or examples would be highly helpful.
Hello, What HAL2 API can I use to turn on/off the output of a timer? In HAL (ver 1) this could have been done like this:TIMx->CCER &= ~TIM_CCER_CC1E; // Example for Channel 1: ~TIM_CCER_CC1E // or __HAL_TIM_MOE_DISABLE(&htimx); Thank you,-Gil
Hello ! I am trying to build Blinky example on STM32N6570Dk eval board . And this is how my memory.x file looks like below */MEMORY{FLASH : ORIGIN = 0x24180400, LENGTH = 256KRAM : ORIGIN = 0x241C0400, LENGTH = 512K}When I run cargo run --release , I am getting the error . Could anyone please point what might be the problem here Running `probe-rs run --chip STM32N657 target/thumbv8m.main-none-eabi/release/blinky`WARN probe_rs::probe::stlink: send_jtag_command 242 failed: SwdApWdataError WARN probe_rs::probe::stlink: send_jtag_command 242 failed: SwdApWdataError WARN probe_rs::probe::stlink: send_jtag_command 242 failed: SwdApWdataError WARN probe_rs::probe::stlink: send_jtag_command 242 failed: SwdApWdataError WARN probe_rs::probe::stlink: send_jtag_command 242 failed: SwdApWdataError WARN probe_rs::probe::stlink: send_jtag_command 242 failed: SwdApWdataError WARN probe_rs::probe::stlink: send_jtag_command 242 failed: SwdApWdataError Finished in 0.16sFirmware
Hello.I am trying to implement RFID using NXP's NT3H2211W0FT1. The microcontroller I am using is the STM32C031F6.After powering on the board, the first thing I do is read the data from the NT3H2211W0FT1 via I2C, but sometimes I can read it and sometimes I can't.I tried leaving a wait of more than one second after powering it on, but that didn't change the situation.The program for the I2C part is below.while(icdata_flg==0){ HAL_GPIO_WritePin(GPIOA, ANNTENA_SW_Pin,GPIO_PIN_SET); HAL_Delay(10); tdata[0]=0x01;//Read HAL_I2C_Master_Transmit(&hi2c1,0xaa,tdata,1,100); HAL_Delay(10); HAL_I2C_Master_Receive(&hi2c1,0xab,rdata,8,100); HAL_Delay(10); HAL_GPIO_WritePin(GPIOA, ANNTENA_SW_Pin,GPIO_PIN_RESET); } I would appreciate any advice you could give me regarding I2C communication.
Dear all, I have an arm Ubuntu system and would like to use the st32programmer. Unfortunately, ST provide only this code for Intel Linux machine Any chance to have this tool ready for arm Ubuntu machines? Kind regards, Edo
Hello,I am working with an STM32F407VGT on the Discovery board using bxCAN.I can communicate successfully at 125 kbps, but when I switch to 250 kbps or 500 kbps, communication completely fails:No messages are transmitted or receivedPCAN shows Bus Heavy / error framesSetup:MCU: STM32F407VGTCAN interface: bxCANTransceiver: PCA82C251Tool: PCAN-USBTermination: 2 x 120Ω (verified ~60Ω between CANH and CANL)Cabling: short wires, common GND connectedObservations:125 kbps works reliablyAt 250 kbps and 500 kbps:No TX/RX activityPCAN reports Bus HeavySame wiring and hardware used for all speedsAdditional checks:Filters configured to accept all messagesCAN1 clock enabledGPIO configured as AF9, very high speedTested with single node + PCANQuestion:What could cause CAN to work at 125 kbps but completely fail at higher bitrates on STM32F407?Any suggestions or known hardware limitations on the Discovery board?Thank you.
Hi,I took reference for calulating the timing / cycles for my MT29F1280AJAAA (I'm using STM32H745ZIT3) In Asynchronous mode - 5, which is saying ~50Mhz in the datasheet. But I'm running FMC at 131MHz clcok, what ever the calculation I have calculated are as per this knowledge notes, https://community.st.com/t5/stm32-mcus/how-to-configure-the-fmc-peripheral-to-interface-an-stm32-mcu/ta-p/705805So help me debug the issue using CRO hardware or Software timing calculation, What I'm observing is that in middle some pages data integrity is failing, after writing page 25m sec delay I'm reading back. its failing what ever the content I have written on to that page.Running FMC at 131MHz, and sysTick HCLK = 396MHzMy calculations, I also tried changing values by incrementing then, last or first byte is coming 0xFFTCLRSETUPTIME = 3TARSETUPTIME = 3STEUPTIME = 2WAITSETUOTIME = 3HOLDSETUPTIME = 2HIZSETUPTIME = 4Question : Is Common space timing and Attribute space timing should be same&nbs
The "S2-LP bring-up good practices v1.0.pdf" [1] document states the following information regarding AFC:"AFC_CORR is 2-complement byte (signed). Granularity is 508Hz for 50MHz Xtal"The mentioned step size of 508 Hz for a 50 MHz oscillator also corresponds to my practical observations.The following information can be found in the datasheet:[..]Fdig/(3*(2^13)) where Fdig is the frequency of the digital block (24, 25 o 26 MHz).1 LSB is:At 24 MHz: 976.5625 HzAt 25 MHz: 1017.25260416 HzAt 26 MHz: 1057.9427083 Hz[..]Since Fdig corresponds to 25MHz for a 50MHz oscillator, the AFC_CORR step size would therefore be 1017Hz.This doesn't match the actual results or the information in the mentioned PDF.What is the correct formula to calculate the step size for all oscillator frequencies?Thanks~Matthias[1] https://community.st.com/t5/interface-and-connectivity-ics/frequently-asked-questions-on-st-s2-lp-sub-1ghz-transceiver/m-p/736882/thread-id/11431?attachment-id=28318
Hi, I'm relatively new to STM32 series and so far have experience with STM32F103 only. My current goal is to learn and work on master-slave system, with master being an embedded linux (IMX6ULL), and the slaves are (supposingly) STM32 boards. Cameras modules and some sensors will be connected to STM32 boards. The STM32 will proess the camera stream and sensor readings locally, and send the processed/estimated results to the IMX6ULL. Some prior serach and local technical support recommend me STM32F104 series, which some sources suggest its image processing capacities are limited. I'm a bit lost in the sea of choosing appropraite hardware setup, and would like to hear some further comments on hardware choice. By far my conditions on board choice are the following: (1) Has DCMI camera interface (2) Hardware has sufficiently capacity to process VGA image stream around 5-10 fps. (3) Can execute STM32 image processing library (https://github.com/STMicroelectronics/stm32-mw-ipl) There may be f
Hello, I have 2 boards an STM32F407 disco and an STM3F746DISCO and i want to create a project that implements an external LCD screen to the board however when the project runned well with the F746 the screen didnt work with the F407 any guidelines?
I've been using a nucleo l476rg with a LIS2DUX12 sensor and I need to use the SPI protocol, but came as a surprise that the MISO line is not working. When it's not getting 0xFF (should be 0x47), gets inconsistent values. Tried changing CPHA, CPOL, prescale and none of that is working.// 1. Tx and Rx arrays uint8_t tx_wakeup[2] = {0x3E, 0x01}; // Register 0x3E, value0x01 (Soft Power-Down) uint8_t tx_whoami[2] = {0x8F, 0x00}; // Read 0x0F (WHO_AM_I) uint8_t rx_buffer[2] = {0x00, 0x00}; char msg[50]; HAL_Delay(100); // Wake up sequence HAL_GPIO_WritePin(GPIOB, GPIO_PIN_6, GPIO_PIN_RESET); HAL_SPI_Transmit(&hspi1, tx_wakeup, 2, 100); HAL_GPIO_WritePin(GPIOB, GPIO_PIN_6, GPIO_PIN_SET); // Read who_am_i HAL_GPIO_WritePin(GPIOB, GPIO_PIN_6, GPIO_PIN_RESET); //HAL_SPI_TransmitReceive(&hspi1, tx_whoami, rx_buffer, 2, 100); HAL_GPIO_WritePin(GPIOB, GPIO_PIN_6, GPIO_PIN_SET); // print data sprintf(msg, "WHO_AM_I = 0x%02X\r\n", rx_buffer[1]); HAL_UART_Transmit(&huar
I designed my own PCB based on the EVSTSPIN32G4 evaluation board and created a project in STM32Cube IDE. When testing the STSPIN32G4’s internal driver, I encountered an issue: no matter what I do, the GHS voltage remains at 5.8V, the GLS voltage is 0V, and the OUT voltage is also 5.8V. I have tried setting PE8 to high or ground, as well as using PWM, but the voltage on GHS1 never rises. Reading the I²C register values does not trigger any protection; the STBY value is 0 and does not enter low-power mode; the nFAULT pin remains low regardless. As far as I can tell, there are no errors. Could an expert please provide some guidance? Thank you.The ST Community moderator has translated the post to comply with the language of the Community which is English. For more information, see: ST Community Terms and Conditions - STMicroelectronics CommunityTranslated with DeepL.com (free version)
I upgraded to STM32CubeIDE Version: 2.1.1 and imported my existing projects as STM32. I opened Project / Properties / C/C++ Build and it says "This is not a CDT project." I've never seen that before using version 1.18.1. What happened and how can I fix it?
Hello Everyone,I am attempting to debug code on the STM32 Blue Pill board. The project compiles successfully, but when I start a debug session, it fails with the message “Launch debugging failed,” along with additional error details shown below. I would appreciate any guidance on resolving this issue.Note: I am using an ST-Link V2 programmer (A2020 version).Wiring is done correctly checked multiple time.I had doubts about the Debugger configurations. Are there any other settings must be modifiable, or any other ways arethere?" Error in final launch sequence:Failed to start GDB serverFailed to start GDB serverError in initializing ST-LINK device.Reason: (18) Could not verify ST device! Abort connection."
Hello my friends, I hope you are doing great.I am trying to create a custom driver for UART peripheral with CMSIS register header files.I have created a build system using the board files and linkers and make. So far I have been able to make drivers for the GPIO pins.Now I am trying to create my own driver for the UART peripheral via the CMSIS. So far I have created this: int uart_params_init(uart_t *uart){ if (!uart) return -1; // defualt configs: uart->tx_pin = 9; uart->rx_pin = 10; uart->baudrate = 115200; uart->tx_port = GPIOA; uart->rx_port = GPIOA; uart->instance = USART1; uart->tx_af = 1; uart->rx_af = 1; return 0; } int uart_init(uart_t *uart) { if (!uart || !uart->tx_port || !uart->rx_port) return -1; if (uart_initialized) return 0; // Enable GPIO clocks for the port: if (uart->tx_port == GPIOA || uart->rx_port == GPIOA){ RCC->IOPENR |= RCC_IOPENR_GPIOAEN; } else if (uart->tx_port == GPIOB || uart->rx_po
I am experiencing an issue in STM32CubeMX where all peripheral Configuration panels stay empty, while the Mode panels and System Core → Parameters render correctly.What I have already tried:Starting CubeMX standalone (not via CubeIDE)Creating a completely new empty projectDeleting the .stm32cubemx folderDeleting and rebuilding the entire STM32Cube\RepositoryReinstalling CubeMXForcing JavaFX software rendering (-Dprism.order=sw)Setting Windows display scaling to 100%Enabling/disabling GPU accelerationVerifying that the bundled JRE is complete (java.exe + jvm.dll present)In all cases, every peripheral Configuration section remains empty, while Mode sections work normally.It appears that the JavaFX UI for peripheral configuration does not initialize, but without any error message.Has anyone seen this before, or is there a way to force or debug the JavaFX UI subsystem in CubeMX?Thank you in advance.Kind regards, Cornelis Dekker (Netherlands)
Hi,I have a question regarding STiRoT provisioning on the STM32H573.As I understand, during the Secure Boot provisioning process, the public key hash is injected into the OBKeys area of the device to establish the root of trust. However, I would like to clarify where the original public key itself is stored and how it is handled during runtime verification.Based on our current design, we are planning the following approach:The firmware image is signed using our own external HSM, not STM32HSM.The corresponding public key hash is provisioned into the device OBKeys during manufacturing.At boot time, STiRoT checks that the public key contained in the firmware image matches the provisioned public key hash, and then uses that public key to verify the firmware signature.From this perspective, our understanding is that the device does not store the full public key in its internal non-volatile memory (e.g., OBKeys or other secure areas), but instead relies on the provisioned public key hash in
Hi I am looking for example code for the LIS2DW12 using Arduino code . I am using an Expressiff module esp32 C3 Does anyone have some example code ?
Hi, I am using the STM32N6570-DK development kit and I want to flash my FSBL and Application firmware into external flash using USB. Currently, I am able to flash the firmware using ST-LINK, but I want to perform flashing through USB as well. I configured the boot pins as mentioned in the datasheet: BOOT0 = High BOOT1 = Low Current behavior The device is detected in STM32CubeProgrammer when connected via USB. USB connection is successful. Partitions such as FSBL, RSSE_FW, RSSE_BLOB, RSSE_PLUGIN, etc., are visible. However, the Download / Erasing & Programming option is disabled. Questions Is flashing external flash through USB supported on STM32N6570-DK? Do I need to configure any OTP boot source or BOOTROM settings to enable USB flashing? Any guidance or examples on how to enable external flash programming via USB would be very helpful.Thank you.
Hey ST-Community,I’m working with an STM32H7S78-DK board and trying to get Ethernet running. TouchGFX and FreeRTOS are working fine, but I’m stuck with lwIP. The task starts, but DHCP never succeeds (the printed IP is always 0.0.0.0). I also tried with a static IP, but I still can’t ping the board. Deactivating TouchGFX didn't help.I've followed this video: STM32 : How to Get an IP Address via DHCP on STM32H7S78-DK with LwIP using IAR EWARMLwIP has the following memory settings:MEM_SIZE = 14*1024BytesTCPIP_THREAD_SIZE = 4 * 1024BytesI've configured the MPU as well following the given Video.I’m not sure where to look next – maybe I’m missing some configuration step? Has anyone successfully used lwIP with this board and could give me a hint?Thanks a lot in advance!
I am trying to understand SMiRoT and SMuRoT for product development based on the STM32H573 and Secure Manager, but from the public documentation they both look mostly like black boxes.Since they seem to be built on top of STiRoT / STuRoT, I am currently trying to understand STuRoT first.For STiRoT, AN6007 Appendix A / Figure 11 is very useful because it provides a clear high-level startup sequence.It helps explain the logic of reset, runtime protection activation, secure firmware update handling, uRoT image verification, bootloader fallback, and jump to uRoT.But for STuRoT, I cannot find any equivalent public document that shows its internal startup sequence or high-level state flow.At the moment I can only infer that after STiRoT verification, STuRoT runs in HDPL2 secure mode, reconfigures its secure context/MPU, verifies the user application, and then executes it. But I have not found an official flowchart or sequence description.So I would lik
I am currently working on an STM32-based project using UART for continuous data transmission between the microcontroller and a PC application. The system works fine initially, but I am facing intermittent data loss and incomplete packets during long-running communication. The issue becomes more noticeable when the baud rate is increased or when multiple interrupts are active in the system. What I have already tried: Verified baud rate and clock configuration in STM32CubeMX Enabled UART interrupt-based receiving Increased buffer size for RX handling Checked wiring and physical connection stability Despite this, the problem still occurs randomly after some time of operation. I would like to ask the community: What are the best practices for stable UART communication in STM32 under continuous data flow? Should I switch to DMA-based UART instead of interrupt mode for better reliability? Are there any known issues with buffer overflow or interrupt priority that could cause this behavior?
Hi, I bought VIPER06LN from mouser. Please help me check the COD. The Chinese custom need this information. Thank you
I am using STM32C071FBP6N MCU TSSOP 20 pin package for one of our project.I am observing Pin_20 is muxed with lot of other pins like PB3/PB4/PB5/PB6. if i select PB3 as GPIO_Output using STM32CubeMx and generated a code. If i try to toggle the pin but its not working at all, none of the peripheral on that pin for PB3 is working. But if i select PB6 as GPIO_Output i can able to toggle or modify.This issue is not only with Pin_20, same with Pin_1 also which shares with PB7/PB8, only PB7 is working.I have tried with multiple chips what could be wrong in this scenario??
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.