Join conversations with your peers and ST experts. Explore the full potential of STM32 microcontrollers for your embedded design.
Most recent activity
Hello!From the datasheet, I could tell it was a BAT54AFILM (due to the D84 marking), but I couldn't figure out what E1 meant. Could you help me decipher this?Thx!
Hi there,I generate a project using MCSDK 6.4.1 without any errors. (Find the project file in attachments)However, when I compile my MDK project, it shows some errors as follows:The details about the definition:```c#define VBUS_PARTITIONING_FACTOR 10.989010989010989 /*!< It expresses how much the Vbus is attenuated &nb
Hello ST Community Team. First of all, I want to thank you for the new AI plug-in. It is really helpful specially will looking for informations on the STM32 documents. We hope to have the same for other ST products. About the Typo, on the Table 1 of the RM0434, we have a reserved region between SRAM1 and SRAM2a (from 0x2000 3000 and 0x2002 FFFF) this region is included on the SRAM1 (between 0x2000 0000 and 0x2002 FFFF) so it should be mentioned if it is reserved or not g(more details needed) also the size is 180Kbytes and not 36KBytes as mentioned on the Doc.please have a look at this.Best Regards.II
I have STM32N6570-DK board and need to use very small sized camera ~1x1mm 30 fps with USB UVC interface for object detection applications. As the camera does not have dcmi/csi-2 interface, I am exploring how to use USB HS Host driver and UVC class driver. Questions: 1. Is it possible to get real-time inference on UVC video stream(20-30fps) as in an example ST provides? I have tried the example and inferencing speed is very fast. 2. Are there any example codes I can refer to for USB host and vuc class driver? 3. or should I try find the video bridging hardware converter(UVC to DCMI parallel/MIPI CSI-2)? 4. Even if I can find CSI-2 converter, firmware development will still be very challenging for CSI interface. Is it worth trying out? DCMI parallel will be much easier to implement in coding. However, small camera does not come with parallel interface. Are my assumptions correct? Any help/guidance/clarification would be greatly appreciated! Thank you
Hello everyone i had today while working with the NUCLEO H753ZI board and when i try to upload the code i had faced this error message when i try to connect with the cube programmer i faced this error and my LD6 pin is glowing with low intensity can you please tell me why i facing this issue whethere this could be any short problem or anything else
Does ST offer an implementation of hardware acceleration of mbedtls-2021?I found this:STM32CubeL5\Projects\STM32L562E-DK\Applications\TFM\TFM_Appli\Secure\Src\ecdsa_alt.cSTM32CubeL5\Projects\STM32L562E-DK\Applications\TFM\TFM_Appli\Secure\Src\ecdsa_curves_alt.cfrom https://github.com/STMicroelectronics/STM32CubeL5.gitThis is excactly what I want (a bridge between mbedtls and the PKA_HAL driver), but it's for a 2019 version of mbedtls, and the mbedtls folks since broke the interface, so it doesn't compile. (and it doesn't look like an quick/easy fix)Is there a newer version somewhere?/Troels
Hi everyone,I'm working with a custom board based on the STM32WB55, and I'm facing a very strange issue with the Bluetooth Low Energy advertising. BLE advertising works perfectly when the board is running under debugger (SWD debug mode), wireless stack is correctly updated and option Bytes remain as programmed even after power cycling. CPU2 starts, and aci_gap_set_discoverables() returns BLE_STATUS_SUCCESS.The problem is, when I remove the debugger and simply power-cycle the board (i.e. unplug power supply usb cable and replug it), BLE advertising does NOT start.Do you have any idea of how to fix this problem?Thank you
Hi,I have a Riverdi STM32U5A9 that I'm trying to get converted to ThreadX to be able to use the onboard SD Card. The application was fully working with FreeRTOS, but after porting over to ThreadX, I get a Hard Fault on the first tick of the first transition to the first screen. From what I can tell, everything has been initialized. The TouchGFX project files are re-exported after the RTOS being set to ThreadX. I've increased the memory allocation, and adjusted the TX_TIMER_TICKS_PER_SECOND to 1000 as documented in the TouchGFX documentation. Everything is being done through STM32CubeIDE and TouchGFX. I've tried it on STM32CubeIDE version 1.15, 1.16, and 1.19. I'm using 4.24.0 for TouchGFX. Any help or clues is greatly appreciated. Thank you!
I want to put my STM32WB05 into sleep mode and utilize the Bluetooth wakeup feature to wake it up. I have not found much information about this online, and was curious if it can be set up in the IOC or if it needs to be added manually?
I have two boards, both with the G473.I am using the ROM bootloader on SPI1. On one board, the bootloader works. On the other, it only responds with 0xA5 during the initialization sequence.The MCU can program and run if I load it through the SWD port.I have checked the SPI signals, both digital and analog, they look great. The MCU pins are firmly soldered to the board. The other board works. My code works. If you can actually get the bootloader to synchronize, it works.I have gone through every forum post I can find, and it is sounding like there is a possible consensus that the ST bootloader is bugged and will sometimes initialize the wrong interface. Is that... really true? It selects the wrong interface and all of these people are having problems with it? Can any one from ST talk about this? This sounds like a really serious problem if true! What else could it be?AN2606 says the G473 will init the pins on the USART and
Hello.I've tried to implement the TCP client using freeRTOS, socekt API and LwIP middleware on STM32H723ZG.However, I cannot figure out why the connect() function in socket api doesn't work and stuck.Is there a example for nucleo-H723ZG with LwIP and TCP client?Sincerely.
Hello, I am facing an issue with my code on my STM32F411I have a function that is starting a timer TIM5 I want to be able to handle channel 1, Channel 2, Channel 3 interrupt on output compare no output uint32_t ticks = ms * 10U; /* 10 kHz tick -> 10 ticks per ms */ if (ticks == 0) ticks = 1; TIM5->CR1 = 0; TIM5->CR2 = 0; TIM5->DIER = 0; TIM5->CCER = 0; TIM5->CCMR2 = 0; // Channel 3 and 4 CCMR register // Set prescaler and auto-reload as needed TIM5->PSC = 96; // No prescaler TIM5->ARR = 0xFFFF; // Auto-reload max for full range TIM5->CCMR2 &= ~TIM_CCMR2_CC3S; // CC3S=00 output TIM5->CCMR2 &= ~TIM_CCMR2_OC3M; // Clear OC3M bits TIM5->CCMR2 |= (0x3 << TIM_CCMR2_OC3M_Pos); // OC3M=011 toggle mode // Enable Capture/Compare Channel 3 output (optional for toggling output pins) TIM5->CCER |= TIM_CCER_CC3E; // Enable interrupt on Capture/Compare 3 event TIM5->DIER |= TIM_DIER_CC3IE; // Enable TIM5 counter //TIM5->CR1
Dear Community,I am using a Nucleo-H723ZG for my uni project and im running into issues with the PA11 & PA12 Pins.I want to use them for FDCAN1 and I have verified that my code works. No matter in what way i try to use these two pins the dont output.if I switch to FDCAN2 with the same code and simply switch all instances of &hfdcan1 to &hfdcan2 i can read the signals with an scope and a can2usb adapter and get the right values. I also tried to select just the mcu instead of the board because i read that sometimes USB_OTG messes with things but no luck.Lastly i tried with another brand new Nucleo-H723ZG but also here no output on PA11 & PA12 whatsoever.Not even in GPIO-Mode. Do I have to turn something specific of?I attached the full project. Kind regards
Hi,I'm using an STM32H723 and store my configuration data in flash. Here The procedure is: erase the flash once, then write to the erased flash. On read check the flash for a magic word to find where data have been written. Next write happens the same way, it uses the magic word to find an unused part of the flash to write to (in order to save erase cycles). So data are written several times until a new erase is necessary.Now sometimes I end up in the HardFault handler because of an illegal read:void *Flash_Storage_Read(const size_t length) { uint32_t base_addr = FLASH_STORAGE_START_ADDR; uint32_t final_addr = base_addr + length; uint32_t *finalData=(uint32_t*)final_addr; const uint8_t *flashID=(uint8_t*)final_addr; while ((final_addr<FLASH_STORAGE_END_ADDR) && (*finalData!=0xFFFFFFFF)) -------> this read access causes the HardFault_Handler() to be called { base_addr+=length; final_addr+=length; finalData=(uint32_t*)final_addr; } return (void*)base_addr; }&n
Hello,I've been trying to control a Maxon motor BLDC, the motor has hall sensors and encoder as well. I'm using the STEVAL-SPIN3204 board. I've downloaded the MCSDK6, Cube MX and Cube IDE. I'm new to motor and motor control. I was able to start the motor and achieve full speed control of 9000 RPM, using the sensorless mode. the current monitoring window showed an average current of about 1500( I'm assuming this is in mA); the motor was freely running. I then proceeded to set-up and run the motor using the 6-step with Hall sensor. After properly welding/closing the JP5,JP6, and JP7 and leaving JP8,9,and 10 open as stated in the MC workbench. I was able to start the motor but only up to about 1800 rpm. The current monitor on the motor pilot showed an average current of more than 8500, again I'm assuming these are in mA. The motor is rated for 7.35A, however, once the board was connected to the motor pilot, it always shows a nominal amp rating of 2.64. The over-current alarm i
I am trying to debug code for Nucleo-WL55JC1 board using sample code from the STM website. It is the LoRAWAN_End _Node. I complies fine and creates .elf file. However when a try do download with the STM32Cube I get the following error: An internal error occurred during: "Launching LoRaWAN_End_Node".'com.st.stm32cube.ide.mcu.toolchain.IToolChainInfoProvider[] com.st.stm32cube.ide.mcu.toolchain.ToolChainHelper.getToolChainInfoProviders()' Thanks for the help.
I am on an H562 and trying to rd/wr a file on a USB memory stick using the mass storage controller. I am trying to understand what to do about this block when I am running in standalone mode. I started from an example code which is in RTOS mode but I want use the standalone mode.When I tried to implement something meaningful in UX_DEVICE_INSERTION status, it turns out that the expression_mediaPtr = &_storageMediaPtr->ux_host_class_storage_media;fails to compile because 'UX_HOST_CLASS_STORAGE_MEDIA' has no member named 'ux_host_class_storage_media'.I think the problem is in this definiton:but I need to use FILEX. Than I tried the method 2 using the function 'ux_host_class_storage_media_get' but it is not present in the folder Middlewares/ST/usbx/common/usbx_host_classes/srcWhich of the two methods should I use? How can I skip the problems? Do I have to define something different?
Hello Community,I have a problem with the STM Motor Control Workbench 6.3. I have hardware for FOC motor control. For the current measurement, I am using three shunts with differential current measurement, integrated op-amps, and an external resistor network for the gain. I tried to configure this hardware with the STM Board Designer, especially the current sensing: The creation of the board is fine, but when trying to open it in Motor Control Workbench, I get this error message: Motor Control: MC Workbench 6.3Microcontroller: STSPIN32G4 The board file is attached.Has anyone else encountered the same issue?Best regards,Steffen
Hello ST Community,I am working on an STM32U585AII6Q microcontroller with TrustZone enabled. My goal is to revert the RDP level from 2 (0xCC) back to 0 (0xAA) using STM32CubeProgrammer GUI.#### Steps I Followed:1. Defined OEM2KEY in the "Secure Programming" menu.2. Set RDP to Level 2 successfully.3. Tried to unlock RDP2 using the "Unlock RDP2" option in STM32CubeProgrammer.- Log shows: "Unlock RDP2 password successfully done."4. Gave power cycle and attempted to change RDP value from 0xCC to 0xAA in the "Read Out Protection" menu.#### Issue:- When I try to apply the change, I get the error:**DEVICE NOT HALTED**- The debugger cannot connect to the MCU after this step.#### Hardware Setup:- BOOT0 pin connected to VDD for RSS boot.- Using STM32CubeProgrammer v2.19.0.#### Questions:1. What is the correct sequence to regress from RDP Level 2 to Level 0 when TrustZone is active?2. How to resolve the "DEVICE NOT HALTED" error during regression?3. Do I need to power-cycle or use a specific mode
Update: I found out that HAL_PWR_EnableWakeUpLine() must be enabled to wake up the system.The system now wakes up correctly from Stop3 mode. With the SMPS enabled and all pins configured as analog, the current draw is approximately 5 µA, which matches the values given in the datasheet./**********************************************************************************************************************************/ Hello everyone,I am working with NUCLEO-U385RG-Q board and using the RTC wake-up timer as the wake source for low-power modes. I noticed consistent differences between STOP2 and STOP3:IssueThe RTC wake-up interrupt works reliably in STOP2.The exact same configuration does not wake the system from STOP3.ConfigurationLSE is running (32.768 kHz crystal).RTC is clocked from LSE.RTC wake-up timer is configured via HAL_RTCEx_SetWakeUpTimer_IT().No other wake sources are enabled.QuestionsAre there additional registers or power settings required for STOP3 to allow RTC wake-up e
I am trying to measure DC output of an RF detector (AD8363) using STM32H723's ADC. The Signal that is to be measured has about 80 mV - 90 mV of high frequency noise embedded on it. Due to inaccuracies in the measurement I am probing the measurement circuitry and therefore would like to know:The 5 pF capacitance of ADC is total capacitance of the 12 or 16 capacitors inside ADC or just that of one capacitor?What is the resistance of the ADC's sample and hold switch?Is there any model of ADC Circuitry, that includes parasitic as well?What is the tracking bandwidth of the ADC?
Hi -I am trying to bring up a new design - a 3 phase forward converter, using the HRTIM to fire six gate drives. Under normal design loads it works great, but for normal loading I have the CONT bits set for master and subs. For light loading, I need to keep a minimum on-time, so must drop the frequency. I could reduce the resolution by using a smaller PLL multiplier (presently using x8 with a 150 MHz sysclock for a 1.2 GHz HRTIM), but that is unsatisfactory. I tried setting different PLL multipliers for the master and the three sub timers, but found that different PLL settings precludes cross-channel event messaging, so I could not phase the three sub clocks with the master anymore. I suspect I could use the burst mode, but have not researched that yet.The technique I am trying now is linking to TIM1 to start the master for one cycle in one-shot mode. This gives me a proper fixed on-time burst for all six phases, but reducing TIM1 frequenc
Hi - I have an application running a 1 kW 500VDC to 25V DC supply for a klystron filament heater. I am using a 3 phase forward converter - each phase driven by a FET half bridge to a transformer primary returning to input mid-point. I drive the six gate drives using six HRTIM pins.I have programmed this so that each of the gate drive pulses is turned on at a fixed time in the master cycle, and turned off by one of two things: either a timer counter (thus setting duty cycle %) or an event connected to an internal comparator. The comparators use an internal DAC for the -IN reference, and are pinned out to a rectified current transformer on the primary. This then gives me both duty cycle and peak current control for continually adjusting providing regulation.What I would like is a continual running diagnostic where I can read the status from the HRTIM and determine what caused the most recent commutation off (i.e. cou
Post edited by ST moderator to be inline with the community rules for the code sharing. In next time please use </> button to paste your code. Please read this post: How to insert source code. Hi, I am using stm32c071 MCU to store data into flash. I have erased page 63 wrote data into 0x0801F800 then locked the flash and then again unlocked it erased page 63 wrote data in 0x0801F820, but the contents of 0x0801F800 is still there even after page erase. Is this expected? My flash write code eFLASH_ErrorType_t WriteDataToFlash(uint64_t *data, uint32_t address, uint8_t page, uint8_t length) { eFLASH_ErrorType_t err_code = e_SUCCESS; uint32_t *addr = (uint32_t*)address; // Check if flash is busy err_code = CheckFlashBusy(); if(err_code != e_SUCCESS) { return err_code; } // Unlock flash err_code = flashUnlock(); if(err_code != e_FLASH_UNLOCKED) { return err_code; } // Erase page before writing err_code = flashErasePage(page); if(err_code != e_SUCCESS) { return err_
Hello.I have developed a firmware for Riverdi_121STM32H7.The firmware has Italian and English texts,but we planned to develop a version for Chinese customers, Myanmar, and other non european customers. My doubt is: Unicode::atoi and Unicode::sprintf("%d" produce number in other language, don't ? Thakyou for the answers ...
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.