Get ready for the STM32 Summit 2026 | Online, November 3
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
Is there a way to detect a CAN message loss in a RX Fifo when in the overwrite mode (so an overwrite?)
I’m trying to make the example LoRaWAN_End_Node_LBM] work on my nucleo-wl55jc1.For now i’ve just changed the DevEUI and AppKey in se-identity.h to match my chirpstack configuration.I can see the join request from my object and the join accept answer of the server but here is what i see on the log of the nucleo:LoRaWAN End Node LBMAPPLICATION_VERSION: V1.6.0MW_LORAWAN_VERSION: V1.1.0MW_RADIO_VERSION: V1.4.0L2_SPEC_VERSION: V1.0.4RP_SPEC_VERSION: V2-1.0.4Event received: RESET###### AppKEY: 2B:7E:15:16:28:AE:D2:A6:AB:F7:15:88:09:CF:4F:3C###### NwkKEY: 2B:7E:15:16:28:AE:D2:A6:AB:F7:15:88:09:CF:4F:3C###### DevEUI: CA:FE:BA:BE:DF:70:70:35###### AppEUI: 00:00:00:00:00:00:00:00###### DevAddr: DF:70:70:358s053:Add JOIN task8s053: TX MNG REQ time=00008053, final_time=000107888s055: Next TX on freq 868100000, DR 3 10s782: Payload: 00 00 00 00 00 00 00 00 00 35 70 70 DF BE BA FE CA 76 01 0A F0 D4 25 size: 23 995: TX DONE11s041: RX1 LoRa at 4957 ms freq:868100000, DR 3,
Hello,I have no CAN experience, but I have to decide soon if we can use the STM32 (prob. H7) with its CAN-FD interface.To me with my limited CAN knowledge it looks like it supports all hardware necessities, like "old & slow" CAN and the newer, faster version with bitrate change.But to make sure that I am not missing something important :What are the limitations of the STM32 CAN-FD ? What's your experience?Thanks in advance! Edit: I have checked / am reading AN5348 and the STM32 CAN-FD "presentation"
Hello,The latest version of STM32CubeWL (1.6.0), based on the Semtech LBM stack, does not support FUOTA.What is the recommended solution for a new project that requires FUOTA? Should we use an older version of STM32CubeWL (v1.1) that have FUOTA example code?Do you have an estimated date for when FUOTA will be available in the latest version of STM32CubeWL?Best regards,Mathias
Hi everyone,I am currently experiencing some issues with the FDCAN interface; my setup consists of two nucleo boards (Nucleo-G0B1RE) which use FDCAN interface to communicate with each other. As transceivers I am using two ATA6563-click boards.The clock used for FDCAN interface is PLLQ which ticks at 32MHz. The FDCAN parameters were configured using kvaser canfd timing calculator; Filters are disabled.I’ve generated two set of parameters:Nominal bitrate 500 kBit/s; Data bitrate: 2MBit/s Nominal bitrate 500 kBit/s; Data bitrate: 4MBit/s In both scenarios I’ve used a payload of 12 bytes and preserved the sending header:txh_n1.Identifier = 0x1ad; txh_n1.IdType = FDCAN_STANDARD_ID; txh_n1.TxFrameType = FDCAN_DATA_FRAME; txh_n1.DataLength = FDCAN_DLC_BYTES_12; txh_n1.ErrorStateIndicator = FDCAN_ESI_ACTIVE; txh_n1.BitRateSwitch = FDCAN_BRS_ON; txh_n1.FDFormat = FDCAN_FD_CAN; txh_n1.TxEventFifoControl = FDCAN_NO_TX_EVENTS; txh_n1.MessageMarker = 0x0;and the same while loop:bo
Hello,I am working on a CANbus communication with a critical system component that, if it is NOT communicating, portions of the systems should be shut down. I am trying to come up with a way to determine if communication is lost, but I feel like the solutions I'm coming up with are way more complicated than they need to be. One feature that I noticed is AutoRetransmission in the CAN configuration. So it will try to resend the message if it does not get an ACK from the device it's communicating with. Is there a way to keep track of how many transmission attempts have occurred with no response from a specific node? If so, then I can just say "If the message failed to send X times, then communication is lost and react accordingly."Does anyone know if this exists and, if so, how to implement something like this?For reference, I am using the STM32H7B3IIT6 MCU.
Hello I tried to receive any CAN signal on my device based on STM32F303CCT6. Maybe you have solution :), CAN pins are remapped on PB9 and PB8 pins by STMCubeMX configuratorBelow my code (main.c): https://pastecode.io/s/7av2ge6mand my settings in configurator:I also set CAN RX pull HIGH using the internal pull-up, like in the tutorial https://controllerstech.com/can-protocol-in-stm32/Thanks for help
Normal mode of FDCAN is not working. Attached project file here. Please suggest if any changes are required in the attached files.
Hello!I am facing a problem with the STM32H563VIT6 trying to set up MQTT client. I tried to take STM32H573I-DK\Applications\NetXDuo\Nx_MQTT_Client example as a base example on how to do it, but it has not worked for me. The problem I am facing is that no IP can be acquired and thus the MQTT client will not work. I have set up everything correctly in the netxduo header file (DNS, MQTT broker name).What I am trying to achieve right now is to have the board send simple MQTT packets to my computer (like in the STM32H573I exmaple). The board is connected to the router.I tested a simple MQTT packet sending by doing it from my phone to my computer. Also, connected my phone to the router via an Ethernet cable, and with using the Wi-Fi. In both times, the test was successful, so from that it seems that the problem cannot be in my computer or in the router.When debugging the program the error I receive is from the App_Link_Thread_Entry. Getting this error after calling nx_ip_interface_statu
Hello ST Community,I’m developing a custom external loader for a GD25Q64E flash device and cannot get STM32CubeProgrammer to read/write/erase the external flash. I’ve attached a screenshot of the error reported by the programmer.What I’ve doneFollowed the ST tutorial “External QSPI loader how to” External QSPI loader how to - STMicroelectronics. Verified read/write/erase work when exercised from main.c — no errors there. When running the loader, I see a hardfault reported in the CubeProgrammer “HardFault” tab. There is a hardfault at the end of loader_src.c in init(); I’m not sure whether that is expected. Project uses SPI3 with DMA and interrupts to talk to the external flash. I have also tested this with just polling and verified read/writing/erase work when exercised from main.c Device and external flash infoFlash: GD25Q64E SPI instance: SPI3 (Polling)Questions: Any troubleshooting tips for getting the custom loader working with STM32CubeProgrammer (and diagnosing the hardfault sho
Hello, I initialized CAN on STM32F429ZIT6 on registers. I would like to tranmitt and receive messages. But on transmission lines is silence. In my opinion I forgot about any register, but I don't know which. So could you help me what i sholud change in my code?
Hi, I am using the following:cubeIDE 1.13.1/STM32F072C8U6/baud = 250K - I attached a picture of my clock diagram & param setup.Hi, I am using the following:cubeIDE 1.13.1/STM32F072C8U6/baud = 250K - I attached a picture of my clock diagram & param setup.I do not see messages sending on the CAN bus. They worked fine in my previous IDE. I have a feeling it has to due with the time quanta but not 100% sure. I tried adjusting to quanta 10/5 after reading the following with no luck:http://www.bittiming.can-wiki.info/ Init:static void MX_CAN_Init(void){/* USER CODE BEGIN CAN_Init 0 *//* USER CODE END CAN_Init 0 *//* USER CODE BEGIN CAN_Init 1 *//* USER CODE END CAN_Init 1 */hcan.Instance = CAN;hcan.Init.Prescaler = 32;hcan.Init.Mode = CAN_MODE_NORMAL;hcan.Init.SyncJumpWidth = CAN_SJW_1TQ;hcan.Init.TimeSeg1 = CAN_BS1_1TQ;hcan.Init.TimeSeg2 = CAN_BS2_1TQ;hcan.Init.TimeTriggeredMode = DISABLE;hcan.Init.AutoBusOff = DISABLE;hcan.Init.AutoWakeUp = DISABLE;hcan.Init.AutoRetransmission = DI
Hello,I'm running the BLE_DataThroughput_Server Application on a NUCLEO-WBA65RI (server, notifying) connected to a NUCLEO-WBA55CG (client, receiving notifications), and I'm seeing a significant throughput regression between STM32CubeWBA v1.7.0 and upper versions, with strictly identical configuration. Setup (identical in both cases):Server: NUCLEO-WBA65RI, BLE_DataThroughput_Server Application, from STM32CubeWBA v1.7.0, v1.8.0, and v1.10.0 Client: NUCLEO-WBA55CG, BLE_DataThroughput_Client Application, from STM32CubeWBA v1.10.0 Connection interval: 11.25 ms PHY: 2M MTU size : 244 Build configuration: Release I added :const uint8_t a_BLE_rx_pckt_count_and_rx_pckt_len[2] = { 0x07, 0x00 }; /* rx_pckt_count , rx_pckt_len */ aci_hal_write_config_data(CONFIG_DATA_LL_RX_ACL_CTRL_OFFSET, 2, a_BLE_rx_pckt_count_and_rx_pckt_len);as described in the "How to get the best throughput" section of the wiki (rx_pckt_count=7, rx_pckt_len=0) Results:BLE_DataThroughput_Server Application from STM32CubeW
Hi, I am new to TouchGFX Designer and I saw the previous reply in 2023 mentioning that the team was internally discussing the possibility of importing Figma UI designs into TouchGFX Designer.Is there a way to import Figma UI Design to TouchGFX Designer? May I ask if there has been any update or progress on this feature since then?In addition to the Figma import question, I would also like to ask whether TouchGFX Designer currently provides any form of plugin or extension support.Specifically, is there a way to add a custom entry in the Designer menu or integrate a custom code-generation workflow into the tool? Thanks in advance for any information.
Hello,We are going to use the STM32H573 MCU (STM32H573IIK3Q) on our board, and we are now preparing for mass production. Production will be done at an external contract manufacturer (not in-house), and we need to provision keys and firmware securely during programming.My main question: Is the STM32HSM-V2 card strictly required for secure programming at high volume, or are there supported alternatives?Specifically:1. As far as I understand, the SFI license mechanism is tied to ST's key hierarchy inside the ROM bootloader, so a third-party/commercial HSM (Thales, nShield, etc.) cannot generate licenses that the chip will accept. Is that correct, or is there any supported way to run SFI with our own HSM infrastructure instead of the ST smartcard?2. If STM32HSM-V2 is the only option: for volumes well beyond 300 units, V2ML (10K) and V2HL (100K) do not seem to be orderable through distributors. Is the intended path to request them through an ST sales office, and what lead time should we pla
I am not getting any IO expansion Module which can support these feature as32UI (Universal Input), 16 AO (Analog Output) and 16 DO (Digital Output) over RS485 communication in a Daisy chainUniversal Inputs0-5V DC 0-10V DC 0-20mA / 4-20mA 5kΩ Thermistor 10kΩ Thermistor RTD (100Ω / PT100/PT1000) Dry Contact / Binary Input Pulse Count InputUniversal Outputs0-10V Analog Output 0-20mA / 4-20mA Analog Output Relay / Binary OutputsPlease suggest
Hi! When trying to run the code in STM32CubeIDE (“Run as”) I see the error“No ST-LINK detected! Please connect ST-LINK and restart the debug session.”.In error log I also see the message“Cannot run program "/usr/local/bin/stlink-server" (in directory "/Users/<username>"): Exec failed, error: 86 (Bad CPU type in executable)”This started to happen after updating to MacOS 27.0 (Golden Gate) from version 26. Before that it was working fine.Also the board can be seen by STM32CubeProgrammer (see screenshot).Also I installed as a separate package ST-LINK-SERVER 2.1.1 (https://www.st.com/en/development-tools/st-link-server.html)Board: Nucleo-F446RELaptop: Apple M4 Pro with MacOS 27.0IDE: STM32CubeIDE Version: 2.2.0 Build 29186_20260626_0934 (UTC)
OverviewDebug Authentication Discovery occasionally succeeds in CLOSED state, but Full Regression fails (“Unable to boot on RSS_DA” / “Unable to detect DBGMCU Mailbox”)Get ready for the stm32 safari! Product / Environment- Board: Custom based off of STM32H7S78-DK (MB1736)- MCU: STM32H7S7L8H6H- Debugger(s) used: STLINK-V3SET- Tool: STM32CubeProgrammer v2.19.0- ST-LINK FW: V3J17M10B6S1- Board setup used during recovery attempts:- tried altering Boot0 (boot from RSS/system flash)- tried manual reset- tried low SWD speed and hardware reset modes Summary of the issueI was attempting to recover the board after secure configuration experiments. The board was originally reachable over SWD, but after running the **`ROT_Provisioning/DA/provisioning.sh`** flow from the STM32CubeH7RS package, normal SWD access stopped working. The board is now in **CLOSED** state, and **Debug Authentication Discovery** can occasionally succeed if I hit a very narrow timing window at power-up, but an
I’m trying to implement USB mass storage class device standalone(no RTOS) on nucleo board STM32U575ZI-Q, using RAM for memory.I mostly followed these steps :, but skipped the eMMC parts (I’m using RAM). Instead i did like here: https://embetronicx.com/tutorials/microcontrollers/stm32/stm32-usb-device-msc/ , in ux_device_msc.c I defined STORAGE_BLK_NBR, STORAGE_BLK_SIZ, and then used memcpy() inside functions like STORAGE_Read_FS().Someone has done seemingly the same thing already(combining these two things) and it worked: https://github.com/ST-TOMAS-Examples-USB/STM32U385RG_Ux_Device_MSC_Standalone . Are there any adittional steps i’ve missed?Right now, after plugging the USB into my PC, it appears in Device Menager with code 10( device cannot start ). I’ve put a breakpoint on STORAGE_Read_FS() line while debugging, but it never stops there.
Hi,I am using my own board based on an STM32F207ZG with STM32F2 HAL v1.9.4. I implemented a USB HID Host using STM32CubeIDE (v1.19.0), simply enabling USB Host and HID Class support in CubeMX and generating the code.I was able to read keys correctly from a standard USB desktop keyboard. However, I was not able to read from a USB HID RF reader. While debugging the problem, I noticed the following code in `usbh_hid.c`, inside `USBH_HID_Process()`:case HID_IDLE: status = USBH_HID_GetReport(phost, 0x01U, 0U, HID_Handle->pData, (uint8_t)HID_Handle->length); if (status == USBH_OK) { HID_Handle->state = HID_SYNC; }This initial `USBH_HID_GetReport()` therefore has to complete successfully before the state machine proceeds to `HID_SYNC` and eventually reaches `HID_GET_DATA`, where `USBH_InterruptReceiveData()` starts polling the HID interrupt IN endpoint EP1. My question is: What is the intended purpose of this initial `G
Dear team,We are using in our Solar charge controller with STM32G030C8T6 mcu with internal Vref calibration. We are getting mostly Input voltage sensing ADC pin PB0, PB1 and PB2 failure either while power on time or after few days of normal working. Due to that we are getting many fields issue for battery charging. request your advice and suggestion to sort it asap.
Here on Opensuse Tumbleweed with fvwm2 the installation starts with a small window where the "Continue" button is not visible on startup. The window is can only be resized a little smaller but not larher. Only by scrolling the "Continue" button gets visible.This is unexpected.The follwing stages the presented window still can not be sized to a sensible size. MX2 was installed before on that PC and was still accessible. I do not know how the window size behaved during the first installation.Screen size is 3840x2160.
Environment:STM32CubeMX version: 6.18.1 STM32CubeIDE version: 2.2.0 STM32 MCU: SMT32H7R3Z8J6 OS: Windows 11Project configuration:Code Generator option: "Generate peripheral and middleware initialization as a pair of .c/.h files per peripheral (optional)" = [Enabled / Disabled] Relevant peripherals already enabled before: xSPI, USART1 New peripheral added that triggers the issue: USB_FS/HS, SPIx, UART/USARTx, and others. Description:When I add a new peripheral or middleware in STM32CubeMX and generate code, CubeMX creates an empty folder or generates incomplete peripheral and/or middleware output.The issue appears repeatedly with the same pattern and is not random. In the first case: Create or open project in CubeMX. In Project Manager / Code Generator, set: "Generate peripheral initialization as a pair of .c/.h files per peripheral" = Disabled (default). Generate code. Add a new peripheral: USB_FS (and/or others). Generate code again. Open CubeIDE, then build. In the current situat
Split from this post: Dear ST Technical Moderator,(mEALLEm)many thanks for your prompt answer !You actually solved my problem by using CubeMX2 tool,where one can assign selected peripheral pins (in my case COMP2 two inputs and one output)to actual package IO pins.As far as I see, CubeMX2 tool “offered” to make assignment of Comparator Plus input with one of four IO pinsCOMP2_INP:IO1: PA3IO2: PB15IO3: PC0(I want to use PA3) !and Comparator Minus input with one of four IO pinsCOMP2_INM:IO1: PC1IO2: PC5IO3: PA2(I want to use PA2) !it is stated in my text, in the very beginning !... quoteIn new design, where planned MCU is STM32C542CCT6 device, (LQFP48 package),I plan to use internal Comparator COMP2....PA7 pin as Comparator2 Outputand pin PA2 as Comparator2 -INPut, and pin PA3 as Comparator2 +INPut.... unquoteWell, the only problem is that I did not install SW development environment yet,so, I did not use CubeMX2 tool, I was just reading the documentation, RefManual and device DS,and I d
The linker file is expected to be in the root directory instead of the subdirectoryI have a project that has to compile for two STM32 hardware platforms:- the Nucleo-F446RE development board- the STM32G051 microcontrollerThe project is developed in VS Code.The .ioc file has been moved from the root directory to two subdirectories:./target/nucleo_f446re./target/g051In the file CMakePresets.json { "name": "nucleo_f446re", "inherits": "default", "cacheVariables": { "CMAKE_BUILD_TYPE": "Debug", "STM32_TARGET": "nucleo_f446re" }, "toolchainFile": "${sourceDir}/targets/nucleo_f446re/cmake/gcc-arm-none-eabi.cmake" }, The gcc-arm-none-eabi.cmake file is generated by STM32CubeMX. It contains the following line:set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -T \"${CMAKE_SOURCE_DIR}/STM32F446XX_FLASH.ld\"")This means that the linker script is expected to be in the root directory of the projec
Already have an account? Login
Enter your E-mail address. We'll send you an e-mail with instructions to reset your password.