Join conversations with your peers and ST experts. Explore the full potential of STM32 microcontrollers for your embedded design.
Most recent activity
I am working on FDCAN communication using an STM32G0B1CCT6 microcontroller. I am trying to perform a simple Tx/Rx loopback test (and later communication with external tools like Vehicle Spy), but I am facing the following problem: FDCAN is not transmitting or receiving any message. I have configured the peripheral in Normal mode with the following settings: Clock: 64 MHz Bitrate: 1 Mbps Prescaler: 16, TimeSeg1: 13, TimeSeg2: 2, SJW: 1 Frame Format: Classic CAN Auto-Retransmission: Enabled I also added a filter (Filter 0) to accept all standard IDs into RX FIFO 0, but still no data is received. FDCAN init and message send/receive functions return HAL_OK, but no actual communication happens on the bus. I’ve verified the transceiver wiring (ISO1044), and I'm testing using Vehicle Spy and ValueCAN4. I’ve also tried internal loopback, but still no response.
Hi there,I'm developing a custom application for FUOTA (Firmware Update Over The Air), targeting an STM32WB55-Nucleo devboard. I’m referencing AN5247 and AN5289 and using the BLE_OTA example from STM (open source code in new page). My user application is located at 0x0800 7000.Description of the IssueWhen I perform the update using ST BLE ToolBox-1.4.2 or ST BLE Sensor Classic, the update is performed OK:The system reboots into the user application, and the firmware runs as expected.I can successfully trigger a reboot into the OTA application from the user app.However, when I use my custom update application (a business requirement), the OTA does not send the Indicate message nor perform the reset:It does not perform a reboot and stays in the OTA mode.If I perform a system reset while in OTA mode, the contents of the user application are removed (the Flash beyond 0x0800 7000 is erased).(Please see the diagram below for the step where I'm stuck):I get to this stepWhat I am DoingI write
Hi ST Community,I'm working on an STM32H755ZIT6 project where I'm interfacing an SD card using SDMMC1 + DMA and FATFS (with exFAT) from the Cortex-M7 core. However, I'm facing a strange issue: the first time the board runs after programming, it writes and reads English text correctly to/from the SD card, but after one or two resets, the file content becomes garbled or shows Chinese-like characters instead of English. I suspect this may be cache, MPU, or alignment-related, but I'm not sure what I’m missing.Here is a detailed overview of my configuration and setup:1. MCU and Core ContextMCU: STM32H755ZIT6Core used for SD card operations: Cortex-M72. SDMMC1 Peripheral ConfigurationSDMMC Mode: SD 4-bit Wide BusSDMMC1 Clock Divide Factor: 0x04 (Targeting 50 MHz actual clock)SDMMC1 Interrupt: Enabled, priority set in NVIC to 143. Clock ConfigurationSYSCLK = 400 MHzCPU1_CLK (M7) = 400 MHzCPU2_CLK (M4) = 200 MHzPCLK = 200 MHzSDMMC1_CLK = 200 MHzActual SDMMC1 Clock = 200 MHz / 4 = 50 MHz4. FATF
When defining a LoRa application bandwidth, the function caller may write the following:#define LORA_BANDWIDTH 0 // 125 kHz /* [0: 125 kHz, 1: 250 kHz, 2: 500 kHz, 3: Reserved] ???*/Which we then subsequently fill into the tx configuration here:Radio.SetTxConfig(MODEM_LORA, // modem configuration LORA_TX_OUTPUT_POWER, // output power in dBm 0, // fdev (not used for LoRa) LORA_BANDWIDTH, // bandwidth index (0 -> 125 kHz) LORA_SPREADING_FACTOR, // spreading factor (SF7) LORA_CODINGRATE, // coding rate (4/5) LORA_PREAMBLE_LENGTH, // preamble length in symbols LORA_FIX_LENGTH_PAYLOAD, // fixed length payload (true / false) LORA_USE_CRC, // crcOn (true / false) 0, // freqHopOn (true / false) 0, // HopPeriod (not used for LoRa) false, // IQ inversion (true / false) LORA_TX_TIMEOUT_VALUE // timeout value (ms) );The application LORA tx and rx configurations are defined by referencing an index in a global constant in "radio.c:"const RadioLoRaBandwidths_t Bandwidths[] = { LORA_B
"I am currently using the STSPIN32G4 chip to design a motor drive controller with an external 6V supply for the gate driver. The DC bus voltage (VM) is selected to be 4V, which is less than 5.5V. When the motor speed is high, the gate driver triggers a reset. However, when the VM voltage is increased to 4.5V, the driver operates normally. What could be the possible reasons for this?
Hi,I am using STM32WBA52CGU6 controller.I configure Pins of LSE_IN and LSE_OUT.Without generating frequency at this LSE_IN Pin I got detection as LSE is on but actually LSE_IN is just open.I attached System clock Config code below:-/** Initializes the CPU, AHB and APB busses clocks*/RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_LSI|RCC_OSCILLATORTYPE_HSE|RCC_OSCILLATORTYPE_LSE;RCC_OscInitStruct.HSEState = RCC_HSE_ON;RCC_OscInitStruct.HSEDiv = RCC_HSE_DIV1;RCC_OscInitStruct.LSEState = RCC_LSE_ON;RCC_OscInitStruct.LSIState = RCC_LSI1_ON;RCC_OscInitStruct.LSIDiv = RCC_LSI_DIV1;RCC_OscInitStruct.PLL1.PLLState = RCC_PLL_ON;RCC_OscInitStruct.PLL1.PLLSource = RCC_PLLSOURCE_HSE;RCC_OscInitStruct.PLL1.PLLM = 2;RCC_OscInitStruct.PLL1.PLLN = 30;RCC_OscInitStruct.PLL1.PLLP = 14;RCC_OscInitStruct.PLL1.PLLQ = 6;RCC_OscInitStruct.PLL1.PLLR = 5;RCC_OscInitStruct.PLL1.PLLFractional = 5120;if (HAL_RCC_OscConfig(&RCC_OscInitStruct) == HAL_OK){ len_ReturnConfigStatus = HSE_CONFIG_SUCCESS
I have purchased STM32F103c8t6 microcontrollers from three different vendors, but they are behaving differently.I am working on CAN, and on the microcontrollers from one vendor, it is working properly. But on the microcontrollers from other two vendors it is having issues with receiving CAN data. I am using same firmware on all microcontrollers and the CAN bus hardware is also same. by just replacing the microcontroller from different vendors I am having issues.So, what could be the issue which is causing the receiving issues with microcontroller. I tried lowering the baud rate from 500,000 to 40,000 as I thought that it is having issues with high frequency. but it still is not working. The problem is only for receiving, it is able to transmit properly. I also set a breakpoint inside the receive callback function, but the program is not even going there. The microcontroller which is working properly The microcontrollers which have issues with receiving data.
Hi, I am updating my app via OTA. Before downloading, can I get the full size of the bin file? Where can I get it? I want to display the download
How to flash a binary file to the microcontroller with script only ie without STM32Cube IDE & Stm32cube programmer. Please provide a detailed script to flash a given binary saved at a known location
Hello,I am starting a project using this eval board.I need to route octo-spi flash and ram (like on the eval board).Do you have information about the stackup used ? Altium files give me a stackup but I find it a bit weird :Cu1 is 42µm / D1 is core 100µm Cu2 is 35µm / D2 is prepeg 100µmCu3 is 35µm / D3 946µm coreCu4 is 35µm / D4 is 100µm prepegCu6 42µmFlash and Ram tracks impedance are not 50ohms using those parameters. W (tracks width is 120µm).Regards,Dli
Hi,I read (here) that it's possible to use a Nucelo board's in-built ST-Link Vn debugger to program/debug a custom STM32 board. However, I have a doubt about this.Please can anyone tell me whether such an approach is possible? I have available two Nucleo's: STM32F429 and STM32H755, and if either can be used to debug my custom H755 board that would be very good.Advice about how to connect boards would be much appreciated.Purchasing a debugger is obviously an option, but I don't like spending money.Thanks
Hello, I am currently in the midst of developing a super simple system to create a varying load. It's basically to resistors in series with a transistor in parallel of the second resistor. The transistor is driven by a PWM signal to bypass the second resistor and modify the load.I've been trying the circuit with a function generator and it's working perfectly.I now need to switch the PWM generation to a timer of a STM32. I have a nucleog474RE.I used one of the example code available via cubeIDE (TIM_PWMOutput) and changed the frequency to match what i need (3.2kHz) but whenever I try and use my circuit with it, the signal generated by the nucleo is nowhere near clean and smooth, there is a huge jitter that basically renders my circuit useless (I need very high precision and stability). Would any one have any idea why this is happening and what to do to correct it ? Thanks for the answers !
Hi I am currently trying to realise a motor control project for my custom designed circuit board using the STM32 G474 VE microcontroller. I found the motor control workbench by stm which allows me to relatively easy configure the control algorithm in a user interface which is beneficial as I am an electrical engineer and not a programmer. However the software only allows me to configure the system for STM boards and a range of specific motors. Is there any way to adopt the project for my system. I would be really happy if someone could help me in this matter.
Hello Experts,I see that in cmsis_oc.c that the function osThreadIsSuspended is disabled. The variable INCLUDE_eTaskGetState is responsible for it.But how do we enable INCLUDE_eTaskGetState to 1 by default? I see in FreeRTOS.h header than the macro is set to 0. Can i just force it to 1 in FreeRTOS.h? or do we need to enable any particular config parameters in the .ioc file ?Kindly Help!
Hi, there; I am using stm32u575zit6 to make a demo, I configured the threadx/filex/levelx for the system as I would like to have the filex on nand flash W25N01GVZEIG. Here I met a strange issues for the files opeations, I debugged for weeks, but I cannot figure it out. Here is the description1: I can successfully open/write/read/close the files2: I am sure that when I wrote into the file, it was written into the nand flash and made sure it was wirtting sucessfully as I read it back to confirm in nand flash driver level3: But when I reopen the files to read out , I found the files are still old ones.4: the nand driver is writted with reference to the examples of the Fx_Dual_InstanceIs it possible the stcubemx configuration issues or my driver's issues?thank you ChengtaoThe nand driver is as the following: u8 NAND_ReadPage(u32 PageNum,u16 start,u8 *destination,ULONG words) { u8 ret = 0; u16 load_len; flashPageRead(&spi_flash, PageNum); // Addr is column address flashDataBuffe
Hello all, i got a firmware configuration problem, basically im using USB in FS modem and when i plug in the usb to the pc what happens is that sometimes it can be recognized and i see a network disk called ''boot'' but most of times it cant be recognized, so i gotta power up again the whole circuit until it can be seen, i thought it would be a frequency problem, but i already saw that configuration is set to 48MHz , so its correct, i added also a delay before initialization of the usb but it still doesnt work, what else i can try? can someone give me some tips? i already read on many forums but still didnt find out
I have started looking at using the Azure RTOS package for my project but see it has since become Eclipse RTOS? Is STM supporting this RTOS anymore as I see the H7S3 Azure RTOS package was only updated seven months ago whereas the H7 branch as updated more recently? Is it still secure?
Hi all, the Modbus-serial bit sequence my Nucleo_H7A3ZI_Q is generating (as a client) looks good in the console terminal on my computer. However, at an oscilloscope, two of the bytes are missing: the function code 03 and the part of the CRC (cyclic redundancy check) section. Two images are attached. I build and flashed the program with Zephyr RTOS. Any help is appreciated. Thanks
Hi,I need to configure the I2C master on my STM32G491 to operate in a multimaster setup. It is currently connected to a slave device, but we also plan to connect another I2C master to the same bus. The slave device supports I2C multimaster communication.On the STM32 side, do I need to enable any specific settings to support multimaster mode? From community forums and FAQs, I’ve learned that I need to handle arbitration loss and bus errors, and then retry the transmission. Is that sufficient, or is there anything else I should check for?
Hello, Where can I find information, such as flash memory layout, RAM addressing, peripherals configuration for the SMT32WL5MOC ? The product page has quite a few documents, but nothing that is really usefull for developing firmware....
Hallo,I try to use LwIP with freertos. The sw was generated via CubeMX.I have problems to get it running. So I did some investigations. I found some strange behavior of the overall timing.DHCP retrys when failling getting the IP-address. But the time between retrys are very long. The reason for this behavior seams to be a failure in"STM32CubeFX/Middlewares/Third_Party/LwIP/system/OS/sys_arch.c, Release v1.16.0! in function "sys_arch_mbox_fetch".It is the line 184 .... #else status = osMessageQueueGet(*mbox, msg, 0, timeout); if (status == osOK) .... As mentioned in the description of the function the value timeout is [ms]. The caller of "sys_arch_mbox_fetch" uses [ms] as it seams to me.But osMessageQueueGet expects [kernel-ticks] (CMSIS-RTOS2, RTOS V2). As long as kernel-ticks has a length of 1ms everything works as expected. I thing CubeMx generates the default value 1ms.But I changed the kernel-tick to 10ms; so the waiting time is 10 times of timeout. A proposal for correction: uint3
Hi,I intend to make an Ethernet to USB adapter by using a NUCLEO card (which already has the ports). The objective will be to communicate via USB between the nucleo and a PC, and from the nucleo to another PC. To develop this project I have a h563 and h755.If you have any ideas that can aid me in the development of this project, I would be pleased to test them.Gune,
Hello, I am having a difficult time with the WM8994 audio codec inside the STM32H747i-DISCO board, i am able to write to the registers and pass through analog audio through the speakers when avoiding any ADC and DAC signal routing but i am having a difficult time with setting those registers as im not receiving any speaker audio output when going through the mixer. ive tried setting the I2S CKIN as well as PLL clocks to SAI, configuring only SAI1 Tx and RX as well as DMA2 streams 4 and 1 but my audio buffers are empty. i have zero clue what is going on as ive re confirmed all the appropriate register writes are correct and signal paths are enabled. ive looked at the SAI and DMA settings of the BSP audio code and still no luck. I provided a link to my github to my main c file only. Please help https://github.com/Johan-Pirsch/ADC_WM8994/blob/main/src/main.c
Hello ST Community,I'm working on a project using STM32H7 (Waveshare OpenH7XXI-C board) with TouchGFX 4.25.My hardware setup:External QSPI flash (W25Q128) for storing bitmap/image assetsExternal SDRAM (IS42S16400J - 16MB) for framebuffer and runtime buffersDisplay resolution: 1024×600, color format: RGB888Due to hardware design limitations, I'm unable to increase the QuadSPI speed (track length and plug-n-play module constraints).I’ve observed that during frequent screen updates, some parts of the background image get re-read from QSPI, resulting in flickering.This becomes more noticeable when using large fonts, wildcard text updates, or redrawing images.My goal:I want TouchGFX to:Load image/bitmap assets (stored in QSPI) only once at startupCopy them into SDRAMReuse from SDRAM on future redraws — avoiding repeated QSPI readsMy Questions:What is the recommended method to configure TouchGFX for caching QSPI images into SDRAM once?How should I modify the linker script (.ld) to reserve a
Hello ST team,I am currently working on NUCLEO-N657X0-Q (STM32N6) device using a FSBL (Secure Bootloader) an APPSecure and an AppNS (Non-Secure Application).The FSBL is correctly loaded first and then jumps to the AppSecure which jumps to the AppNS. Everything is working well when I prog all the apps separately using STM32CubeProgrammerHowever, I'm facing difficulty debugging the AppNS easily (which is actually my end application) with STM32CUBEIDEMy questions:What is the ST recommended method to debug an AppNS project ?Is it recommended to boot directly into AppNS during development (bypassing FSBL temporarily)?(= Should I move my AppNS temporarily to the boot address, and later re-add the FSBL before production?)Any other ways ? Any official guidance, best practices, or documentation references would be very helpful!Thanks a lot for your support,Best regards,Johan
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.