Join conversations with your peers and ST experts. Explore the full potential of STM32 microcontrollers for your embedded design.
Most recent activity
Hello Sir,I would like to request your guidance regarding the use of an STM32F103 microcontroller as an ST-LINK programmer. I have already flashed a bootloader HEX file intended for ST-LINK functionality into the STM32F103 device. However, I would like to confirm the following points: Is any additional driver, firmware, or configuration file required on the PC side or MCU side to make the STM32F103 work properly as an ST-LINK programmer? Is the flashed bootloader alone sufficient, or are there any specific steps or tools recommended by ST to complete the setup? Could you please provide or point me to the official/original ST-LINK bootloader or firmware source for STM32F103, if available? Are there any reference documents or application notes that explain this implementation in detail? Your support and clarification on this matter would be highly appreciated. Thank you for your time and assistance.
Edited by a ST moderator: Please use English language in this community. Thank you ボードは、STM32F746G_DISCOを使用しています。タッチTouchGFXデザイナーにて、データ増減用のボタンを作成し、ボタンクリックでデータを増減する様なソフトウェアを構築しましたが、ボタンクリックに対して反応が遅い現象が出ています。ボタンのクリックに対して、GUI上のボタンは、反応していますが、ソフトウェア上の処理がなされない事が多い現象が出ています。どの様な原因が考えられるでしょうか?お教えください。よろしくお願いいたします。 Translation: I am using the STM32F746G_DISCO board. I created buttons for increasing and decreasing data using TouchGFX Designer, and built software that increases and decreases data with button clicks. However, I am experiencing a slow response to button clicks. The buttons on the GUI respond to button clicks, but the software often fails to process them. What could be the cause of this? Please let me know. Thank you in advance.
Hello everyone,I am currently trying to integrate TouchGFX into an existing STM32 project (an FDCAN master node application), and I am facing several issues.I enabled the TouchGFX generator in STM32CubeMX and configured all required peripherals (LTDC, FreeRTOS, DMA2D, OSPI/HyperRAM, clocks, etc.).I also adjusted the clock configuration to match the display timing.However, after flashing the application, the screen remains completely black.Nothing I have tried so far has made any difference.I have now discovered that the thread I created for the TouchGFX task is never executed, and I have not been able to find the root cause of this.Any hints or guidance would be greatly appreciated.int 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 */ /* Conf
Is it possible to re-trigger HAL_TIM_DMABurst_MultiWriteStart() from software? Currently it works only once (the first time) for me. Using TIM1 freq/duty-cycle:HAL_TIM_DMABurst_MultiWriteStart( &htim1, TIM_DMABASE_ARR, // Base = ARR TIM_DMA_UPDATE, // Trigger = update event (uint32_t*)rampBurst, // Source buffer TIM_DMABURSTLENGTH_3TRANSFERS,// ARR + RCR + CCR1 N_STEPS*3 // Number of bursts ); __HAL_TIM_ENABLE_DMA(&htim1, TIM_DMA_UPDATE);This produces a duty-cycle and frequency change over a certain amount of time, let's say 10ms, after the 10ms, I would like to disable the PWM output by setting the duty-cycle to 0:__HAL_TIM_SET_COMPARE(&htim1, TIM_CHANNEL_1, 0);Then, I would like to re-trigger this each 100ms from software. My DMA setting is set to "Normal". The value of RCR is always 0 in the rampBurst array.
I have studied using the STM32F429I-DISC1 board with TouchGFX and can already implement buttons, LEDs, and ADC. However, I have a project that requires using a different LCD that uses the SSD2119. Can I directly replace the LCD, or are there additional parts of the code that need to be modified? Please guide me.
I use the touchGFX to design a UI interface and have a serial issue for the distortion ,the format of picture is PNG with alpha ,color depth is 32 bit ; Even if i set the parameter on the touchGFX designer as RGB565,no either, alpha is true or ARGB888, no either, alpha is true , the real display effect with the 2.8 inch TFT LCD is not so good as following picture that i have no idea to improve this issue,by the way, the whole frame of LCD window is good to be displaied with R,G,B,white, black;
I am using an STM32H755ZQ device and unable to start a debug session using STM32CubeIDE + ST-LINK (SWD).The system uses two STM32 controllers, where firmware is flashed to one controller and data is shared/communicated to the second controller.Debug fails with errors like DEV_TARGET_HELD_UNDER_RESET and GDB connection timeout (localhost:61234).Even with Connect under reset, low SWD frequency, and full chip erase via STM32CubeProgrammer, the issue persists.Looking for guidance on whether inter-controller communication, reset interaction, or H755-specific debug/security settings could block debugging.
Hi,I'm working on a new design using a STM32H523VET6 in which we want to use USB host & device functionality. Whether the board should function as a host or device is determined when it is switched on and will not be changed during operation.As far as I understand I don't need an external crystal for both modes host & device? But what I don't understand is how to configure the clock recovery system CRS. Do I need the SOF signal, but this seems only available when in device mode.So my questions are:1. Is it true that I don't need external crystal for USB host & device modes?2. What is needed from clock recovery system SRS (SOF signal...)?Thanks,Roger
Hi,How can one calculate the maximum phase current of a BLDC motor using sinusoidal control with the nominal voltage and power of the motor?I have a 36 V / 560 W motor.Is the peak current equal to:560 W / 36 V * SQR(2) = 22 Aor beacuse of the star topology of the motor:560 W / 36 V / SQR(3) * SQR(2) = 16.33 AI need this to select the proper FETs.Thanks!
I'm using ADC with DMA in a large project, and faced some very strange problem: If I'm using DMA2 Channel 6 - ADC works correctly If I'm using DMA2 Channel 1 - the SW end up in Hard Fault The configuration is default. This is how I start the conversation HAL_ADCEx_Calibration_Start(&hadc1, ADC_SINGLE_ENDED); // Start the ADC in DMA mode HAL_ADC_Start_DMA(&hadc1, (uint32_t*) g_ADC_values, ADC_BUFFER_LENGTH);
Dear, I'm using a STM32G0B0RET6 as MCU and I encouter a bug on GPIO external interrupt specifically on PC14. Configuring as external IT on rising edge, it works correctly and the interrupt is generated only on rising edge.Configuring as external IT on falling edge, an interrupt is generated 2 times, 1 on falling edge and 1 on rising but both call the HAL_GPIO_EXTI_Falling_Callback callback.Configuring as external IT on falling and rising edge, an interrupt is generated 3 times (consistent with previous configurations).Configuring this pin (PC14) as external interrupt on falling edge generates a falling interrupt on rising edge.(I precise I checked EXTI registers and they are correctly configured) If I do same tests on PC13, all work correctly. ITs are generated in accordance with the configuration. A workaround is to the check the state of this pin in the interrupt callback but it seems to be a bug. (and I saw nothing in the errata sheet)
Hi, in this STM32L4Q5RGT6 microcontroller of (LQFP48) package how many SPI, QSPI should be connected.
Hello,I’m working on a project with the NUCLEO-H753ZI board and need to connect multiple devices. I’d like to know:1. How many GPIO pins are 5 V-tolerant for digital input?2. How many GPIO pins are available for general use, both 3.3 V-only and 5 V-tolerant, considering the board’s default peripherals?I want to make sure I safely use the MCU’s GPIOs for my inputs and outputs. Any guidance or reference resources would be appreciated.Thank You!
Hi ST teams,Currently we use the ScrollList widget to show up to 2000 items and list item is not same properties for all, I have create the custom container to support item can show one of two layout: date title and item info like image bellow: To able detect and show list item with correct layout I have save the item info to list item and detect scroll up/down behavior follow the itemIndex callback from void HistoryView::scrollListUpdateItem(HistoryItem& item, int16_t itemIndex) if itemIntex > oldItemIndex then scroll is down else is up. With detected behavior and item info from last updated list item I will know what is next info index need to get and add to list item. I can show correct the ItemInfo or DateTitle from list if do scroll to list with slow speed. There are problem when I scroll faster the itemIndex is intermittent change:You can see on the image, the next item afte
Hello I am forced to erase the entire flash page when I write into an address of the flash page. Why is that? I have never used this page... I understand that if the flash has been already used, it cannot be rewritten... but why when the page is always '1'?Thanks a lot. Edit 1:UsageFault: An instruction executed with an invalid EPSR.T or EPSR.IT field. UsageFault: The processor has attempted to execute an undefined instruction. MemManage: The processor attempted a load or store at a location that does not permit the operation. MemManage: The processor attempted an instruction fetch from a location that does not permit execution. HardFault: A BusFault has occurred on a vector table read during exception processing.
I'm using a stm32G0 with a UCPD and i'm trying to figure out if the Dead battery pin have any other benefit then just saving the need for 2 resisters on the board. From my understanding i could create the same functionality of the dead battery pin by just connecting the CC lines to ground with a 5.1K resister.
I have configured the comparator 2 PB6 on the STM32G071RB Nucleo board. It is configured for rising edge interrupt. As soon as HAL_COMP_Start is called on the COMP you can see the EXTI rising edge interrupt flag immediately go high. (well not immediately, it happens when HAL_COMP_Start is in its startup wait loop so presumably as soon as the COMP peripheral physically starts up.) This happens even if I change it to falling edge but I guess that should be expected. but certainly not reliably both!It seems that this is how the MCU works as I can't find any obvious mistakes in the LL or HAL driver startup function. I have seen several posts to this effect over the last 4-5 years with 1 to 2 replies but no solution. I think the reference manual needs to mention that this will happen as it seems to be an MCU behavior. Is it only the G0?The COMP output also triggers. But the input does not move. My guess is that when COMP is activated the initial value of the negative input
I have an STM32F4227 that identifies its USB port to a host PC and all information looks correct but no data is sent or received. Looking with the debugger the microcontroller is running task scheduler but does not recognize messages being sent. Is there a register i should be looking at to determine if the USB interface is indeed operating correctly? That it would identify itself but not be able to detect any messages?
During RTC init when RTC_EnterInitMode is called a unit sets the INIT bit of the RTC_ISR register in the HAL but when it waits for the bit set to respond it times out with the bit never being set. I have run this same firmware on hundreds of other units with no issue. If the INITF does not set is it likely due to an internal issue of the microcontroller?
Hello,I am working with an STM32H573 and I would like to implement OEMiROT.Is it possible to use OEMiROT without activating TrustZone on this device?If it is possible, is there an official or recommended ST method?Any clarification or pointers to documentation or real-world implementations would be appreciated.Thank you.
Hello STM Community,I am facing a GPIO output issue on the STM32 NUCLEO-WL55JC2 board and would like some clarification.Test case:I am using the following line of code to set a GPIO pin HIGH: HAL_GPIO_WritePin(GPIOA, GPIO_PIN_0, GPIO_PIN_SET); // LED ON Observation on different boards: NUCLEO-F446RE:Same code used.GPIO pin goes HIGH correctly.External LED connected to the pin turns ON.Multimeter shows ~3.3 V on the pin. NUCLEO-WL55JC2:Same code used.Code flashes successfully, no errors.GPIO pin does not show any voltage when measured with a multimeter.External LED connected to the same pin does not turn ON.Onboard LEDs (LD1, LD2, LD3) work correctly.GPIO configuration:Pin configured as GPIO Output (Push-Pull) in CubeMX.No alternate function selected.No pull-up or pull-down enabled.Board powered via USB.STM32CubeIDE version: v1.19Key concern:Even after calling HAL_GPIO_WritePin(..., GPIO_PIN_SET), the GPIO pin on NUCLEO-WL55JC2 does not show 3.3 V,
Hello,I want to use the STLink-V3PWR and OpenOCD in SWD mode. I can just use hla_swd as transport and not SWD otherwise I will get the error "Debug adapter doesn't support 'swd' transport". Is there no possibility to use SWD?BR
Code Order :1、HAL_FMAC_FilterPreload_DMA。2、HAL_FMAC_FilterStart。3、HAL_FMAC_FilterStop。4、HAL_FMAC_FilterStart。5 HAL_FMAC_AppendFilterData i want ask ,does Fmac X and Y buff will clean when step3: HAL_FMAC_FilterStop function excute ?
Hi,I am working with STM32G491RET6 and currently implementing the ADC. I have a question regarding the ADC reference voltage.If the external 3.3 V supply is removed from the VREF+ pin and VREFBUF is disabled, does the ADC operate using any internal reference voltage, or will the ADC readings be invalid?Could someone clarify how the ADC reference behaves in this case?
I am using STM32G491RE - NUCLEO.Similar to this post - ( https://community.st.com/t5/stm32-mcus-products/reading-data-with-brs-on-fdcan-line/m-p/745625#M266951)I implemented the function of receiving and transmitting data from the FDCAN line.I configured my FDCANs with BRS mode everything works fine, the only change that causes errors is when I switch TxHeader.BitRateSwitch = FDCAN_BRS_OFF to ON. Then the FIFO fill up like the chip is not receiving ACK with just this change.int main(void) { ..... MX_FDCAN2_Init(); FDCAN_Config(); while (1) { while (HAL_GPIO_ReadPin(BTN_GPIO_Port, BTN_Pin) == KEY_PRESSED) { ...... if (HAL_FDCAN_AddMessageToTxFifoQ(&hfdcan2, &TxHeader, TxData) != HAL_OK) { uint32_t psr = hfdcan2.Instance->PSR; Error_Handler(); } HAL_Delay(10); } }} static void MX_FDCAN2_Init(void) { hfdcan2.Instance = FDCAN2; hfdcan2.Init.ClockDivider = FDCAN_CLOCK_DIV1; hfdcan2.Init.FrameFormat = FDCAN_FRAME_FD_BRS; hfdcan2.Init.Mode = FDCAN_MODE_NORMAL;
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.