Join conversations with your peers and ST experts. Explore the full potential of STM32 microcontrollers for your embedded design.
Most recent activity
Setting RTC binary mixed mode on STM32WLE leads to normal operation of BCD Alarm and wake-up counter plus their wakeup and IRQ triggering-so far so good. It behaves similar when set to binary mode only - binary alarm etc work as expected. So what is the difference between RTC's BCD mode and mixed mode? In mixed mode I would expect, that both binary and BCD (calendar) alarms work in parallel, but I do not get the binary alarm IRQ. IMHO there is no apparent difference between RTC calendar and binary mixed modes. Any explanations/thoughts on this somebody?
Hi everyone,I’m currently exploring the possibility of using the Apple Find My network, Google Find My Device, or Samsung Find My Mobile with BLE-capable modules—specifically the STM32WB09KE or other STM32 BLE modules.Is it technically feasible to integrate these modules with any of the above location services? Has anyone attempted or successfully implemented such an integration? I'd appreciate any insights, references, or experiences you could share.Thanks in advance for your help!
Hello,I am currently working on a collar localization project using NUCLEO-WL55JC cards. My job is to create a mesh network using these boards. We have: 1 card which acts as a Gateway (connected to an application), 1 card which is used to simulate the collar and the other cards, which we'll call “relays”, which are used to transmit information from the “collar” card to the Gateway card. The aim is to be able to connect these different relays together to create a network. When a new relay card is added to the network, the relay card transmits an “I am here” message, and the other relay cards receiving this message simply respond with their ID and the quality of the connection. And so on, for the other relays added. In the end, we'll have several relay cards connected to each other, enabling us to extend the range of our system. When transmitting data from the collar to the gateway, the relays will have to choose which relay station to send the data to, depending on the number of station
I want to use port PA9 of STM32H743XGH6 as “FS_VBUS”. In this case, which number should I put in the target register for the alternate function? I understand that if I use CubeMX, it will set it automatically.
Hi,I want to configure my device as a USB Microphone. However the cubemx generates code for USB speaker and the device is detected as STM32 Audio Class Speaker. Can anybody suggest a solution or Cube Example for USB Audio class with Microphone codes/drivers. My devices are STM32H743, STM32H745, STM32H750, STM32H753, STM32H7A. I am using an analog microphone which is connected to ADC via preamp. Thank you
Hi , I am using STM32H725 board, I want to get the size of each directories present in my MMC chip.I am using FileX for file and directory operations on an MMC chip. The chip is accessed via USB MSCThank you.
Hello,I found some discrepancy in BOR configuration for STM32U083CCT6 processor between reference manual [1] and HAL implementation [2]. It concerns BOR_LEV[0:2] bits (bits 10:8) in FLASH_OPTR register. The RM [1] talks of four levels (000: 1.7 V, 001: 2.0 V, 010: 2.2 V, 011: 2.5 V, 100: 2.8 V), in HAL [2] bit 8 is used to enable BOR (OB_BOR_ENABLE in stm32u0xx_hal_flash.h, FLASH_OPTR_BOR_EN in stm32u083xx.h), and the next bits (the remaining two) are used to set the level, importantly, the RISING one (00: 2.1 V, 01: 2.3 V, 10: 2.6 V, 11: 2.9 V), and the next two bits (12:11, which are described in the RM as reserved) are used to set the reaction of the BOR circuit to the falling voltage (00: 2.0 V, 01: 2.2 V, 10: 2.5 V, 11: 2.8 V). So the implementation in HAL is wider (based on 5 bits) and seems more advanced than the one given in the RM. I will add that the erratum [3] is silent on this topic.So, the question is which BOR settings in the STM32U083 processor are correct?[1] RM0503, R
[Issue] One Modbus RTU Slave Stops Responding After Several Months – Only Recovers After Power Cycle (STM32G4 / UART Interrupt)Hello ST Community,I’d like to ask for help with a real issue we're facing in the field.System Overview:We are using STM32G474 as a Modbus RTU slave.UART is configured in interrupt mode using hal uart receive it There are 5 slaves on the same RS485 line, with Modbus IDs 1 to 5.The master sends regular requests to all 5 slaves continuously.Possible Causes:We suspect that a UART error like Framing Error or Overrun may have occurred, which caused the UART peripheral to hang,We do not use HAL_UART_ErrorCallback(), and we do not call HAL_UART_Abort() in our code,In HAL_UART_RxCpltCallback(), we always call HAL_UART_Receive_IT() again — so we believed it would keep working — but somehow it stops responding after a long time.Questions:Has anyone experienced a similar issue where a UART stops responding after months of operation?Should we always implement HAL_UART
In TTN, it says my gateway is connected to other cluster.I'm not able to change it to connected. What should I do?
Hi All,What is the pin pitch of each connector on STM32H747I-DISCO kit bellow. Pin pitch means the distance measured from the center of one pin to the center of the next pin.・STMod+ connector・Pmod connector・ARDUINO connectorThanks in advance.
TCP server is running on a STM32 board and TCP client is running on a PC. problem:netx duo not sending acknowledgement for the packet received immediately even if the NX_TCP_IMMEDIATE_ACK is defined.here after receiving the packet its sending the acknowledgement only when we call the nx_tcp_socket_send . here i need to process the incoming packet and do some time consuming operation so since am not calling the send function immediately after receiving the packet so acknowledgment sent is delayed so the the other peer(PC) is retransmitting the packet since its not received the acknowledgment from the board and its disconnecting the socket after 5 retransmission(since am using windows). so how can i resolve this issue here. wireshark log with regards sabarinath
I made customized board based on bg431besc1 board all pin defined are same as original board except I did not placed back emf register . it working well just like original board in Arduino in both open loop as well as closed loop with very smooth speed. But when I ran it in stm32ide it did not run but it debugging and show zero fault zero speed . the code i m using is same code earlier i used for original board both Arduino and stm32ide codes and motor is also same. so tell me what is problem also motor pilot it connect when i upload ide closed loop code when connect by usb but when i on power 24v it show try to configure with show correct port nd connected board. this is my code
Hello,I download an example GUI from Touchgfx designer, generate code and run on my STM32H735G-DK board, it works well.Then I open the .ioc of this project and generated code with EWARM, open it and build, it has no errors.When I download it to board, the progress seems stuck and report error several minutes later. Touchgfx version: 4.25.0IAR version: 9.40.1
Hi,1.As it is mentioned in CM4 user guide and also explained in tutorial, 0th bit of PC is directly loaded to T bit.And CM4 supports only thumb state ISA.To execute/decode instructions in Thumb state 0th bit of PC should be 1 which means PC should always hold address with odd numbers (i.e ODD Locations).2.But in the attached screenshot,Top left corner - core register window,top right side has disassembly window,Bottom Left-expressions window3.Actual queries are:3.1 why PC is holding even address(PC:0x8000654 ). And in disassembly window, address of location from where instruction needs to be executed is also even and it is matching with value in PC which is correct(Current location :0x8000654).3.2 Once control jumps into generate_interrupt() function[Defined at location 0x80005dc] LR should hold the return address of the function,i.e, location of the next line in main.c function =>printf line(line num in main.c file :148 and disassem
Hello ,Does anyone use STM32F429i eval board ?The user manual (shown as the screenshot below) for my F429 eval board says it has 4 USART ,4 UART. But I can only find 1 DB9 male port marked as USART1. Also, when I use CubeIDE to configure USART1, it automatically enabled PB6 and PB7 for TX and RX. But on the user manual , the schematic clearly says RS232_TX for USART1 is PA9, RS232_RX is PA10. That's really confusing... I am not able to find 4 USART connections, nor can I configure the right PIN numbers for USART1. I tried to verify the Pin numbers from the github example folder, it seems they don't have the PIN number either.
When a CAN message is not ACKed by other nodes, if auto re-transmission is set, bxCAN will re-transmit the message infinitely. This floods the CAN bus, especially if the message is of high priority.My solution is to enable the error passive interrupt (EPVIE), when EPVF is set, in HAL_CAN_ErrorCallback check which TX mail box has transmission error, and explicitly request abort, as follows: if (hcan->ErrorCode & HAL_CAN_ERROR_EPV) { uint32_t tsrflags = READ_REG(hcan->Instance->TSR); hcan->ErrorCode &= ~HAL_CAN_ERROR_EPV; if ((tsrflags & CAN_TSR_TERR0) && !(tsrflags & CAN_TSR_TME0)) { SET_BIT(hcan->Instance->TSR, CAN_TSR_ABRQ0); } if ((tsrflags & CAN_TSR_TERR1) && !(tsrflags & CAN_TSR_TME1)) { SET_BIT(hcan->Instance->TSR, CAN_TSR_ABRQ1); } if ((tsrflags & CAN_TSR_TERR2) && !(tsrflags & CAN_TSR_TME2)) { SET_BIT(hcan->Instance->TSR, CAN_TSR_ABRQ2); } /* I noticed EPVF bi
Hi, I am trying to send classical CAN messages using FDCAN with STM32h723vgT6 - based board. I am however having difficulties sending any packets (and receiving). Hardware setup:- DM-MC02 board, based on STM32h723vg (https://gitee.com/kit-miao/dm-mc02)- SIT1042 CAN controller, directly built-in the board. Thus, the respective CAN_H and CAN_L are directly accessible through the board's pin- (Device) ZDT_Emm_V5.0 stepmotor controller. Anyway it is just the device I am trying to send data to (https://blog.csdn.net/zhangdatou666/article/details/132644047)- CANable 2.0 - inspired USB device. What I am trying to do:I want to be able to send and receive classical CAN messages using the DM-MC02 board to drive my controller. Because of my controller's specs, I need to send classical CAN messages with extended IDs at a bitrate of 500 000, by configuring FDCAN (what's supported by STM32h723vg) in normal mode. I would prefer using the CAN1 port of my board.I am using STM32CubeIDE.&n
I am not sure I properly understand the STM32H7A3xI/G ADC frequency limitationIn the DEV13195 - Rev8 - Datasheet, section 6.3.21 16-bit ADC characteristics, table 93 ADC characteristics, page 143It says the fADC max frequency is 50 MHz with boost mode activatedThis specification seems to match the one ine the section 6.3.1 General operating conditions, Table 23. Maximum allowed clock frequencies, page 84where it also says that fadc_ker_ck maximum value is 50 MhzAnd the same clock fadc_ker_ck is describe at the final adc clock in the RM0455 - Rev 11 - Reference manual, 27.4.3 ADC clocks, Figure 158. ADC Clock scheme, page 931Based on this I understand the limitation only apply to final frequency fadc_ker_ck, and it is possible to use for exemple a system clock adc_sclk of 200 MHz, divide it by 4 via the Bits PRESC[3:0] of ADCx_CCR, and select it via the Bits CKMODE[1:0] of ADCx_CCR, since the clock is alsodivided by two at the end, the fadc_ker_ck would be 25 MHz which is in the al
I have a Nucleo-L433RC-P board and would like to be able to play audio voice prompts which are stored in external flash (W25Q128) and output using the internal DAC. The voice prompts are only short and will call out number digits, so there is plenty of space on the flash to store these in WAV format raw PCM.However, I cannot find any example code that will do this. The only exapmple I've tried tis shown in the following link where the audio is stored in the internal flash, but I cant even get that to work. https://community.st.com/t5/analog-and-audio/tkb-p/analog-audio-knowledge-baseThe sound played just screeches, despte following the instructions step by step, including converting the WAV file to IMA ADPCM etc. I never got as far as trying the example which uses the external flash, because I could not get it working on the internal flash !I just need an example that plays the voice prompts (preferably raw PCM) from the external flash using the internal DAC.
Hello,We are currently facing an issue related to the BOR_EN (Brown-Out Reset Enable) option byte during production on the STM32G0B1RET6 .In our firmware, we do not modify the option byte registers. On some boards, we observed that the BOR_EN bit is enabled by default. When this is the case and the supply voltage is below the BOR threshold (e.g., 2.2V), the MCU enters a continuous reset loop and the application never starts.This raises a few important questions:What is the recommended approach to ensure BOR_EN is disabled during production flashing?Should this configuration be explicitly included in the production flashing script?Is disabling BOR_EN from firmware a viable solution?Our understanding is that the value of this bit is applied very early during the boot process—before the application code begins execution. If the application cannot start due to a BOR-induced reset, then any firmware attempt to modify the option bytes would never take effect.Is there any
Hi, Am using a STM32WL55JCix series MCU for my application. Created a custom bootloader running at 0x08000000 with size 25K and application runs at 0x08006400 with size 231K.I was able to run the bootloader and jump to application without any issue. As part of the OTA firmware update, the downloaded image will be saved to external flash OTA sector1. Then from the bootloader, check for new firmware in the external flash. if the OTA image is there, want to save the currently running application to external flash OTA sector2 and then load the OTA image to internal flash.The problem arise here. able to get the flash image size by extern int _etext;#define IMAGE_LAST_ADDRESS (uint32_t) (& _etext)uint32_t imageSize = IMAGE_LAST_ADDRESS - APP_BASE_ADDRESS;and copy the image.from the boot loader if i load this image to flash with same application at 0x08006400, it running.But if i flash a new image at 0x08006400 and load the old image from external flash to the internal flash at
Hello,I am trying to get my STM32G4B1C3 ESC working for a brushless rc hobbyist motor with unknown motor parameters. I flashed a generic set of parameters to the device and enabled the motor profiler before flashing so that I could estimate them online. When I connect to the motor pilot app Everything is detected fine with no faults, but then I click begin profiler and it seems to just stall with a high pitch noise and never gets past 7% complete. I have tried swapping the 3 phases in all combinations with no change in behavior: Motor details:Aerosky MC2212-980KV 7 pole pairs with standard surface magnets (outboard)
Hi Team,Is it possible to stream live video using an STM32 microcontroller with Ethernet? If yes, which STM32 controller and camera module would be suitable for this? Also, are there any video tutorials or documentation available for implementing such a project?I'm looking for a real-time video streaming setup over Ethernet (not Wi-Fi).Best Regards,Gagan Gowda G R
Hi All, I have a setup where I bought a STM32F407ZET6 dev board from AliExpress and have been using for almost 6 years using STM32Cube IDE. It was only until i updated my IDE from 1.6 to 1.14 when it started saying that "Could not verify ST Device! Please verify that the latest version of gdb-server is used for the connection". my openocd is remotely running on Raspiberry pi where it uses the bitbanging driver to drive the GPIOs for establishing an SWD connection. This same question has been addressed in several other threads in the context of bluepill (https://community.st.com/t5/stm32-mcus-boards-and-hardware/how-to-deal-wirh-could-not-verify-st-device/td-p/234230/page/2).On the OpenOCD side, i am getting this error:I tried changing the -expected-id $_CPUTAPID to different values suggested in different posts (including 0), but nothing works. Most of the forums talk about this issue in the context of Bluepill; however this is STM32F407 based board. Can a
For STM32H743IIT6, the external font library used in TouchGFX is stored in a USB flash drive. After power - on, it is loaded into SDRAM. When displaying text, some fonts appear garbled. The font library I added covers Unicode range from 0x4e00 to 0x4e63, with a size of 100. I generated a bin file through TouchGFX. The first 100 bytes printed after the bin file is loaded into SDRAM are shown in Figure 2, and the content of the bin file opened with a hex editor is shown in Figure 3. During code testing, among the four characters "上 (shàng), 下 (xià), 不 (bù), 与 (yǔ)", only "下" can be displayed correctly, while the other three appear garbled (like a red square. I'm sorry that it's really hard to capture a clear picture on the OLED screen). Among the four characters "一 (yī), 丁 (dīng), 丂 (kǎo), 七 (qī)", only "七" is garbled. I really can't figure out where the problem lies. In addition, previously when this board used LVGL, an external font library was also ported, but there was no such phenom
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.