Join conversations with your peers and ST experts. Explore the full potential of STM32 microcontrollers for your embedded design.
Most recent activity
../Middlewares/ST/touchgfx/framework/include/mvp/MVPApplication.hpp:22:10: fatal error: new: No such file or directory how to solved this? cubeide 2.0.0 GNU Tools for STM32 (14.3 rel1)
In the linker script provided by STM for STM32G474RETx, the memory section is:MEMORY { CCMSRAM (xrw) : ORIGIN = 0x10000000, LENGTH = 32K RAM (xrw) : ORIGIN = 0x20000000, LENGTH = 128K FLASH (rx) : ORIGIN = 0x8000000, LENGTH = 512K } But in the reference manual RM0440 section 2.4 page 88 it states that:Category 3 devices feature up to 128 Kbytes SRAM:• 80 Kbytes SRAM1 (mapped at address 0x2000 0000)• 16 Kbytes SRAM2 (mapped at address 0x2001 4000)• 32 Kbytes CCM SRAM (mapped at address 0x1000 0000 and end of SRAM2)I'm confused as to why the RAM is declared as 128K when that's the combined total of SRAM1 + SRAM2 + CCMSRAM, and there's also CCNSRAM declared separately. Is it so that RAM covers all SRAM but you can also place specific things in the CCMSRAM section?
Hello, I've to receive three continuous signals from the channels like x,y and z through ADC's. For receiving those three channels i used 3 separate ADC's like ADC1,2 and 3 for X,Y and Z respectively. The X data is coming at the rate of 8.2ms But the Y and Z data's are coming at the rate of 16.02micro seconds. By using three different adc's for receiving these values and how can i store it in a DMA Buffer. By the way i tried so many methods like TRGO Timer interrupt for every 3.2micro seconds to trigger the ADC to sample and store the data. First i tried by taking only one adc and connected the Y signal, even though so many samples were missing in between. Assume like i've to receive 0-4096 kind of data's. But i'm receiving like 512,514,517,912,978,946,1233,1242,1256... This is the format i'm reading the data from my DMA buffer from live expressions option.In ADC Configurations, I've tried with enabling the Continuous mode by setting it as enabled and disable. The data is not coming in
I am using STM32H750B-DK (DK32H750BSAT1). Following st tutorial in:https://www.youtube.com/watch?v=dx7xHRH9YXg The project built and ran successfuly on the board. Unfortunately upon implemeentig the updateDate on a textArea the update stopped completely for both time (was originaly uopdating before adding the text widget) and date. I have then deleted the textArea widget and commented out the relevant lines in the script, the update returned normally. I suspect the typogrphies is the root cause of the problem (I need advise on that. MyGFX is 4.26.0 , I couldn't get my way around Texts smoothly).
Hello Folks,I am facing an issue while controlling a BLDC motor using the STEVAL-ESC002V1 board. ST provides a reference firmware for this board which includes the 6Step Library for motor control. The firmware exposes functions such as:MC_StartMotor()MC_StopMotor()MC_Set_Speed()According to the documentation, these APIs should allow setting and controlling the motor speed.I had paste the code which is written by me in main while loop. (For Reference)ISSUE:1. when the val(ADC value) goes above the 300, still the MC_StartMotor(), is not getting enable. Motor didn't run.2. If I make changes into my code, delete by everything in the while loop and just try to run the motor at 10000rpm, by function MC_StartMotor() and MC_Set_Speed(10000).As result of it as motor make a sound and vibration, not working smoothly.hey it would be helpful to me, if someone help me to resolve this issue./* Includes ------------------------------------------------------------------*/ #include "main_32F0.h" #includ
Hello,WORKING ON : STM32H753I am looking to implement a jump from one application to another on an STM32H7 (Cortex-M7), so that the new application starts as if the microcontroller had just been reset: MSP initialized, VTOR set, caches (and MPU maybe?) correctly managed, peripherals reset, SysTick and IRQs disabled.Knowing that my APP1 is a custom bootloader at address 0x08000000 and my APP2 is my main application with lots of peripherals, timers, DMA, etc. at address 0x08020000.I tried many sequences to make a jump without crashing.My jump from APP2 (app) to APP1 (bootloader) seems to work without bugs: //disable interrupts __disable_irq(); //disable Systick SysTick->CTRL = 0; SysTick->LOAD = 0; SysTick->VAL = 0; //deinit HAL_RCC_DeInit(); HAL_DeInit(); // __enable_irq(); // vide cache SCB_DisableICache(); SCB_DisableDCache(); __DSB(); __ISB(); // je définis ma table des vecteurs au début de mon IAP donc à IAP_ADRESS (0x08000000), ave
Hi there,I have a DIY board similar to EVSPIN32G4. Below is the three-shunt sensing circuit(In internal OpAmps, differential, external gain mode)Because the STSPING4 doesn't support internal OpAmps, differential, external gain mode, I just use the below config to generate the project(seems differential or single-end does not influence the code, yes?), see the project in the attachment: And because the EVSPIN32G4 project's encoder and hall sensor use the same GPIO, I only enable the encoder in the MCSDK project.After generating the code, I added the hall signal pin in STM32CubeMx and then compiled the MDK project successfully.I added some code trying to find out why the motor isn't working:uint8_t MC_GetHallValM1(void) { uint8_t M_Hall_val; M_Hall_val = (M_Hall_val & 0xFE) | HAL_GPIO_ReadPin(M_HALL_U_GPIO_Port, M_HALL_U_Pin); M_Hall_val = (M_Hall_val & 0xFD) | (HAL_GPIO_ReadPin(M_HALL_V_GPIO_Port, M_HALL_V_Pin) << 1); M_Hall_val = (M_Hall_val & 0xFB
My nucleo f303re board was connected via USB but I was using a resistor around 2.2kohms to 5V. This was fine though and it functioned as normal but when I disconnected the pins on the MCU to move it, reconnecting it back resulted in nothing. While troubleshooting, I realised that if I connected the USB cables to the MCU's usb pins, device manager was showing an unknown usb device even without any resistors in place. This did not happen before while it was working and I realised this was due to PA12, DP, which was the pin pulled high, is now constantly at 2V when the MCU powered on. Now I am not sure if this is normal but I am quite confident in saying that this is not normal and is the reason this is not working anymore. If it's helpful, I know PA12 is at 2v because I measured this with a multimeter. I suspect that whatever I had done cause damage to PA12 and the usb board is fried. Is this theory wrong or is there no hope for this board. Perhaps there is a way to use other pins f
Hello there I am struggling with receiving interrupts on my microcontroller project. I am currently developing a CAN bus logging device; the following code therefore sets up the CAN peripheral in silent mode. I test my device in a CAN network with two other devices that are constantly communicating with each other. I have verified that the CAN messages appear at the CAN Rx pin of my MCU using an oscilloscope.However, my CAN Rx interrupts won't fire. I tried some fixes from other posts, but unfortunately, neither of them worked for me. My setup is as follows:>> MCU: STM32L432KCU>> CAN receiver ISO1044BD>> Vdd = 1.8 V (the MCU and the CAN transceiver are both running on this level).>> IDE = CubeIDEHave any of you ever had to tackle this problem?## Here is the can.c file that was automatically generated by the CubeIDE, in which you can see the CAN initialisation. /* USER CODE BEGIN Header */ /** ************************************************
Hello Yes here we go again… I’m again busy with the implementation of PTP slave inside STM32H7, based on this GitHub: https://github.com/hasseb/stm32h7_ptpd I tried to port this to my own project based on STM32H7, I changed what was mentioned in the readme. And look inside the helper files to modify the necessary HAL stuff. After all this, everything is compiling, but it doesn't work… My setup: PTP master is Magwell Pro Convert AES67 and act as master, this master is sending all the necessary packets on the ethernet. Checked with Wireshark. When I run the PTPD in slave mode I get this output: (V) handle: something (d 1162345242.829138544) handle: ptpd_net_recv_event returned 0 (d 1162345242.834921492) handle: ptpd_net_recv_general returned 44 (d 1162345242.840950789) handle: unpacked message type 8 (d 1162345242.846096992) handle_followup: received in state PTP_UNCALIBRATED (d 1162345242.853011945) ptpd_servo_update_offset (V) ptpd_servo_update_offset: ingress_timestamp 875418629 secon
I have designed a board with STM32H750B-DK With exact same pin configuration with QSPI amd SDRAM connected exactly to the reference board.QSPI is running properly by viewing using STM CUBE Programmer (External loader selected)But when I am using touchg GFX sample code it gives Hardfault error I believe that SDRAM is failing. (I have removed the touch screen routine to check the flow of code)
Hello, I have a project using the spirit MP3 Decoder. I am in the process of moving this project over to a FreeRTOS based project using the STM32F411. FreeRTOS only supports hardware floating point for this chip and the spirit MP3 decoder is provided as a library only supporting software floating point. What is required for me to get a new build of the Spirit MP3 deocder re-compiled supporting hardware floating point?Can ST provide this re-compiled library?ThanksStuart
I have STM32H753I-EVAL2 board and I want to set it up as an USB Speaker device. I see 3 protect that can make this as such, which are:NameBoardBoard TypeSTM32CubeMX VersionSW Package InstalledUx_Device_Audio_2.0STM32N6570-DKNucleo-64NATRUEUx_Device_Audio_2.0_StandaloneSTM32N6570-DKNucleo-64NATRUEUx_Device_Audio2.0_PlayBackSTM32H743I-EVALNucleo-646.15.0TRUE Two things...1) I don't want RTOS, but STM32H743I-EVAL has RTOS, and the one I'm looking for is on the wrong board. So... What advantage do I have using RTOS? Can I use the Standalone one and change the board somehow in the code? I haven't done much comparison to know, I've been overwhelmed trying to understand the organization of the project. 2) When I do download, install and run the Ux_Device_Audio2.0_PlayBack anyway, the program is running. I see the USB being enumerated as a speaker on my laptop. Issue is, everything is fine, but when I try to play an audio, it runs into a fault -- > `void HardFault_
Split from this thread. Actually, I have jitter in TIM1 PWM. Is there any way to decrease jitter?
we are observing with the RTC (Real Time Clock) on the STM32L496ZG in our project. kindly help us to resolve this . The code gets stuck on power-on . Below are the details and what we have tried so far:1. Summary of the IssueAfter a full powering on, while debugging the code code get stuck in systemclockconfig() function. The issue occurs only on power-on with some hardware only and with same version of hardware its working correctly. 2. Hardware / System DetailsMCU: STM32L496ZGRTC clock source: (external crystal of 32.768KHz oscillator with 10pF capacitors used)On VBAT pin its 3.2v battery cell is usedwe uses below function for initialization : void SystemClock_Config(void) { #if 1 //og RCC_OscInitTypeDef RCC_OscInitStruct = {0}; RCC_ClkInitTypeDef RCC_ClkInitStruct = {0}; /** Configure the main internal regulator output voltage */ if (HAL_PWREx_ControlVoltageScaling(PWR_REGULATOR_VOLTAGE_SCALE1) != HAL_OK) { Error_Handler(); } /** Initializes
According to RM0433 Rev 8:The Run* mode is entered after a POR reset and a wakeup from Standby. In Run* mode, the performance is limited and the system supply configuration shall be programmed in PWR control register 3 (PWR_CR3). The system enters Run mode only when the ACTVOSRDY bit in PWR control status register 1 (PWR_CSR1) is set to 1.andAs long as ACTVOSRDY indicates that voltage levels are invalid, the system is in Run* mode, write accesses to the RAMs are not permitted and VOS shall not be changed.Now, the startup code first jumps (bl ExitRun0Mode) to the C function `ExitRun0Mode()` which probably might involves writes to stack.Is this construct (calling a C function from ASM) just relying on the compiler not touching the stack or am I'm reading the docs wrongly?best regardsTorsten
Hi,I've installed the CubeIDe rel 2.0.0 and the CubeMX rel 6.16.0; when I build my project this error appears: undefined reference to `ExitRun0Mode'. May you help me ? Thank you, CarloV
Hi everyoneI use STM32G030. I'm gonna set the clock system to HSE on the External crystal, but I couldn't find the proper RCC_OCS_OUT.What are the MCU's crystal correct pins?Please help me set the correct pinout.Thank you
Hello ST,I would like to report a bug in the <stm32g4xx_hal_dma.c> file (V1.2.5). In the function DMA_CalcDMAMUXChannelBaseAndMask(DMA_HandleTypeDef *hdma), there's an error in calculating hdma->DMAmuxChannelStatusMask. For DMA2 channels, the channel_number should be adjusted by adding 8, 6, or 7 according to the MCU category. Otherwise, it will NOT be able to correctly determine and clear the synchronization overrun interrupt of the corresponding channel.To give you a better understanding of the issue, I've included some relevant code snippets with comments at Line 32 below:/** * @brief Updates the DMA handle with the DMAMUX channel and status mask depending on stream number * @PAram hdma pointer to a DMA_HandleTypeDef structure that contains * the configuration information for the specified DMA Stream. * @retval None */ static void DMA_CalcDMAMUXChannelBaseAndMask(DMA_HandleTypeDef *hdma) { uint32_t dmamux_base_addr; uint32_t channel_number; DMAMUX_Channel_TypeD
Hello Everyone, I would like to get recommendations for STM32 development kits that have at least 3 DACs with their 3 independent outputs exposed, preferably a newer kit that can run an RTOS (not Linux). The faster the better. Thank you!
I have fitted an 8MHz crystal with 8.2pF capacitors to the NUCLEO-L433RC-P development board, but it is not working.The software goes to an error handler when configuring the clocks, becuase of a time out iduring the function HAL_RCC_OscConfig (wait till HSE is ready)... /* Set the new HSE configuration ---------------------------------------*/ __HAL_RCC_HSE_CONFIG(RCC_OscInitStruct->HSEState); /* Check the HSE State */ if(RCC_OscInitStruct->HSEState != RCC_HSE_OFF) { /* Get Start Tick*/ tickstart = HAL_GetTick(); /* Wait till HSE is ready */ while(READ_BIT(RCC->CR, RCC_CR_HSERDY) == 0U) { if((HAL_GetTick() - tickstart) > HSE_TIMEOUT_VALUE) { return HAL_TIMEOUT; } } } The part numbers for the crystal and capacitors are below...Crystal: CG04874-8Mhttps://www.ndk.com/en/products/upload/lineup/pdf/NDKX03-00009_en.pdfCapacitors: KGM05ACG1H8R2CHhttps://datasheets.kyocera-avx.com/C0GNP0-KGM.pdfThe clock configuration is below...The board mod
Hello,I can't setup DCMI DMA in cubeMX because in DMA list there is no available handle, then I choose DCMI interface in DMA list is enabled DCMII_PSSI request, but there is no handle, all handles is inactive, how to setup ?
I have a Nucleo-L476RG and Nucleo-IKSO1A3. What software will I need to run examples on expansion bd sensors ?Anyone have old version of Unicleo-GUI ?version 1.10.XXX possibly? The new version does not show MEMSWhere can I find software that has these examples?"Please note that the X-CUBE_MEMS1 function pack contains examples for the NUCLEO-L476RG + the X-NUCLEO-IKS01A3 in the folder \Projects\STM32L476RG-Nucleo\Examples\IKS01A3."If not possible then which STM32 boards will work with IKS01A3 in MEMS Studio and Unicleo-GUI latest versions?
Hello. I'm using STM32H747XI with touchgfx designer 4.24.2 and Free RTOS 10.3.1. In this RTOS I setup some threads(with osPriorityNormal 24) and a Periodic Timer at 400ms. I notice that when I start this thread void threadEntryPoint() { // Pulisco la FIFO del'RX USART __HAL_UART_FLUSH_DRREGISTER(BARCODE_UART); char msg[BARCODE_LENGTH+1]; while (;;) { memset(msg, 0, sizeof(msg)); // Appena vedo il primo carattere ... if ( HAL_UART_Receive ( BARCODE_UART, (uint8_t*)&msg[0], 1, 50 ) == HAL_OK ) { // ... ricevo gli altri HAL_UART_Receive ( BARCODE_UART, (uint8_t*)&msg[1], BARCODE_LENGTH - 1, 50 ); if (strchr(msg, BARCODE_SUFFIX)) { queue.put(msg); } } } } Timer will not trigger. Is the reason that I have no osDelay ? Or a priority question ? Thankyou in advance.
Dear ST Support,I have two questions regarding the STM32H7S78-DK board.1. Is it possible to retrieve the original factory application that comes preloaded on the STM32H7S78-DK? I’ve already flashed my own project, but as expected, this process erased the factory-provided firmware.2. I tried programming the board using a BSP example selected via STM32CubeIDE’s Example Selector. However, the IDE fails to upload the example to the board. A pop-up briefly appears and then disappears, with no further feedback. Even when the board is disconnected, STM32CubeIDE doesn’t display any error or warning that the board is not connected.Interestingly, when I run my own project, everything works as expected. The board is correctly flashed, and when it’s disconnected, I do receive the expected “ST-LINK not detected” message.Best regards
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.