Join conversations with your peers and ST experts. Explore the full potential of STM32 microcontrollers for your embedded design.
Most recent activity
It's across 'U5, 'H5, 'H7 RMs, maybe more.How did I spot that? I was text-searching for 'NMI' ... :)JW
Heyho,I have an application with an STM32H7x3, which might be talking to some other STM32 (type TBD, probably something <= G4) on another stacked PCB.This is only a control interface, so no data streaming with a minimum data rate.I am looking for the "best" interface, with that I mean "highest speed at lowest complexity". Hardware limits:trace length max 30 cm, probably over 1 or 2 connectors max. 4 pins (+1 chip select for each participant also okay)max. 4 STM32x + STM32H7x3 on the "lines"So, I2C or SPI - or anything else ?For reliability I like the I2C's acknowledge, SPI is surely faster and has no address "overhead".Thanks in advance for your input!
Hello ,I want to Access QSPI drivers in STM32H7A3VIH6. However in Cubemx there is only option of OCTOSPI1 and OCTASPI. My question is there way to use QSPI api directly like HAL_QSPI_Init instead of OSPi init?Or we have use OSPI only?Secondly i am using 2 external flash to be used in each QUAD SPI.
stm32使用串口空闲中断,仿真过程中打断或者程序停止运行时串口要是外部有数据geistm32发送,运行后不在进串口空闲中断这种情况谁遇到过, Translation with google: When using a serial port idle interrupt in STM32, if the simulation is interrupted or the program stops running, and there is external data being sent via the serial port, the STM32 stops sending data after the program resumes running. Has anyone encountered this situation?
Hi,Recently I have purchased ELSERVO1 board to drive BLDC Motors with 20A rated current. I dont have a ST Flasher, instead, I am using Nucleo g071rb board and removed the jumper pins in the board to flash the external ST controllers.I have connected exact, pins in both the boards like, SWDIO, SWCLK, VDD and GND but, I am not able to flash the firmware saying ""Target no device found, Error in initializing ST-Link device" Reason: No device found on target"What will be the issue in flashing the firmware?? I was able to flash to other boards.I am suspecting that the ELSERVO1 board has dead..please provide the solution.
Same issue reported in 2020: https://community.st.com/t5/stm32-mcus-products/stm32g473-fdcan-pinout-contradicting/td-p/224770.As of DS12712 Rev 5, Table 13 Alternate Functions has PB10 and PB11 mis-labeled as FDCAN3_RX and FDCAN3_TX respectively.Under AF11, PB10 and PB11 are not available as FDCAN3_RX and FDCAN3_TX.
Our own non-secure application is based on "SMAK_Appli" in the STM32TRUSTEE-SM example and in principle, it works, but debugging is giving me issues. This is with STM32CubeIDE latest version and all tools software and firmware updated to their latest versions, too.Issue 1: Using STLINK-V3 to start debugging, whenever there has been a code change, the first attempt results in a verification error (see log below) and the second attempt then works. This is 100% consistent and terribly annoying since starting the non-secure debugging session is very slow to begin with.Issue 2: Using J-Link to start debugging, it claims flash was programmed (very fast) and debugging seems to work at first, but I found that flash programming was not effective. The flash content is always what it was programmed with using STLINK. So if I want to use J-Link, I have to program with STLINK (twice), then switch to J-Link but I cannot successfully program changed flash content with J-Link.Are these issues know and
I want to generate an SBOM (Software Bill of Materials) for my STM32 firmware project, specifically targeting the STM32H733 microcontroller. I have tried searching for guides or examples of how others have done this for similar projects, but I haven’t been able to find any detailed resources. Any guidance or references on generating an SBOM for my firmware project would be greatly appreciated.
Hello ST community,I am working on an application on STM32N6570-DK using the camera to detect humans with an AI model (X-CUBE-AI + NPU) and draw bounding boxes on the LCD using LTDC.I am facing a display corruption / glitch issue that only appears under very specific conditions, and I strongly suspect an AXI / interconnect / NPU side effect, possibly related to an undocumented reset or QoS state.Project architecture:Camera -> DCMIPP -> PIPE1 -> BUFFER1 -> LTDC_L1 -> PIPE2 -> BUFFER2 -> NPU -> Config ROI of DCMIPPMemory placement:LTDC framebuffer: AXIRAM2AI input/output buffers: AXIRAM5No buffer sharing between LTDC and AIProblem description:When MX_X_CUBE_AI_Process() is commented, the camera preview is perfectly stable on the LCD.When MX_X_CUBE_AI_Process() is enabled, continuous display glitches appear (tearing / corrupted lines).The issue happe
In the FD_CAN register, there is a CEL[7:0]:, REC[6:0]: and TEC[7:0]:,The CEL register is not being reset on read and goes into the Bus-Off mode.Do I need to also reset the REC and TEC register?I am currently using the HAL_GetErrorCounter() function to read the register.
Hello,I have STM32F7 controller, using Free RTOS, trying to interface external NOR flash, S29GL128S10TFIV13.So at first, I was trying to do normal read/write operation, but here what I observed,void FMC_Init() { hnor2.Instance = FMC_NORSRAM_DEVICE; hnor2.Extended = FMC_NORSRAM_EXTENDED_DEVICE; /* hnor2.Init */ hnor2.Init.NSBank = FMC_NORSRAM_BANK2; hnor2.Init.DataAddressMux = FMC_DATA_ADDRESS_MUX_DISABLE; hnor2.Init.MemoryType = FMC_MEMORY_TYPE_NOR; hnor2.Init.MemoryDataWidth = FMC_NORSRAM_MEM_BUS_WIDTH_16; hnor2.Init.BurstAccessMode = FMC_BURST_ACCESS_MODE_DISABLE; hnor2.Init.WaitSignalPolarity = FMC_WAIT_SIGNAL_POLARITY_LOW; hnor2.Init.WaitSignalActive = FMC_WAIT_TIMING_BEFORE_WS; hnor2.Init.WriteOperation = FMC_WRITE_OPERATION_ENABLE; hnor2.Init.WaitSignal = FMC_WAIT_SIGNAL_DISABLE; hnor2.Init.ExtendedMode = FMC_EXTENDED_MODE_DISABLE; hnor2.Init.AsynchronousWait = FMC_ASYNCHRONOUS_WAIT_DISABLE; hnor2.Init.WriteBurst = FMC_WRITE_BURST_DISABLE; hnor2.Init.Continuo
I have a dual core application running on an STM32H7 where I would like: the CM7 to tell the CM4 to enter stop modehave the CM4 enter stop modeat a later time, have the CM7 wake the CM4 from said stop modeIn the CM4 code, I'm doing this: HAL_PWREx_ClearPendingEvent(); HAL_PWREx_EnterSTOPMode(PWR_LOWPOWERREGULATOR_ON, PWR_STOPENTRY_WFE, PWR_D2_DOMAIN);The problem is that HAL_PWREx_EnterSTOPMode is immediately exiting. I use the HSEM library for synchronizing all communication between the CM7 and CM4. I thought that maybe I had a case where the CM7 was notifying the CM4 via the HSEM library when I didn't want it to, causing it to wake. So as a test, I added an infinite loopwhile (1);after notifying the CM4 so that the CM7 wouldn't execute anything else. I know that debugging can/will wake the core. To confirm that the CM4 was getting the notification and calling the above HAL_PWREx code, I turn on an LED, delay for 5 seconds, then make the calls. After the enter function returns,
I am using STM32H743 controller, LAN8720 Ethernet chip, and Keil5 programming softwareI am using the IAP function of the network port and need to write the received data to FLASH. I found that the data read at that address after writing was modified. I found during debugging that after the "netif_add" function in LWIP initialization was executed, the data of my flash address was modified. May I ask what happened.Here is my MPU configuration, I'm not sure if it's related to MPU configuration uint8_t MPU_Set_Protection(uint32_t baseaddr, uint32_t size, uint32_t rnum, uint8_t ap, uint8_t sen, uint8_t cen, uint8_t ben) { MPU_Region_InitTypeDef MPU_Initure; HAL_MPU_Disable(); // 配置MPU之前先关闭MPU,配置完成以后在使能MPU MPU_Initure.Enable = MPU_REGION_ENABLE; // 使能该保护区域 MPU_Initure.Number = rnum; // 设置保护区域 MPU_Initure.BaseAddress = baseaddr; // 设置基址 MPU_Initure.Size = size; // 设置保护区域大小 MPU_Initure.SubRegionDisable = 0X00; // 禁止子区域 MPU_Initure.TypeExtField = MPU_TEX_LEVEL0; // 设置类型扩展域为lev
Hi ST Community, I'm wondering if there's a sample project for a UART Bootloader for the NUCLEO-H755ZI-Q series. Thanks for your support
Starting my design on a reference design based on STDES for WL3 series. I would like to know what is needed for the smallest hardware connection to download a program from ST32CUBE IDE. I need to have the minimum amount of connectors on the board. I.E. I don't want to plug in my board that I designed to the NUCLEO base board debugger for downloading a program if I don't have to. Can I take advantage of the STDC14 connection on the ref Des and if so, do I need some external piece of hardware to connect to it which then connects to the USB port on a computer? Thanks!
Hello,I am planning to use BLDC motors in a robotic manipulator where torque control of the motors will be established. Thus, FOC SDK of STMicroelectronics will be utilized. Since the manipulator will be a parallel one, none of the motors will need to make one full revolution and they will work in low speeds as well. They will be equipped with encoder to measure the rotor position that is critical to FOC. Also, the zero position of the motors will be known prior to the running of the manipulator and so absolute position measurement will be no problem.My question is as follows. Can BLDC motors be used in the above mentioned application utilizing the FOC SDK? As I know, sensorless estimation of rotor position requires the spped to be relatively high. However, HFI (high frquency injection) technique of STM can overcome this issue and can estimate the rotor position at low speeds and even at standstill. Only requirement is for the motor to be an interior PMSM. Then, in case of encoder, the
I've built cmwx1zzabz_0xx project on B-L072Z-LRWAN1 discovery board. From the source code, it looks like the app configures a 9600 baud serial console using UART1 on the STM32LO72 on the MuRata LoRa module.Please confirm that the TX/RX signals are available at PA9 and PA10 on the discovery board's pin header.Which #defines are necessary to route app console logging as well as AT command responses to this console?Thanks,Curtis
Hello,I am using an STM32H753IIT6 AA184 VQ V TWN AA. It does not communicate when I connect my serial board through serial communication and try to upload a TTL file using TeraTerm. The device is not even detected. However, when I replace the chip, it starts communicating normally. This has happened with multiple units and the result is the same.We verified that there are no soldering issues—X‑ray scans showed no defects. We have also tested all voltage levels and clock signals according to the datasheet, and everything appears correct.I am concerned about what might be causing this issue. Could you please help me understand what could be going wrong?Thank you.
Hi everyone. Following my Previous post, I have acquired a F446 Nucleo supporting 3shunt topology with the IHM17M1, such that I can perform motor profiling. However, I have run into an issue with the profiler getting stuck at 28%. Details are given below. Any help would be appreciated.[PN]: X-Nucleo IHM17M1, Faulhaber 0620-006B[VERSION]: 6.4.1[TOOL]: MC PROFILER[DETAILS]: Motor Profiler is stuck at 28%. The motor spins up in open loop mode. I have tried multiple speeds and currents within the motor range, and they all seem to work relatively well. However, when using the motor profiler, the motor does successfully spin up (enough current, I assume), but then stops before it reaches the target speeds, and then keeps retrying at a lower and lower acceleration. I have also tried a wide range of speeds from 5000RPM to 50000RPM, and all currents from 0.1-0.3A. I suspect it is not a startup error, but rather a sensing error. Given the size of the motor, and the operating current, I have cons
[PN]: NUCLEO-G431RB with EVLDRIVE102BH and custom motor[VERSION]: Version: 6.4.1 Build: 250722.104358[TOOL]: MC PROFILER[DETAILS]: I am attempting to build a new motor controller that runs sensorless FOC instead of 6-step and my first step was to use the profiler to verify some of the figures on the motor's datasheet. Specifically the friction and inertia values on the datasheet seemed suspect and didn't have the right units for the motor controller workbench. Furthermore I'm assuming the gearbox included on the motor doesn't take these values into consideration. When attempting to run the profiler I seem to get stuck at 28%, which seems to be a common issue and it sounds like the issue is the motor not reaching a stable speed per the forum posts I've already read. From what I can tell it seems like the motor is physically spinning at a stable speed and I don't know why the profiler is struggling to read the speed. I have been banging my head on the wall for weeks now an
Hello all,I have a custom board using an stm32h747bit6. I am able to flash it and it works exactly as intended, but if I power cycle it then it stops working? If I flash it and then reset the chip it still works fine.I tried some debugging, I configured the error handler to toggle a gpio pin on / off but it doesn't do that, the voltage just sits at ~0.8v after I power cycle it? Any ideas?
Suppose I want to implement firmware for STM32U3 without TZ enabled and without the use of GTZC, then I could mostly use the MPU_NS and the TZ-Aware peripheral protection (EXTI, FLASH, RCC, PWR, GPDMA, SYSCFG, RTC & TAMP). My goal is to limit unprivileged code execution to main FLASH, no SRAM, no OCTOSPI NOR/PSRAM. The problem is now the ICACHE. Is there a way to force it to be privileged only ? If not, assuming that I am allowing only unprivileged execution access via MPU_NS to the main FLASH (0x08000000 - (0x08000000 + size of flash)), could the remapping feature of the ICACHE be used to map say SRAM into this region and somehow unprivileged execution access this way ? The docs are unclear there. The remap mechanism is described as a generic mechanism, not limited to any subset of the 0x00000000 - 0x1fffffff address space. Which means that in theory one could replace the mapping at 0x08000000 to say the SRAM1 base address. - Thomas
I'm a novice to ESP32 programming and LoRa, and I'm finding myself stuck with simple interfacing.I have a L073RZ connected to a Semtech SX1280 Evaluation Board, but I don't have a display attached to it (didn't come with one). I'm wondering how I can connect the ESP32 to my PC to control the SX1280. I'm trying to use the LoRa for its ranging abilities.I can't seem to find any firmware for the L073RZ+SX1280 combo, on either Semtech or NUCLEO.
Hello, I have a board STM32F746G-DISCO from Farnell and I noticed that stm32cubeprogrammer is not showing the correct target board information. I have tried different version of stm32cubeprogrammer using different PC (2.15.0 due to usage of Windows 7) and 2.22.0 on my laptop and both are showing the target board as the discontinued STM32F7508-DK. The board system information appears to be showing correct information on its screen when it is being powered up but not in stm32cubeprogrammer and it also appears that the PC is detecting the device with removable storage for STM32F746G-DISCO DIS_F750N8, hinting of the discontinued board name which is very similar to STM32F746G-DISCO . I tried to reload the demo example to the board and it seems fine. The board appears to be a CU4 version board [not exactly sure there is any relation to that]. Is there anyway for the stm32cubeprogrammer to display the correct board information? Thank you for your attention to this matter. Best r
tl;dr - HAL_UART_Receive_XXX, HAL_UART_Transmit_XXX == happiness; HAL_UART_Transmit_XXX, HAL_UART_Receive_XXX == misery. The call to HAL_UART_Receive_XXX causes the transmission started by HAL_UART_Transmit_XXX to stall in both interrupt and DMA modes.Longer story:This affects both interrupt-driven and DMA operation, which is why I've added the DMA label.I am using FreeRTOS, and implementing a serial protocol that, while practically half-duplex in behavior, is written in a full-duplex form. What I mean is the protocol doesn't really expect both sides to be transmitting at the same time, but the code isn't written to prevent it. Theoretically parts of the protocol could overlap.The typical behavior for a transmission is to first call HAL_UART_Receive_DMA(..) to prime the receiver for a response, and then call HAL_UART_Transmit_DMA(..) to send a message.When the calls occur in that order, everything works perfectly.Unfortunately, sometimes the task responsible for
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.