Join conversations with your peers and ST experts. Explore the full potential of STM32 microcontrollers for your embedded design.
Most recent activity
Hi, I am working on NUCLEO-H743ZI EVK to test the secure boot using X-CUBE-SBSFU-v2.7.0 package. I have successfully uploaded the boot image at the location 0x8000000 address and i have uploaded the userapp.sbf file using tera-term tool. I have followed the user manual of Getting started with the X-CUBE-SBSFU STM32Cube Expansion Package - User manual for all my set up. And now i just want to erase the flash memory using stm32cubeprogrammer tool but am unable to flash the normal led application after erasing. Please look into the images mentioned below for your reference. 1. The below error is coming when uploading the basic led example. Error: Failed to read memory at address 0x08000000 during verification Error: Download verification failed 2. Settings of RDP and Boot Option Bytes 3. Settings of write protection 4. Settings of ST-LINK connection 4. The below image is my first uploaded userapp A. Please guide me on how to erase the flash memory fully using programme
Hi,It is not an issue with ST software but wanted to clarify, my application requires different modes with speed limitation in each mode, to do that i have started controlling the CircleLimitationM1.MaxModule parameter in torque control mode which is the modulation index. Is it ok? since as of now i only used to control the Iq parameter but speed i could not regulate with Iq. I was successful in controlling the RPM but i want confirmation that it is ok to alter the maxmodule parameter as per the requirement, i am changing this in run time.
Hi!I have no problem with writing, reading, or erasing with dual mode, but erase stops working as soon as I change the DBANK option byte to "Single bank mode" (Uncheck it).I assume there is something i need to change in the STM32G4XX files as well, because DBANK is always defiend:I have tried to search on my own, but have not found any solution. Out of the 2 relevant hits I found online, one did not work and the other seems to be unverified and not easy to testThis is my code, which simply calls "stm32g4xx_hal_flash.c" and "stm32g4xx_hal_flash_ex.c" functions if(HAL_FLASH_Unlock() == HAL_OK) { uint32_t PageError; if(HAL_FLASHEx_Erase(&pEraseInit, &PageError) != HAL_OK) { HAL_FLASH_GetError(); } while(HAL_FLASH_Lock() != HAL_OK); } Anyone have any suggestion?Thank you in advance
Hello, ST experts STM32F407 is used on our system. PE7 is configured as an EXTI pin for both rising and falling edge. How can I accurately recognize which edge is the cause of this interrupt? Because there maybe a narrow glitch on PE7, so reading GPIO state on interrupt routine may not be a good way. Best RegardsYang
Hello, dear.I am working with Nucleo-H753ZI board to implement USB in - SAI out streaming. My goal is USB input to SAI output audio streaming for sample rate 48k and 44.1k.input condition is 44k or 48k, 16bit, 2channel, output condition is 44k or 48k, 32bit, 2channel. I am attaching my project and its files : usbd_audio.c, usbd_conf.h, usbd_audio.h are fixed for my purpose.It is recognized in PC as selectable audio driver and its SAI FS Frequency follows sample rate.When setting is 48k sample rate, it sounds well,But 44.1k sound is not right pitch and speed.I don't know which is the problem. Please let me know my problem and how can fix it.Thank you. From SK Son.
I was finishing a project that does the job of hi-speed polling from a SPI interfaced IMU chip, the frequency is about 5Khz, I know that this could be done by start a DMA transfer by software in the hardware update interrupt. But now I'm searching for a faster solution. Since the interrupt may take a very small period, when the amount of sensor chip or polling frequency increases, the whole cost of context switch may be a problem.I'm asking that is it possible to use a timer update event to trigger a DMA transfer without using any interrupt (at least, don't trigger the interrupt every time when a poll finishes).There was a blog that I read says that change the request source could do this job, what he means actually looks like the code below: hdma_spi1_tx.Instance = DMA1_Channel6; hdma_spi1_tx.Init.Request = DMA_REQUEST_TIM2_UP; hdma_spi1_tx.Init.Direction = DMA_MEMORY_TO_PERIPH; hdma_spi1_tx.Init.PeriphInc = DMA_PINC_DISABLE; hdma_spi1_tx.Init.MemInc = DMA_MINC_ENABLE; hdma_spi1_
Hello,I am using the EVLSERVO1 board and trying to monitor the DAC outputs with an oscilloscope, since the high-frequency plots in Motor Pilot are difficult to use effectively. I enabled DAC Debug in the FOC Wizard, assigning DAC Out 1 to PA4 and DAC Out 2 to PA5. After doing this, I checked CubeMX and confirmed that these pins are configured correctly.According to the EVLSERVO1 schematic, it looks like I should be able to connect the oscilloscope probes to pins 8 and 5 on the J2 connector. However, when I select a variable to output to the DACs from within Motor Pilot, I see no signal on the scope, just noise.Is there anything else I need to configure to get the DAC output working?Thanks
I'm reading through the documentation for dynamic bitmaps to figure out what file formats I should use to bring images off of an SD card for display.I see in:https://support.touchgfx.com/docs/development/ui-development/scenarios/loading-images-at-runtimethe code reads in a .jpg and uses the attached BMPFileLoader code to put it on the display.Really? Does that work? Should that be a .bmp file?Static bitmaps use .png format, is there a dynamic bitmap loader for .png?I thought I'd ask before I spend a bunch of time debugging.Thanks,Andrei
Hi community @STTwo-32 ,I am using stm32f407vet6 board I am new to stm32 board.I wrote an Hello world program in STM32cubeide and i try to debug the code.I bought an ST-link v2 from online.when I try to debug the code it says frimware upgrade require.I upgrade the frimware in DFU mode then it shows this errorand I watched a youtube vedio where he use st-link utility software and he instructed to connect under reset mode and use full chip erase.But when i try to connect under reset mode it shows this error message i also tried stm32 cube programmer it says not connected on the top right and also target voltage 0.i also checked power connection and connection between st-link and my board.
Hello everyone!Based on the shot I provided, there are some parameters that I don't know exactly how they are calculated.What are the Polarization Offset and Offset network attenuation parameters and how could I calculate them? Is there any user guide for that?It's very useful when designing a custom boardThank you all
The STM32H750B-dk Based Custom Board isn't entering debugging mode when using STM32CubeIDE . But QSPI Example Code is working perfectly.
good morning, I am wondering what the DNF means in my datasheet: does it mean there is no connection between pb3 and the LED? then i am wondering if i can use PB3 for other instances, and i am also wondering why there is this DNF instead of just not connecting PB3 and the LEDBest regards
I have implemented the following logic if the throttle signal is below a threshold i give Stopmotor command, it will take some time for the motor to come to zero speed, but the requirement is if i give throttle again the motor shall continue running but the problem is if i give start motor command i can hear a noise or jerk. I tried giving the command MC_ProgramTorqueRampMotor1(0,0) instead of the stop motor command, but power is still going to the phases and i can hear the sound and this is not acceptable to customer. Please suggest how do i solve this problem.It is hall sensor based custom board.
Hi everyone,I’m currently trying to deploy the VENC_RTSP_SERVER code, but it's getting stuck during execution. In the UART terminal, I only see the following output before it hangs.After some debugging, I found that the code is getting stuck at line 133 in venc_app.c.tx_event_flags_get(&venc_app_flags, VIDEO_START_FLAG, TX_AND, &flags, TX_WAIT_FOREVER);Any help or suggestions would be appreciated.
Hello,I am using the STM32H743IITG microcontroller with a 7-inch RGB888 interface display. I have integrated TouchGFX using STM32CubeIDE.The problem is that I am seeing flickering in the middle of the display. This flickering occurs when I add a box widget in TouchGFX.Has anyone faced a similar issue or can suggest how to resolve it?Thanks in advance!
Hello,Where can I find a BSDL file for STM32F205ZET7?
Hi everyone,I'm using an STM32F767 with an S25FL256S NOR flash over QSPI in indirect mode (HAL driver).I'm trying to write the string "HELLO" at address 0x000000, but after programming and reading, I always get: FF 45 4C 4C 4F → "ELLO".The first byte is always 0xFF. All other bytes are written and read correctly. What I’ve already done:Verified Flash ID: 01 20 18 (correct)Erased the sector before writingUsing 0x02 Page Program in 1-1-1 modeSet SIOOMode = QSPI_SIOO_INST_ONLY_FIRST_CMDSet FIFO threshold = 1Using indirect mode (HAL_QSPI_Command() + HAL_QSPI_Transmit()) Test Code:char tx[] = "HELLO";QSPI_PageProgram(0x000000, (uint8_t*)tx, strlen(tx) + 1);QSPI_ReadData(0x000000, rx, strlen(tx) + 1);Why is the first byte not being written?
Hello forum,I'm (still) working on a data acquisition system based on STM32H743XIH6 MCU, I'm pushing the 16bit ADC to the limits and I'm stuck on a corner.Let me summarize first the actual code:1) TIM1 trigger every 1us ADC1 acquisition2) ADC1 acquire 4 ch and move data via DMA to a ADCbuf[4] (4ch scan @1MSa/s)3) HAL_ADC_ConvCpltCallback is called (every 1us) when 2) is complete and does some calculations on ADCbuf[4]. (After 100k executions=4x100k samples a flag is risen triggering data output on the main loop).Long story short, It works flawlessly up to 960kHz, at 1MHz randomly the callback is called again before the previous call get completely served. As far I have understood the problem is that 3) is called with a 1MHz occurrance and, context saving\restore, demand too much time to get the system online without losing any samples. The solution I'm trying to follow is to relax this 1us callback timing this way:1) TIM1 trigger every 1us ADC1 acquisition 2) ADC1 a
Hello, I am trying do a loopback test, i.e I2C1 as master and I2C2 as slave on the same board(STM32F429ZI DISC1).I am giving the address for slave as 0x42 left shifted by one, and storing the same in oar1 register for I2C2. Now the problem is the master is not getting acknowledgement from the slave. I am using HAL to test this.I have also turned on/set the pull up and open drain for both the I2Cs. And i have also tried with external 4.7k ohm resistors, for the pull up resistance. But to no avail.Can somebody please suggest what can i do.
Hello everyone.I am using st32f407 chip to drive ad7606c ADC chip, and I want to output real time graph from PC to matlab via usb.ad7606c outputs busy signal at the end of conversion, and GPIO callback function is executed like below according to busy signal.void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin) { if(GPIO_Pin == BUSY_Pin && dma_busy == 0) { Start_ADC_DMA_Receive(); } }Then the ‘Start_ADC_DMA_Receive()’ function is executed, which is shown below.// Start receiving DMA (call only once, repeat in subsequent callbacks) void Start_ADC_DMA_Receive(void) { dma_busy = 1; //HAL_GPIO_TogglePin(GPIOD, GPIO_PIN_3); // Toggle LEDs for status checking HAL_GPIO_WritePin(GPIOA, GPIO_PIN_3, GPIO_PIN_RESET); // CS LowHowever, if the DMA reception completion callback function is not executed afterward, the PA3(CS) pin output does not go high. The code is shown below.// DMA Receive Complete Callback void HAL_SPI_RxCpltCallback(SPI_HandleTypeDef *hspi) { if (hspi->Instance == SPI1)
I am trying to get shutdown and wakeup working using the blue top switch on the Nucleo-L433RC-P board.I have set GPIO pin PC13 to SYS_WKUP2...Below is my code...HAL_PWR_EnableWakeUpPin(PWR_WAKEUP_PIN2); while (1) { status = HAL_GPIO_ReadPin(GPIOC, PWR_SWITCH_Pin); if(status) { HAL_PWR_DisableWakeUpPin(PWR_WAKEUP_PIN2); __HAL_PWR_CLEAR_FLAG(PWR_FLAG_WU); HAL_PWR_EnableWakeUpPin(PWR_WAKEUP_PIN2); HAL_Delay(1000); HAL_PWREx_EnterSHUTDOWNMode(); } } When I press the button, it goes into shutdown correctly.However, as soon as its shutdown it wakes back up again (even though the button has not been pressed).Why is this happening and how do I resolve it ?
The chip model we use is STM32L496VG. Our customer reported that the machine became unresponsive (bricked) and couldn't power on after an OTA upgrade. After receiving the machine, we used STM32 Programmer to read the flash, which prompted chip protection. When we read the option bytes (OB), all contents were found to have become 0xFF. We checked the code but found no section that writes to the OB, and we haven't been able to reproduce the issue. Currently, we want to know under what circumstances the OB would all become 0xFF and what possible causes there might be.
Hello,I am using the STM32H745I-DISCO board for my project, which requires both TouchGFX and CAN FD functionality. However, I am encountering an issue with the clock configuration.I need to synchronize the Nominal Baud Rate to 500 kbps and the Data Baud Rate to 2000 kbps.I configured the Nominal timing parameters as follows:Prescaler: 4Time Segment 1: 13Time Segment 2: 2SJW: 1According to my calculations, the resulting Nominal Baud Rate should be 500 kbps, but STM32CubeIDE shows the calculated rate as 1250 kbps.I suspect the issue lies in the Clock Configuration.Could this be related to the FDCAN clock source or prescaler settings?I would appreciate it if you could guide me on how to properly configure the clock settings for this use case.Also, if there are any official documents, reference manuals, or recommended resources that explain how to correctly set up the clock configuration for FDCAN and TouchGFX on the STM32H7 series, please let me know.Thank you in advance for your support.
dear ST and/or Users, we’re using STM32H743I with a requirement now to store several bytes of data in non-volatile memory. We have known-working code for the existing application, and need to be assured it is not affected when eeprom emulation code is added.There are (many) other posts in relation to eeprom emulation but we require further clarification in relation to some points, please. We refer to ST’s code from this folder:\Projects\STM32H743I-EVAL\Applications\EEPROM\EEPROM_Emulation\SW4STM32\STM32H743I-EVAL We initially assumed this is properly working code – is that correct ?The documentation mentions “At the beginning of the main program the HAL_Init() function is called …” – we already call this function in main, so assume no change here.Apart from that we understand it is a matter of adding the initialisation routine EE_Init() as well as HAL_FLASH_Unlock() to main then using EE_WriteVariable() and EE_ReadVariable() whenever there is a need to access
Hi,I'm using a STM32L0, the power consume under stop mode was ~50uA. After some search, i see that i forgot to stop the USART clock which permit a consume under stop mode around 20uA which is far from the datasheet <1uA.Actually, i'm doing manual search for clock or GPIO which could drain useless power. I wondered if a library or function already exist which could scan all possibility option which drain power and give information about that. I'm not looking for exact number (it could be nice to have approximation) but more a list of all activate option like :- ADC clock enable- GPIOx under output state- MSI clock at x MhzetcSo i can figure out what i forgot to disable.Thanks in advance,
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.