Join conversations with your peers and ST experts. Explore the full potential of STM32 microcontrollers for your embedded design.
Most recent activity
Hello,For some reason I'm unable to get valid readout of internal MCU temperature. Maybe someone have an ide why this might be happening? System is running on STM32G0B0 MCU. I init ADC over HAL generated code and enable only internal inputs (`ADC_CHANNEL_TEMPSENSOR`, `ADC_CHANNEL_VREFINT` and `ADC_CHANNEL_VBAT`), after init I run ADC calibration which reports that it did it's job. but when I start to read temperature periodically - every minute, I see following results (these are raw values domming from DMA so I assume it is `temp`, `Vref` and `Vbat`):temp Vref Vbat 03B7 07E3 045B 050F 07E4 045D 0513 07E4 0460 0511 07E5 045B 0512 07E5 045B 0512 07E5 045A 0513 07E3 0457 0504 07E9 0481 0509 07E9 0488 0526 07EB 0497 0532 07ED 049C 051F 07EB 0499 0502 07E7 0482 0508 07E8 047B 050A 07E5 0475 0509 07E5 0470 050B 07E5 046F 050F 07E5 0470 050E 07E5 046D 050B 07E3 0467 0510 07E5 0466 0513 07E5 0465 0513 07E5 0466 050F 07E4 0467 0512 07E5 0464 050F 07E5 0463 0511 07E5 0464If I plot these values
Dear Team,I am completely new to Embedded systems.I am an analog design engineer.Decided to start my embedded learning with STM32.I bought a nucleo-64 board.If you don't mind could you please guide me how do I start. I saw many training materials in ST website itself.Don't know which one will be best for a complete beginner.Can you please suggest the learning path and materials for each of these learning path.My final goal is to learn edge AI.RegardsHari
We are using the STM32U575RIT6 device and performed a RX/TX swap on LPUART1, ports PC0 and PC1. When we enabled the Swap TX is properly transmitting out of PC0. But we are unable to read anything on the new RX pin PC1. Other than enabling the pin swapping what else would need to be changed? Are there any known issues with the SM32u5 pin swapping?
After performing an OTA update, the Bluetooth icon appears as shown in Figure 1, but it does not display the "STM_OTA" name.The correct result should look like Figure 2.I followed the modification steps from this video, including adding the OTA Reboot Characteristic as shown:https://www.youtube.com/watch?v=mRzZOa3jmuM&list=PLnMKNibPkDnG9JRe2fbOOpVpWY7E4WbJ-&index=9https://www.youtube.com/watch?v=mRzZOa3jmuM&list=PLnMKNibPkDnG9JRe2fbOOpVpWY7E4WbJ-&index=9The chip I’m using is STM32WB55CGU6, with FUS version v2.0, and ST BLE Toolbox version 1.4.4.The project has been uploaded in the attachment.
Hello,Wich STM32 can i use for a USB HID connection with C# sotware ?Best regards.
Hello Team,We are facing an issue with the STM32F407ZGT6 microcontroller, specifically with the PC10 pin.Our primary objective is to use PC10 as a clock output pin for SPI communication. However, we observed that the expected clock pulses are not being generated on this pin. To further debug the issue, we wrote a simple test code to toggle PC10 as a GPIO output. Unfortunately, even this basic GPIO operation did not function as expected—there was no voltage change observed on the pin, verified using a multimeter.This unexpected behavior appears to be isolated to the PC10 pin, as the same code works correctly when tested on other GPIOs.We would appreciate it if you could provide your insights on this issue. Please let us know if there are any known errata related to this behavior or any specific considerations for using PC10 for SPI or general GPIO use.Feel free to reach out if you require any additional information, such as schematics, test code, or setup details.Looking forward to your
Hi,Can short circuit between near pins (not GND and VCCO) cause damage to STM32F103RET7 ?Thank you.
I am evaluating using SPI and ST's internal System Bootloader for a 2 processor application.To that end, I am attempting to attempt to read in the bootloader via SPI on an STLink V3.I am successfully able to do so for a NUCLEO-L496ZG, but fails for a NUCLEO-U575ZI-Q. This is what the traces look like on the Oscilloscope. Yellow is the MISO line.What it isn't:It is not an issue with going into boot mode. I pull Boot0 pin via jumper and press the reset button to put it in boot mode. I am able to verify that it is in boot mode, as I check whether STLink V3 can connect via I2C. It can. I also reset in between connection attempts, as I am aware the bootloader turns off other peripherals when a connection is established.It is not an issue with the hardware/pins. I used the same Nucleoboard with the same pins in the U575 SPI Slave example. I configured another U575 to be the master. I even modified the Slave example to configure those pins (PA5, PA6, PA7) to be in pulldown mode, like AN2
Hello colleagues,Hope you may help me in one issue I'm facing w/. What I have in hands:STM32F407 discovery kitWaveShare LAN8720 ETH board is connected to discoverySTM32CubeIDE. Version: 1.18.1. Build: 24813_20250409_2138 (UTC) Simple LWIP projectint main(void) { /* USER CODE BEGIN 1 */ /* USER CODE END 1 */ /* MCU Configuration--------------------------------------------------------*/ /* Reset of all peripherals, Initializes the Flash interface and the Systick. */ HAL_Init(); /* USER CODE BEGIN Init */ /* USER CODE END Init */ /* Configure the system clock */ SystemClock_Config(); /* USER CODE BEGIN SysInit */ /* USER CODE END SysInit */ /* Initialize all configured peripherals */ MX_GPIO_Init(); MX_LWIP_Init(); MX_RTC_Init(); MX_USB_DEVICE_Init(); MX_CAN1_Init(); MX_SPI2_Init(); MX_I2C1_Init(); MX_SDIO_SD_Init(); MX_USART6_UART_Init(); MX_USART1_UART_Init(); MX_USART2_UART_Init(); MX_USART3_UART_Init(); MX_DAC_Init(); MX_FATFS_Init(); /* USER
Hello,With freertos cmsis_os2 osTimerStop() returns osErrorResource despite timer is running and trigs the callback after the correct time.Is there a known bug?How a timer returning pdFALSE at test xTimerIsTimerActive (hTimer) can trig a callback???How can I stop the timer otherwise?Best regardsMich
Dear Team, May I know STM32WBA52CG support some basic AI/ML applications. We don't need controllers like STM32N6. If STM32WBA52CG supports some basic AI/ML can you please share some materials,applications notes or some examples where I can see some AI/ML application of STM32WBA52CG. Regards Hari
Hi everyone,I’m running into a strange rendering issue in TouchGFX and could use your insights.What I’m SeeingI have a function that hides or shows several UI elements (e.g. buttons) and then calls invalidate() on them.When I invoke this function from a touch button, everything works as expected: the elements disappear from the screen.However, when I call the exact same function from my hardware-button within (handleKeyEvent()), the elements become non-interactive (I can’t touch them) but they remain visible on screen.What I’ve ConfirmedThe function is definitely being executed (the elements lose touchability) it means changes have applied.I’m correctly calling element.invalidate() (and even invalidating the parent container).If I defer the call using a flag and perform the update in handleTickEvent(), it works reliably. but I believe it is not a good approach.What I’ve TriedCalling the function via touchgfx::Callback<>Triggering it with an “Action” in the DesignerEvery approach
Good Day, Recently I started working with a new MCU (STM32L152). I ported some UART code to handle received data from a different MCU, which worked fine. But as soon as I started testing edge cases I saw some weird things happen. I am using the DMA on the receive, and I rely on the Idle interrupt to send data to a different buffer for processing. It seemed like the Idle interrupt would trigger correctly for the following:- data length < half buffer length - data length = half buffer length - half buffer length < data length < full buffer length - full buffer length < data length But it does not trigger for: - data length = full buffer lengthIt turns out in HAL_UART_IRQHandler (in stm32l1xx_hal_uart.c) there is a missing piece of code that enables this to happen. This code existed in the previous MCU's UART driver. I checked that I had the newest library downloaded for STM32L152. The piece of missing code is attached. /* * NOTE: This else was manually put
I am trying to get my STM32F446RE (using STM32CubeIde) into USB DFU mode via firmware rather than using the RST and BOOT0 inputs which are going to switches on the board. I know this is doable but for some reason it is not working for mewhenever I go into JumpToDFUBootloader(void); the windows host computer does nothing looking at windows device manager I should see "STM32 BOOTLOADER" under USB Devices but I do not see this which means the correct processto go into DFU mode is not happening, I notice that if I jump the BOOT0 pin high and execute JumpToDFUBootloader() it does go into USB DFU mode and I can see the "STM32 BOOTLOADER" but unfortunately I DO NOT want to relyon my BOOT0 or RST input pins I just want to go into DFU mode upload new firmware and repower the system to re-initialize into normal operating mode afte a firmware update.Any suggestions or help with this would be greatly apprciatedMy code is below: /*///////These below are before and when entering my main()
Hi allI migrated from a Nucleo F746zg to a F756zg. Code and overlay is the same except that I west build against F756zg. Now SPI 1 is not working properly anymore. On the scope I can see that SPI communication starts (CS goes low, MOSI byte is sent, MISO byte is sent back) but the transfer does not finish. I ran the same but using SPI 3 this worked flawlessly. Don't know maybe an APB or FIFO issue?Anyone an idea?Sorry, I forgot to say that I tested this with a Zephyr RTOS firmware (which worked with the F746zg) and as well with a simple straight forward Board-to-Board HAL_SPI_TransmitReceive Ping Pong F756zg (SPI 1 master) <-> F746zg (slave). Besides I want to mention that the same Ping Pong with F756zg (SPI 3 master) <-> F746zg (slave) worked flawlessly.
I'm experiencing a strange horizontal ghost/stripe effect mostly on light images (it's very visibile in text)What could it be?I'm using the STM32H7S78 microcontroller
Hi,I am implementing RS-485 communication on the STM32G491. Based on available references, I’m currently using a custom GPIO pin for the DE (Driver Enable) signal, since the default USART1_DE pin is already allocated for another function. In the RS-485 initialization API, there are three parameters: DE polarity, assertion time, and de-assertion time. Do these parameters have any effect when a regular GPIO is used instead of the hardware-controlled DE pin?I am using the below configuration for init.huart1.Instance = USART1; huart1.Init.BaudRate = 115200; huart1.Init.WordLength = UART_WORDLENGTH_8B; huart1.Init.StopBits = UART_STOPBITS_1; huart1.Init.Parity = UART_PARITY_NONE; huart1.Init.Mode = UART_MODE_TX_RX; huart1.Init.HwFlowCtl = UART_HWCONTROL_NONE; huart1.Init.OverSampling = UART_OVERSAMPLING_16; huart1.Init.OneBitSampling = UART_ONE_BIT_SAMPLE_DISABLE; huart1.Init.ClockPrescaler = UART_PRESCALER_DIV1; huart1.AdvancedInit.AdvFeatureInit = UART_ADVFEATURE_MSBFIRST_INIT; huart1.Adv
Hello,I was checking the current rating of the STEVAL-PTOOL4A. Referring to the its datasheet, it states that the maximum output RMS current is 20Amps. Howver using MC Workbench v6.3.2, it states the maximum peak current is 34A.Which data is correct?Thank you.
Two of my MCUs are halting in same problem after running for about a year. There have not been many writes/cycles as I have a erase cycle counter which shows 27 so its not wear out problem. The EE_Init function gets stuck at step 4 and returns with EE_WRITE_ERROR. Here is the page situation. I use page 2 and 3 of second bank. Page 2 is in state RECEIVE (aaaa, ffff, ffff, ffff), the page is otherwise empty. Page 3 is in state ERASING (aaaa, aaaa, ffff, aaaa) and the page is full with data. The problem is already found in step 3 (pagestate = STATE_CORRUPTED), where it checks that page 2 is RECEIVE but page 3 is not ERASED. The code however does not do anything about it. It only deals with the case if (pagestate = STATE_RELIABLE). Recovery transfer occurs in step 3 only for reliable page state . Therfore in step 4, there is no active page, no valid page and finally the function exits with EE_WRITE_ERRORHere are the contents of page 2 starting at 0x08041000:Here are the co
Hi,I'm using an STM32C051K6T6 to read an audio file from FLASH (a book on tape, basically) and output the data over I2S to a codec/amplifier. I would like to understand the drawbacks, if any, of using the internally generated PLLI2SCLK instead of an external clock source (through the I2C_CKIN input) for the I2S clocks. I would prefer to use the PLLI2SCLK so that the pin for I2C_CKIN can be used as a GPIO instead, but I'm uncertain of the impact of doing so. For example, will the audio quality be significantly compromised by using PLLI2CLK instead of an external clock?Thanks,James
The new version of TouchGFX (V4.21.0, V4.21.1) displays the text of a Button With Label no more vertical centered. In the designer the text is shown correctly, but in the simulator and in the compiled controller application it is positioned too high.Is there a way to correct the position?Screenshot with TouchGFX 4.20.0Screenshot with TouchGFX 4.21.1
Hello, I am currently creating an inverter using STMC Board Designer, the MCU is STM32F407IGT6,the clock source is internal clock, here are some screenshots of my configuration, it was working fine until the inverter was generated successfully, and when I have everything ready to create the program, I get an error as shown in the picture below.I have version 6.4.0.I'm desperate to know why I'm getting this error, thanks.Best regards.{ "type": "inverter", "contentVersion": "1.0", "descVersion": 5, "name": "F407_72V300A_New", "PN": "F407_72V300A_New", "algorithmCompatibility": [ "FOC" ], "mcu": "STM32F407IGTx", "clockFrequency": 168, "motorDrives": [ { "name": "M1", "minRatedVoltage": 10, "maxRatedVoltage": 100, "maxRatedCurrent": 300, "features": [ { "type": "CurrentSensing", "name": "CurrentSensing", "tRise": 1, "hwVariants": [ { "signals": { "CURRENT_ICS_U": [ { "name": "PC2", "help": {}, "cost": 0 } ], "CURRENT_ICS_V": [ { "name": "PC3", "help": {},
HiDoes the X-NUCLEO-BNRG2A1 BLE module support interfacing with the STM32F407VET6 board? Please let me know.
Hi ST-Members,I need to interface a 10.3-inch LVDS display with a resolution of 1920x720 to an STM32F769-disc0. I also have an H743 Nucleo board. Could you please advise on the method I should use to make the display work? Additionally, I plan to initiate TouchGFX for an ECG application.I came across a schematic for an interface board(attached below) from STM32F769-EVL to LVDS in the community. How can I follow this schematic to make it compatible with the F7-DISC0 or H7 Nucleo boards? Alternatively, is there an interface converter board available in the market that converts onboard MIPI DSI to LVDS? If not, please guide me on the proper steps to modify the PCB schematic for the STM32F7-DISC0 or H7.Solved: LTDC (RGB) to LVDS interface - STMicroelectronics Communityregards,embed_engr
After I select the project and download it, the ST BLE Toolbox (as shown in Figure 1) displays "Upload completed."However, after the Bluetooth restarts, it still shows "STM OTA", which means my application was not successfully downloaded to flash.I'm using the STM32WB55CGU6 chip, with FUS version v2.0, and ST BLE Toolbox v1.4.4.The steps I performed to convert the non-OTA project to OTA are as follows:In ble_conf.h, I added:#define BLE_CFG_OTA_REBOOT_CHAR 1 /**< REBOOT OTA MODE CHARACTERISTIC */I removed the following lines from SystemInit(void): //#if defined(USER_VECT_TAB_ADDRESS) // /* Configure the Vector Table location and offset address */ // SCB->VTOR = VECT_TAB_BASE_ADDRESS | VECT_TAB_OFFSET; //#endif /* USER_VECT_TAB_ADDRESS */ I modified stm32wb55xx_flash_cm4.sct, copying its contents directly from the official ST example at:BLE_HeartRate_ota scatter fileDid I miss any required steps that are causing the OTA upgrade to fail?
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.