Join conversations with your peers and ST experts. Explore the full potential of STM32 microcontrollers for your embedded design.
Most recent activity
Hi all, in RM0456 is plenty of examples with using LLI but only one without it. And even that contain a block diagram that does not explain anything. Also AN5593 does not mention cyclic transfer. So, here i am. Does this diagram means, that if the LLR register is null, the transfer will automatically restarted and thus used in cyclic transfer without LLI? Really guys, review the documentations befor releasing them.
hello,i am working on project with a stm32wle5jc and am fairly new to stm tools. all was working well but after a little break on another project it will no longer flash the board with the stm ide (1.19.0) and says "No ST-LINK detected! Please connect ST-LINK and restart the debug session.". i have an st-link/v2 connected and the ide can actually see the st-link under "help" "st-link upgrade" (i am on a macbookpro m1, which also sees the st-link under "system report", "usb")i can flash the code i want to flash from the ide (~/workspace/<projectname>/Debug/<projectname>.elf) with the stmcubeprogrammer without any problemi have restarted the ide, restarted the mac, switched cables, switched projects, switch boards, tried a st board nucleo board with embedded st-link (or whatever it is)... but always get the same error messagewhat is going on?any help greatly appreciated!thanks, frank
Hi all: I have a general question about whether STM32 peripherals need to be clocked permanently. I am using an STM32G0 at the moment, and I am disabling the USB C Power Delivery "Dead Battery" feature, in order to make sure that the internal 5k1 pull-downs on the UCPDx_CCx pins (PA8, PB15, PD0, PD2) are disabled: LL_SYSCFG_DisableDBATT( LL_SYSCFG_UCPD1_STROBE | LL_SYSCFG_UCPD2_STROBE ); Nothing indicates that you need to clock any peripheral to do that, but LL_SYSCFG_DisableDBATT() writes to SYSCFG->CFGR1, so I am guessing that you need to clock SYSCFG: LL_APB2_GRP1_EnableClock( LL_APB2_GRP1_PERIPH_SYSCFG ); However, other people also clock PWR. I may be because other families STM32G4 and STM32L5 disable those pull-down resistors in a different way: PWR->CR3 |= PWR_CR3_UCPD_DBDIS; // See LL_PWR_DisableUCPDDeadBattery(). So I wonder whether clocking PWR is necessary on the STM32G0 to do that task. The code which STM32CubeMX generates for the STM32G0 does clock PWR too, probably b
Hello Community, I am trying to initialize SD card with FileX middleware standalone with my Nucleo-U545RET6Q board. I have initialized SDMMC1 with SD 4 bit wide , 48MHz with 0 divider. Later i had to put divider by 2 because the code was stuck at fx_media_open(); here is the picture: Later I have initialized the FileX middleware with SD interface, without changing any parameters. I then, edited the app_filex.c using code found with RTOS Based SD File edit program in U5 families. This is my app_filex.c file /* USER CODE BEGIN Header */ /** ****************************************************************************** * @file app_filex.c * @author MCD Application Team * @brief FileX applicative file ****************************************************************************** * @attention * * Copyright (c) 2021 STMicroelectronics. * All rights reserved. * * This software is licensed under terms that can be found in the LICENSE file * in the root directory
Hi all.I'm using STM32H747I-DISCO bord.According to user manual, Pin No.1 in Pmod™ is connected to PA11/PA0.And Pin No.1 in STMod+ is also connected to PA11/PA0.Then can I use PA11 as USART1_CTS via Pmod™ Pin No.1, and PA0 as GPIO via STMod+ Pin No.1 concurrently?Thanks in advance.
We are here trying to achieve the HMAC-SHA-125 generation.we are using the cryptolib-4.3.5 . the implementation is in PNG file( only the main and hmac computation is shown)we are not getting any compilation error but we are getting ERROR as program output . If we are commenting out the error checking if condition, we are getting something like :aee0ab2b6302b529b7873bac798718f3a17bce27a0c0906b3e299942b9262bff but the actual output should be like:b2793ffb929310a28134164a5ef650bdeb422fb34233f493fe323a60fb.
Hi everyone,I'm working on a LoRa project using the STM32WL55JC1 microcontroller, and I'm looking to implement a self-healing mesh network with multiple repeaters.Could anyone suggest existing libraries, detailed tutorials (step-by-step preferred), or GitHub repositories that would be helpful for this specific implementation? Any information or guidance on achieving a self-healing mesh with the STM32WL55JC1 would be greatly appreciated.Thank you in advance for your time and assistance!
I have had a board assembled and want to check they have fitted the STM32 in the correct orientation. Pin 1 on the PCB is shown by the white triangle. But it’s not clear from the package where pin one is because there are two circles in opposite corners in the photo. The datasheet only shows one circle to identify pin 1…
Hi, I designed a custom inverter, based on G473VE, external amplifier and compare, use TIM8 to generate PWM wave, use IR2101S to drive MOSFET. When I try to profile the motor(based on HSO), I get the error: ERROR_DC_AC. I have upload the screenshot(90e0d582f6e2fb5d5043ff325aab241.png), stwb6 file(MCV1_HSO_PROFILE.rar) and schematic files(MC_V1.pdf). Could you help me please? Thanks a lot!I have tried frequency from 20hz to 100hz, and power from 2w to 5w. but no use...
Ever since being forced to update STM32CubeIde, every time a change is made to the .ioc file and the code is regenerated the following errors show up.app_ble.c /** * Write the BD Address */ p_bd_addr = BleGetBdAddress(); ret = aci_hal_write_config_data(CONFIG_DATA_PUBLIC_ADDRESS_OFFSET, CONFIG_DATA_PUBLIC_ADDRESS_LEN, (uint8_t*) p_bd_addr); if (ret != BLE_STATUS_SUCCESS) { APP_DBG_MSG(" Fail : aci_hal_write_config_data command - CONFIG_DATA_PUBLIC_ADDRESS_OFFSET, result: 0x%x \n", ret); } else { APP_DBG_MSG(" Success: aci_hal_write_config_data command - CONFIG_DATA_PUBLIC_ADDRESS_OFFSET\n"); APP_DBG_MSG(" Public Bluetooth Address: %02x:%02x:%02x:%02x:%02x:%02x\n",p_bd_addr[5],p_bd_addr[4],p_bd_addr[3],p_bd_addr[2],p_bd_addr[1],p_bd_addr[0]); } CONFIG_DATA_PUBLIC_* needs to be changed to CONFIG_DATA_RANDOM_* case ACI_HAL_WARNING_VSEVT_CODE: { aci_hal_warning_event_rp0 *p_warning_event; p_warning_event = (aci_hal_warning_event_rp0 *)p_blecore_evt->data; U
I am trying to use the available example from software package - Microphone streaming. I Have installed audacity app, and follows the documentation related to X-NUCLEO-AMICAM1. LINK: UM2649 - Getting started with the X-NUCLEO-AMICAM1 analog MEMS microphone expansion board based on MP23ABS1 for STM32 Nucleo STEPS followed as per the document - hardware changes.4 microphone acquisition configurationStep 1. Open SB24 and SB26 to disconnect M1OB and M2OB on-board microphones from the ADCStep 2. Close SB23 and SB25 to connect M1 and M2 external headers to the ADCStep 3. Mount coupon boards on the headersCaution: Do not close SB23 and SB24 at the same time to avoid potential short circuit between M1OB on-boardmicrophone and M1 external microphone if the coupon is mounted.Do not close SB25 and SB26 at the same time: it will result in a potential shortcut between M2OB onboardmicrophone and M2 external microphone if the coupon is mounted. I cannot able to read the micro
I've added the X-CUBE_AZRTOS-WB software pack and checked all the boxes for ThreadX but the RTOS ThreadX checkbox in STM32CubeIDE is disabled. Is something else required to use ThreadX on an STM32WB? Kindes regards
HI I AM FACING ISSUE WITH TIMER SYNC WITH SAME LENGTH TIM2 MASTER ANDTIM8 SLAVE HAL_TIM_PWM_Start_DMA(&htim2, TIM_CHANNEL_4, (uint32_t *)gPWMData1, gPWMData1LastIdx); // IN THIS SAME ARRAY PWM ALWAYS GENERATED IN DMA HAL_DMA_Start_IT(&hdma_tim8_up, (uint32_t)&gPWMData2[row], (uint32_t)&(GPIOB->BSRR), gPWMData2LastIdx);//IT HAS TO BE IN SYSNC WITH TIM2TIM2 START--------UEVTIM2 (AFTER TIM2 DMA FINISH WAIT FOR DMA COMPLETION IN WHILE WE STOP IT LATENCY OCCURS)THEN TIM8STARTS-----WE HAVE TO WAIT IN WHILE FOR DMA TO COMPLETE THEN AGAIN WE START TIM2 ISSUE IS IN NORMAL DMA ABOVE IS WORKING BUT I AM REQUIRING IT IN CONTINUOUS MANNER WITHOU TCPU INTERVENTION LOOKS TO BE COMPLEX PROBLEM TO ME
Dear all,could need some advice how to continue debugging, IO am using an STM32F4- TIM1 capture compare IR enabled with highest priority (even above Time Base) - c&c callback just toggles a PIN two timesinline void HAL_TIM_OC_DelayElapsedCallback(TIM_HandleTypeDef *htim) { HAL_GPIO_TogglePin(DEBUG_PIN_GPIO_Port,DEBUG_PIN_Pin); HAL_GPIO_TogglePin(DEBUG_PIN_GPIO_Port,DEBUG_PIN_Pin); return; }- IR is called every 13us. However, sometimes the pin seams stuck for ~10us and then recovers.checking carefully, the next double toggle is also a bit late but the overall timing for the over next is fine.So looks to me that something interrupts my interrupt and delays it. But what should this be if it has already highest priority ?Any suggestions ? BR,BastelBaus
Hi all,I'm having trouble debugging using STLINK when the STM32U031C8U6 microcontroller is in stop mode or running at a low frequency clockI already tried to:enable in the STM32CubeIDE the "Debug in low power modes" option (Debug Configuration, Debugger tab)call the HAL_DBGMCU_EnableDBGStopMode() function at the begin of application. Issue #1Attached is a minimal project that reproduces the problem I'm having using the low-power timer peripheral. I'd like to use it to exit stop mode every 2 ms or every 10 ms based on some conditions, which I've simulated here with the state of a push button.The project works correctly if I use the STLINK debugger to flash the microcontroller and then disconnect it to run in standalone mode.However, I experience an unexpected behavior when running it in debug mode with STLINK debugger.The microcontroller runs at a 16 MHz HSI clock and the LPTIM1 peripheral uses an external 32.768 kHz crystal.Looking at the main() function, you can see that aft
Friends, hello, I encountered a problem with starting DWT with PRODUСT STATE = 72;I measure the time between pulses (white beam of the logic analyzer) by the EXTI5 interrupt input (falling edge of the signal), TIME_LONG_SENS = DWT->CYCCNT / (SystemCoreClock / 1000000); and then reset the counter DWT->CYCCNT = 0U; I measured the number of pulses on the generator and the number of interrupts on the input, they are equal. Then after a certain delay I control the microcontroller output to send a pulse (red and yellow beams of the logic analyzer).The problem is that after zeroing DWT in the PRODUСT STATE = 72 state,One output pulse is skipped.it does not always start and upon arrival of the next interrupt, the DWT->CYCCNT value is zero, and accordingly, the measured time is also zero.If I set PRODUСT STATE = ED, then this problem does not occur and the same code works correctly.Please tell me what my problem is and how to solve it?
Hi, I am using differential SPI communication with an STM32G474. The master sends the clock (SCLK) to the slave and data through the MOSI line. However, the slave responds on MOSI using a delayed clock (DCLK), which is derived from the master clock with some delay (DCLK = SCLK*Delay).This means the master must read from the slave using DCLK instead of SCLK. I’m sure this cannot be handled through the normal SPI peripheral.Could someone suggest a solution for this scenario?One idea I had was:Use another SPI peripheral on the STM32, configure it as a slave, and use the delayed clock (DCLK) from the slave device as the input clock to capture the return data.Would this approach work, or is there a better method? Thank you in advance
Is there an available routine? The file I need to burn is in HEX format, but I haven't been able to find any relevant sample code on the internet. Most of the materials only provide implementation schemes for burning BIN files.
hello everyone ,As i am trying to create a PCB project for my university project with stm32 MCU , at the moment i am kind of stuck in process of finding optimal filter circuit one needs to implement for optimal functioning , i have been reading through all the materials i can find and least to say there are many mixed suggestion and i also watched the stm webminar and MOOC for USB but i am even more confused, so if any one can give me link for a working project or just material that can help me implement my targetted components , any project that have implemented the suggested circuit will helpI am using M24M01 EEPROM , i want to add a USB-A port so that i can export saved files to USB thumbdrives and also add max232 module for serial communication
Greetings, I have a question about the touchsensing module. I am using a stm32u585rit6 mcu in a custom-made board and making a project using azure rtos. I needed to add touchsensing. I watched the app_azure_rtos_config.h and noticed that there is static memory allocation via threadX memory pools (#define TOUCHSENSING_APP_MEM_POOL_SIZE 5000). Then, at the app_azure_rtos.c file there is the following: __ALIGN_BEGIN static UCHAR tsc_byte_pool_buffer[TOUCHSENSING_APP_MEM_POOL_SIZE] __ALIGN_END; static TX_BYTE_POOL tsc_app_byte_pool; if (tx_byte_pool_create(&tsc_app_byte_pool, "TOUCHSENSING App memory pool", tsc_byte_pool_buffer, TOUCHSENSING_APP_MEM_POOL_SIZE) != TX_SUCCESS) { /* USER CODE BEGIN TOUCHSENSING_Byte_Pool_Error */ /* USER CODE END TOUCHSENSING_Byte_Pool_Error */ } else { /* USER CODE BEGIN TOUCHSENSING_Byte_Pool_Success */ /* USER CODE END TOUCHSENSING_Byte_Pool_Success */ memory_ptr = (VOID *)&tsc_app_byte_pool; status = MX_TOUCHSEN
HiThe normal behavior of the division lines and labels of the graphs are that the they are placed at the integer multiples of the interval set for the widget. If the offset on the axis are zero, it will off cause be the most obvious solution.But in our application we got up to three curves in the same chart solved by placing multiple graphs on top of each other as the have different units on the axis. Only one of the Y-axis starts at zero and the divisions are therefore defined by this.But as the two other graphs has offset not in the division interval, the labels are not placed at the division lines. They are placed in an integer multiple of the interval. And that does not look good. Of cause I could disable the labels created from the graphs, and place them manually using text areas. But is there a solution to offset the location of the labels (and there values) and the division lines?Examples. This is what is possible: (Of cause I can use the right interval, but then the min/ma
Hello.I'm trying to launch a minimal LoRaWAN project. CubeMX version 6.15.0. When using MSI RC clocking, the module works without issues. When attempting to use the TCXO, the module starts, packets are successfully transmitted to the server, but are not received (IRQ_RX_TX_TIMEOUT error). In the "LoRaWAN Middleware / TCXO Support" settings, it displays "TCXO not available," and no other options are present.Part of the code from the SystemClock_Config initialization function:RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_HSE|RCC_OSCILLATORTYPE_LSE; RCC_OscInitStruct.HSEState = RCC_HSE_BYPASS_PWR;Attaching screenshots of the settings.
The STM32F107Vx has 2 CAN interfaces.In the TRM RM0008 Rev 21 dated February 2021 on page 115 I can only find one entry to enable the CAN clock, bit 25. What CAN clock does this bit enable? CAN1, CAN2 or both? Or does the reserved bit 26 enable CAN2 and bit 25 CAN1?I could not find any additional information (documentation) answering these questions. Died I miss something?regards, Felix
I created a custom STM32 board for a motor controller, but I am having trouble even programming it using the STLink V2. I am using the STM32C071KBT6N MCU that I purchased from Mouser. I soldered it onto my board using drag soldering. I soldered other components near it with hot air.I have tried to power the board through an external 3.3V power supply and through the STLink itself.This STM32 model has the same pin for PA14-BOOT0 and SWCLK. But I just directly connected the pin to the header for STLink V2. I also do not have an external crystal oscillator to connect because I wanted to keep it simple and just use the internal clock.I get this error in STM32 Cube Programmer.And these are the settings I am currently using.I have tried different combinations of settings and have held the reset button down, but I still end up with the same error.I am not sure if something is wrong with my design, the chip that I received was bad, or I somehow destroyed the chip while soldering.I ho
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.