Join conversations with your peers and ST experts. Explore the full potential of STM32 microcontrollers for your embedded design.
Most recent activity
I am using the LoRaWAN_End_node application. The application was working fine until I integrated the Low Power sample code. The Sequencer appears to stop working (I suspect the timers are not working). If I do not do add MX_LPTIM1_Init() in main everything appears to work. The problem is without the LPTIM1 I can not wake up the processor. HAL_LPTIM_Counter_Start_IT(&hlptim1,(2000 * LSI_VALUE / 1000)); HAL_PWREx_EnterSTOP2Mode(PWR_STOPENTRY_WFI); Thanks for the help.
I am evaluating the STM32H743VIT6 microcontroller for my project. I would like to know whether this device supports Execute-In-Place (XIP) from external flash memory through QSPI
I am trying to connect the stm32 EVK with CYW4373 Infineons wifi module to ustilise the stm32 wifi functionality in my project so i have downloaded the AIROC-WIFI-Bluetooth-STM32-release-v1.7.0 driver and imported the wifi_scan project in the stm32cubeide after importing that shows some errors after i am linking the required folders like wifi host driver and middleware related to freertos the errors gone but it is showing like this build system after linking all the files ,, how to do this interface with this driver or any other way is there please help me to overcome this task if any resources or documents are there please share me it will helpfull in my project
I am new to working with STM32 boards. I am trying to use the STM32H573I-DK as an interface board for the EEMBC EnergyRunner software. i am flashed firmware for benchmark into interface boardWhen I run EnergyRunner, it scans the serial ports but fails to recognize the board as show in the image: please guide me to fix the this issue thank you
Hi, I am working on STM32G0c1RET6 board and i want to understand the working of low power timer (LPTIM) in stop mode.i am using the HAL_LPTIM_Counter_Start_IT(&hlptim1, 65534) to enable LPTIM1 and print a value in function void HAL_LPTIM_AutoReloadMatchCallback(LPTIM_HandleTypeDef *hlptim) { if (hlptim->Instance == LPTIM1) {/* If instance called for HEATER DRIVER */ printf("1\r\n"); } }is it the correct way to print the value. because at some places i have seen usingHAL_LPTIM_TimeOut_Start_IT() function. which one is correct ??Edited to apply source code formatting - please see How to insert source code for future reference.
Hello,I'm developing a battery-powered application for the STM32WB55 (specifically the STM32WB55RGV6) and am seeing periodic pulses or spikes in the SoC's current consumption every 200ms in STOP2 and standby modes. These pulses occur with the Nucleo board MB1355-C02 as well, though the pulses have a different shape on the Nucleo board than the ones I can observe on the board I designed. I have tried the demo firmware in addition to my own, and observe the pulses with it as well.A couple other notes:The pulse period is reduced with increasing ambient temperature. If I point a hair dryer at the board, the pulse period gets much shorter.The pulses occur when running the boards off of an isolated battery supply as well as a typical benchtop DC power supply.I have tried setting all of the pins possible to analog input in order to isolate the STM32WB55 as much as possible from outside circuits, but this didn't help with the pulses.I've attached couple images from my power analyzer that show
Dear Team,I would like to know if development kit is available for STM32H7B0VBT6 if yes where can I purchase the same ? Also I would like to know does the stm32 workspace support this microcontroller (STM32H7B0VBT6) if yes can you help me with the details?If not could you recommend me a microcontroller with similar property. Thank You.
Hi all,I am using the STM32WB55CEU6 to share data using BLE technology. I have designed a customized PCB based on my requirements. I fully configured the STM32CubeIDE .ioc file according to ST’s reference documents. However, I am not getting any output — the BLE device name is not showing up in the ST BLE Toolbox application. I am not sure what the exact problem is in my case. Below, I have attached my schematic design and RF part in my design Note: Polygon is applied on my RF part,if it is correct?.I have one question:When I checked the IC before mounting it onto my PCB, I noticed that Pin 21 (RF1) and Pin 49 are internally connected. Is this normal? In some reference designs, Pin 49 is connected to GND, and I have also connected it to GND. Which one is correct?Can anyone please help me solve this problem? Thank you in advance for your responses.
Hi everyone, i just want to be sure cause it's the first time playing with the bootloader.I have a STM32C092 (TSSOP20) an i was wondering if i can flash it through FDCAN, but reading the AN2606 i unfortunately found a postilla as following (page71):Flashing through can with a TSSOP20 isn't possible, after a second look even the datasheet said the same thing.So there are any other method to flash through FDCAN?My only option seems to be boot from RAM and writing my own bootloader into the application, it's that correct? Thanks,Sander
Hi STWe saw from STM32F302x6/x8 device errata ES0247 - Rev 8 - February 20192.4.4 ADEN bit cannot be set immediately after the ADC calibration is done Description At the end of the ADC calibration, there is an internal reset of ADEN bit 4 ADC clock cycle after the ADCAL bit cleared by hardware. Due to that, if ADEN bit is set within those four ADC clock cycles, it will be reset by the calibration logic and the ADC will stay disabled.Workaround Adopt one of the following measures:Continue to set the ADEN bit, until ADRDY bit become '1'.After ADCAL is cleared, wait for a minimum of four ADC clock cycles before setting the ADEN bit. The workaround 1 seems conflict with RM (RM0365 Rev 8):Software is allowed to set ADEN only when all bits of ADCx_CR registers are 0 (ADCAL=0, JADSTART=0, ADSTART=0, ADSTP=0, ADDIS=0 and ADEN=0) except for bit ADVREGEN which must be 1 (and the software must have wait for the startup time of the voltage regulator) Could you please help clarify :- Is i
Heyho,still checking L1 for new project, next question:Are the L1's internal EEPROM register interface, erase, read, and write functions the same as on L0 (we're already using that) ?Obrigado!
Hello STM Community,I’ve been struggling with an issue for some time and would appreciate your insights.I’m using an STM32WB55 MCU connected to an LTE modem via LPUART for cellular communication. The modem’s default baud rate is 115200.I use a ring buffer with interrupt-based reception: HAL_UART_Receive_IT(&huart1, rxByte, 1);At 115200 baud, I can see valid TX/RX activity on the lines using a logic analyzer, but the MCU does not receive or process any data in my ring buffer.However, when I lower the baud rate to 9600, everything works perfectly — I can read and process all incoming data as expected. The only change I make is the baud rate; the hardware and code remain the same.Has anyone encountered similar behavior with LPUART on the STM32WB55. I’d like to maintain 115200 baud for my application’s performance requirements. Does anyone have an idea how should I proceed on with this?Best regards,
Is there an STMF4xx example project I can reference for using a virtual COM port to connect to FreeRTOS+CLI? I tried to do this myself by having the FreeRTOS+CLI function _write() call CDC_Transmit_FS() and by having CDC_Receive_FS() call a function that puts the received data into a circular queue, and then calls vTaskNotifyGiveFromISR() to tell the CommandConsoleTask that there is data in the queue for it to process.I see CDC_Transmit_FS() being called, but a breakpoint in CDC_TransmitCplt_FS() never fires, and no data appears in a Tera Term window connected to the serial port labeled as STMicroelectronics STLink Virtual COM Port (COM4). Likewise, typing into the Tera Term window does not result in a breakpoint in CDC_Receive_FS() ever getting hit.I'm sure I'm doing something fundamentally wrong, but what?
Hello Everyone, I have the Nucleo-H7S3L8 as my first STM32 board. I want to connect it to a Segger J-Link Pro for JTAG. In the official documentation (https://www.st.com/resource/en/user_manual/um3276-stm32h7rx7sx-nucleo144-board-mb1737-stmicroelectronics.pdf), the board supports JTAG debugging through the MIPI20 connector CN1 (7.3.3 on page 14). For a more detailed view, see Figure 4 on Page 10. I am looking for a way to connect MIPI20 (male pins) to the ARM-20 pins on the J-Link. Is there a way to connect the two?
I am using STM32F401, I had an application which communicates via USART1 by using DMA2. Both RX and TX DMAs are working fine. So I added a bootloader and moved application to 0x08008100. Bootloader is using same USART1 and DMA2. Now bootloader is working fine but I have problem with application.All I changed in application is start address. Bootloader jumps to application, timer interrupt is working fine and toggles LED. When it receives or transmits a data via DMA it stops, LED is not toggling anymore. When debugging I tried these:* SCB->VTOR is already set as 0x08008100. Timer interrupt is working fine.* I changed application's start address back to 0x08000000 and its working fine. * I removed USART and DMA code from bootloader so it only jumps to application. It didn't solve the problem (it lloks like not deinitialize-initialize issue).* I added USART and DMA to bootloader back. In the application I didn't use DMA when sending data with USART, it could send without any probl
Hello I had old build of STM32F469i-disco with LVGL and square line studio interface. when i burn that hex in this board it won't work. But same board when i try with touchgfx it work. if there is any change in LCD pinout ot some other change let me know. to resolve this issue
Hello everyone,I'm working on an In-Application Programming (IAP) solution for an STM32F303CC. I've divided the flash memory into two application areas (let's call them App1 and App2), and I want to rewrite the program in App2 from code running in App1.I have already implemented this, and it seems to be working correctly. However, I have some doubts and would appreciate it if anyone with knowledge on this topic could provide some clarification.Here is my implementation detail:The code that erases the App2 area is located in the App1 area.It executes the standard HAL sequence: HAL_FLASH_Unlock(), HAL_FLASHEx_Erase(), and HAL_FLASH_Lock().Global interrupts are not disabled during this process.Several interrupts are active, but I have confirmed that all of their ISRs are also located within the App1 memory area.My understanding was that the CPU should stall if an interrupt occurs during a flash erase operation, as it would try to fetch the ISR from a busy flash. However, this stall does n
I am using STM32f756 Nucleo board. I have an rgb lcd interfaced via 18 bit (rgb666) connection with the mcu. I have previously used pixel format L8 with CLUT and successfully produced output on the display. Now, I have changed the pixel format to rgb565, changed the frame buffer to 16 bit and populated it with rgb565 values for each pixels. But there is no output on the display unless I enable the CLUT again. I understand that CLUT is only useful for 8bpp. I don't understand why in RGB565 pixel format, the display doesn't show anything without enabling CLUT.My setup is as follows -The frame buffer is a 16 bit 240x320 array. The moment I comment out the 5 lines from the bottom, disabling the CLUT and the frame buffer is updated with rgb565 values, there is no output. When these lines are un-commented and the frame buffer is populated with 8 bit values, I can see the output on the display.Any idea what might be causing this issue?
Hello ,I am working on a project using the STM32G431KBT3 MCU with STM32CubeIDE. My setup includes:ADC1 configured to read 3 channels (CH2, CH3, CH4) in polling mode.TIM2 configured in PWM input mode to measure the frequency and duty cycle of an external PWM signal on CH1.The program runs as expected initially, but when I run the program again, I notice in the Live Expressions window that the values of variables appear to interchange:adc_val_ch1 appears to show the duty cycle value.duty_c shows adc_val_ch1 channel values.Similar behavior is observed for other ADC variables. when ADC and TIM2 interrupts run simultaneously the values are interchange, for reafference here I attach my code as well as screen shot of ide settings and live expression./* Includes ------------------------------------------------------------------*/ #include "main.h" /* Private includes ----------------------------------------------------------*/ /* USER CODE BEGIN Includes */ /* USER CODE END Include
Purchased the SensorTileBoxPro and got in way over my head. I wanted a wearable to detect and alert of undesirable head movement. 1. Can this device be programed to do this?2. Is there anyone that could program it for a modest fee?
TL;DR:On STM32G0B1 with SBSFU + SECoreBin, I want to design a secure crypto/key enclave for the user APP.Enclave should be WRP/PCROP/MPU protected.Only accessible via SVC/gateway from the unprivileged APP.Should remain updateable through SBSFU (included in .sfb). Is this approach feasible, and what is the recommended way to implement it?Hello,I am designing a product based on the STM32G0B1KEU6 MCU. I have integrated my project into SBSFU to harden security as much as possible.Currently, secure boot and secure update are protected by design (RDP, WRP and PCROP for flash, MPU for RAM). I tried to access SECoreBin crypto services from the user application but that results in a HardFault (SBSFU is configured to forbid this, by design).My question: what is the most secure approach to provide crypto operations and key storage to the user application itself?Can I mimic a kind of “custom SECoreBin” dedicated to AES/ECC operations and key management for the APP?Conceptually, my idea
Hi, I started working on my own dev board for a flight computer based on the STM32H747BIT6.At first, I struggled a bit to connect the board to the computer, only managing to do so using the hot plug mode in order to get some info from the microcontroller. My problem comes when trying to write something to the flash: it gets stuck on erasing internal memory sector 0. This means it is unable to write or modify the flash memory. Also, when I connect the board to the STM32CubeProgrammer, it shows me the flash memory, but every address is at 0, which makes sense given that I haven’t uploaded any code to the microcontroller.I’m not really sure what this means — I’m able to read it, but not write to it.The thing is, I started measuring the power source pins just in case I spotted something weird, and I sure did: my VCAP pins are at 2.2V, which is strange because they should be at 1.2V according to the internal LDO regulator.My guess is that this may be the source of the problem — an incorrect
Hello, I am trying to interface STM32H7 microcontroller with SCL3300 inclinometer, I have attached the SPI configuration and the SPItransfer method. ConfigSPI_SCL3300() { // 52 PA6 SPI1_MISO // 151 PD7 SPI1_MOSI // 154 PG11 SPI1_SCK // 153 PG10 SPI_CS LL_AHB4_GRP1_EnableClock(LL_AHB4_GRP1_PERIPH_GPIOA); LL_AHB4_GRP1_EnableClock(LL_AHB4_GRP1_PERIPH_GPIOD); LL_AHB4_GRP1_EnableClock(LL_AHB4_GRP1_PERIPH_GPIOG); //LL_AHB4_GRP1_EnableClock(LL_AHB4_GRP1_PERIPH_GPIOC); LL_APB2_GRP1_EnableClock(LL_APB2_GRP1_PERIPH_SPI1); LL_RCC_HSI_Enable(); LL_RCC_SetCLKPClockSource(LL_RCC_CLKP_CLKSOURCE_HSI); LL_RCC_SetSPIClockSource(LL_RCC_SPI123_CLKSOURCE_CLKP); LL_GPIO_InitTypeDef GPIO_InitStruct; /* SPI1 SCK GPIO pin configuration for PG11 */ GPIO_InitStruct.Pin = LL_GPIO_PIN_11; GPIO_InitStruct.Mode = LL_GPIO_MODE_ALTERNATE; GPIO_InitStruct.OutputType = LL_GPIO_OUTPUT_PUSHPULL; GPIO_InitStruct.Pull = LL_GPIO_PULL_DOWN; GPIO_InitStruct.Speed = LL_GPIO_SPEED_HIGH; GPIO_InitStruct.
Hi, Can anyone recommend a development board that has ZIO headers and on-board SDRAM as well? I can't seem to find any.I have some other requirements as well:-> Needs to have a system clock > 180Mhz-> Advanced DMA Features-> Needs to have on chip ADC and DAC -> Nice to have ethernet support. Thanks in advance,Disha
I am having issues with Ethernet+LwIP+FreeRTOS on the NUCLEO-H7S3L8. I was able to get Ethernet+LwIP to work on baremetal, but adding the RTOS and threading is having issues. I have attempted to follow the process here, but am still having issues. I pulled the reference projects here, and attempted to merge the `ETH_CODE` code blocks over. Still, the NUCLEO-H7S3L8 doesn't respond to my pings. However, I am able to run the reference projects on a NUCLEO-H753 without an issue. Note that I have disabled the MPU and Data cache for the time being.My IOC and STM32CubeIDE project are attached. Does anyone have similar issues with the latest CubeMX/CubeIDE?
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.