Join conversations with your peers and ST experts. Explore the full potential of STM32 microcontrollers for your embedded design.
Most recent activity
Hello,We use MB1551 TFM example project on our industrial board. For technical reason, we have modified the card entry point from USART1 to USART3.(TFM\TFM_SBSFU_Boot\Src\low_level_com.c, “COM_INSTANCE”)(TFM\TFM_Appli\Secure\Src\low_level_com.c, “COM_INSTANCE”)The log of SBSFU doesn’t appear on UART target.So next, we are trying to debug TFM SBSFU of a STM32U585 project as shown in this tutorial : We use the SBSFU script “regression.sh” and flash SBSFU, loader, secure and unsecure application with “TFM_UPDATE.sh”.The JTAG connection works correctly to open CubeProgrammer and read option byte for example.Finally, we set the tutorial debug configuration and launch the debug without error. Debug launch but stop with this message :After, we can only stop the simulation or terminate it. We have couple of questions.First of all, can we come to the conclusion that our MCU is booting ?Secondly, Is it possible to change USART1 to USART3 as we did ?Why do we have break point before the debug s
In position control mode, when the commanded angleand motion time are not properly matched, the motor speed sometimes exceeds the maximum speed limit. For example, if the motor’s maximum speed is 3000 RPM, after executing the command the motor speed may reach 4000 RPM. Its not generating error that this motion cannot be executed.
Post edited by ST moderator to follow the community rule to post a code snippet: How to write your question to maximize your chances to find a solutionI need to use scan sequence of 3 ADC channel and DMA transfer of the 3 ADC value .The 3 channel are:sConfig.Channel = ADC_CHANNEL_TEMPSENSOR;sConfig.Rank = ADC_REGULAR_RANK_1;sConfig.Channel = ADC_CHANNEL_VREFINT;sConfig.Rank = ADC_REGULAR_RANK_2;sConfig.Channel = ADC_CHANNEL_15;sConfig.Rank = ADC_REGULAR_RANK_3; but doing this the HAL_ADC_ConvCpltCallback is called only once. if I change the ADC_CHANNEL_15 with ADC_CHANNEL_VREFINT everything is working correct. Why ?
I am using STM32H753ZI and trying to bring up Ethernet (LAN8742, RMII) using HAL + lwIP in NO-RTOS mode. I generated the code using STM32CubeMX with ETH enabled (RMII) and lwIP enabled (WITH_RTOS disabled, static IP). The PHY link comes up and RJ45 LEDs blink, but the board does not respond to ping and no ARP entry is created on the PC (Destination Host Unreachable). I have placed ETH descriptors and RX buffers in D2 SRAM, enabled MPU and D-Cache, verified RMII_REF_CLK to PA1, selected the LAN8742 PHY driver, and I am calling MX_ETH_Init(), MX_LWIP_Init(), and processing lwIP in the main loop. The FreeRTOS-based STM32H743 Ethernet example works, but I specifically want a HAL-only .
Hello, I am working and trying to boot Nucleo - STM32H533RE board. I could successfully boot board using one stage bootloader OEMiROT, but I want to board to boot board with two stage boot path that to to without using STiROT.Looking at wiki page, I could see this can be achieved on Nucleo board I have, but there is no working example in the latest STM32Cube_FW_H5_V1.6.0 package I have.I could see boot path example for STiROT + OEMuROT example but no example for OEMiROT + OEMuROT.I need to know whether I can achieve booting of Nucleo STM32H533 board with desired boot path i.e. OEMiROT + OEMuROT (as encircled with blue color) and if yes is there any support with relevant data available?Regards,Satish
{ "type": "jlinkgdbtarget", "request": "launch", "name": "STM32Cube: Launch JLink GDB Server", "origin": "snippet", "cwd": "${workspaceFolder}", "preBuild": "${command:st-stm32-ide-debug-launch.build}", "runEntry": "main", "imagesAndSymbols": [ { "imageFileName": "${command:st-stm32-ide-debug-launch.get-projects-binary-from-context1}" } ], "liveWatch": { "enabled": true, "samplesPerSecond": "4" } },Under this configuration, the prompt indicates that the attribute "liveWatch" is not allowed.
After I configure EP1 to the double‑buffered mode, debugging reveals an issue inside stm32g4xx_hal_pcd.c. At line 1761, the endpoint register value is read. After executing PCD_CLEAR_TX_EP_CTR(hpcd->Instance, epindex); to clear the interrupt flag, the actual register content has already been updated. However at line‑1906, (void)HAL_PCD_EP_DB_Transmit(hpcd, ep, wEPVal); still receives the register value captured before interrupt‑flag clearing. This triggers incorrect conditional judgements inside the HAL_PCD_EP_DB_Transmit() function.Probable root‑cause: When transmitting data for the first time under double‑buffered setup, USB_EPStartXfer populates both buffers by default. After Buffer‑0 finishes transmission and triggers an interrupt, the program reads register data at line‑1761 of stm32g4xx_hal_pcd.c. Right after this read operation, Buffer‑1 also completes its transmission and updates the endpoint register. Since HAL_PCD_EP_DB_Transmit uses the stale register value obtained earli
The code I’ve written in main.c for a program on NUCLEO H7S3L8 works perfectly fine, but on NUCLEO F767ZI goes into hardfault mode when reaching line 455 “mfcc_compute(mfcc_left, audio_buffer_16bit_left, mfcc_feature_left);” (more precisely, inside this function, at line 263 “float last = (float)audio_data[0] / (1 << 15);”). Can someone tell me how to solve the problem? I’ve declared arrays static to not go into stack overflow. Can someone tell me how to solve the problem? (Int_mic_F7 is the project for NUCLEO F767ZI while audio.zip is the project for NUCLEO H7S3L8)
I have the STM32U595QJI6 installed on a custom PCB sharing its VDD supply line with other components, when the PCB is to go into standby, the command HAL_PWREx_EnterSHUTDOWNMode() is used to put the STM32U595QJI6 into shutdown mode.The PCBs standby current is as expected, however, when the VDD supply line is at 3.3V, and the STM32U595QJI6 gets colder (locally cooling just the STM32U595QJI6 to 0℃) the standby current starts to increase roughly 3 times higher.When the VDD supply line is at 3V, this does not occur, and the standby current decreases as the temperature decreases as expected.When the PCB is running, the running current also decreases when it is cooled to 0℃ as expected, regardless of if the VDD supply line is 3V or 3.3VAll the pins are in an analog state, except the PWR_PUCRx and PWR_PDCRx , which are in a default state.What could be the cause of this current increase in shutdown mode, under the specific conditions of a 3.3V VDD supply line, and a temperature decrease to 0℃
I'm investigating how to change the TX output power for hardware testing.I was able to confirm that the power changes by writing BLE_TransparentMode to the STM32WBA25 and sending the following HCI command via UART.0x01 0x0F 0xFC 0x02 <EnHighPower> <PowerLevel>However, while Table 468 of AN5270 suggests that it can be set up to +6dBm, there appears to be no change in the actual output between setting it to 0dBm and setting it to +6dBm.0x01 0x0F 0xFC 0x02 0x01 0x190x01 0x0F 0xFC 0x02 0x01 0x1FSetting it to a value lower than 0dBm seems to change the output as expected.Is it actually not possible to set it to a value higher than 0dBm?
Hi,I am using the Nucleo H563ZI for OEMiROT. I was able to build the example provided in STM32CubeH5 package and it works without issue. I wanted to know if it is possible to use the swap method instead of overwrite method for the application installation. If so, is there any example available? I understand that HW crypto isnt available on the STM32H563ZI, I was planning to use the ST Cryptolib library for software crypto.Thanks!Rajas
I have a design with a CR2032 cell connected to VBAT on the STM32WB5MM module. This was set up using CubeMX and there I enabled the LSE.In my code I am able to set the date and time and observe that it increments as expected. However, as soon I power the circuit down and back up the RTC is reset to the default. I have verified that VBAT is 3.1V.I have not yet tried the backup registers.What am I missing?
Hello,I’m working on STM32U5 flash with tfm application using script “regression.sh” and “TFM_UPDATE.sh” of MB1551 example project in SBSFU. I lost the connection with the chip when I unchecked nSWBOOT0 in option bytes.Trust Zone : activatednBoot0 : checkednSWBOOT0 : uncheckedRDP : 0 So when we try a JTAG connection, we have this error.STM32CubeProgrammer Error connection Do you know a solution to regain connection with the STM32U5 ?Thanks for your attention,Kind regards,
System: STM32CubeIDE 2.2.0, Win11 Hi there,I am using the STM32WB09 and I am running the BLE Heartrate OTA Example via debugger.There is only one thing I don’t understand:When I create a release version of this example (= hex file) and execute a “run” command in STM32CubeIDE, the program is running until I powercycle the device. Then suddenly there seems to be an old application in Flash?But when I create a new project, execute the same “run” command the program remains also after powercycle.Here’s a log of my run command with the application which will be reverted back after power cycle: ST-LINK SN : 0044004E3137510E33333639ST-LINK FW : V3J17M11Board : STLINK-V3MINIVoltage : 3.30VSWD freq : 8000 KHzConnect mode: hwRstPulseReset mode : Software resetDevice ID : 0x032Revision ID : Rev ADevice name : STM32WB09NVM size : 512 KBytes (default)Device type : MCUDevice CPU : Cortex-M0BL Version : --Opening and parsing file: ST-LINK_GDB_server_a16044.srecMemory Programming ...File : ST-LINK_GDB
Hello, I have been using the NUCLEO-C562RE for my evaluation and due to a mistake I fried the MCU that came with the board, I replaced the MCU with an MCU from the same series. The dev board came with C562RE and I replaced it with C552RE, but after that I am not able to use JLink to connect to the MCU.am I right in assuming that since the pinout of the two MCU’s are same, the MCU’s can be swapped and used ?
In stm32f0xx_hal.c:/** * @brief Initialize the MSP. * @retval None */__weak void HAL_MspInit(void){ /* NOTE : This function should not be modified, when the callback is needed, the HAL_MspInit could be implemented in the user file */} But this must not be implemented in a User file, because there is already an implementation generated by CubeMX in stm32f0xx_hal_msp.c:/** * Initializes the Global MSP. */void HAL_MspInit(void){ /* USER CODE BEGIN MspInit 0 */ /* USER CODE END MspInit 0 */ __HAL_RCC_SYSCFG_CLK_ENABLE(); __HAL_RCC_PWR_CLK_ENABLE(); /* System interrupt init*/ /* USER CODE BEGIN MspInit 1 */ /* USER CODE END MspInit 1 */} So implementing a HAL_MspInit() in a User file - as the comment in stm32f0xx_hal.c suggests - will cause a “multiple definition” Linker error!
Hi all,I'm working on the STM32H747I-DISCO (CM7 core, bare-metal LwIP without RTOS, polling mode via MX_LWIP_Process()). Goal is simply to get the board to respond to ping from my PC over Ethernet.Hardware done:Solder bridge rework completed per UM2411 Table 5: SB8 closed / SB21 open (PC1 → ETH_MDC instead of mic DOUT), R87 open / SB17 closed (PE2 → ETH_nINT instead of mic CLK)Software config:ETH set to RMII mode in CubeMX, all 9 RMII pins showing green in Pinout view (PA1, PA2, PA7, PC1, PC4, PC5, PG11, PG12, PG13) LWIP middleware enabled, static IP configured (matching my PC's subnet), no DHCP USART3 used for debug output via Putty Everything runs on CM7 only; CM4 isn't touching ETH/LWIPSymptom:The code intermittently jumps into HardFault_Handler(void) — not on every run, which points to a timing/cache-related issue rather than a hard config error. When it doesn't crash, ping still doesn't get a reply./* Private user code ---------------------------------------------------------*//*
I am using the STM32H7B3I-EVAL board. According to the user manual, both the ST-LINK Virtual COM Port and the RS-232 connector (CN9) use USART1 on PB14/PB15 in the default configuration.I have configured USART1 in asynchronous mode with:TX: PB14 RX: PB15 Baud rate: 115200 Hardware flow control: NoneThe ST-LINK VCP works correctly, and I can see the transmitted data on the PC. However, the RS-232 port on CN9 does not work.I am using a DTECH USB-to-RS232 cable connected to CN9.My questions are:Is any jumper or solder bridge configuration required to enable the RS-232 port, even when using PB14/PB15? Since both ST-LINK VCP and RS-232 share USART1, should the transmitted data appear on both interfaces simultaneously? Does CN9 require a straight-through RS-232 cable or a null-modem cable? Has anyone successfully used the RS-232 port on STM32H7B3I-EVAL with a USB-to-RS232 adapter?Any suggestions on what else I should check would be appreciated.
Hello Sir,We are currently facing a Country of Origin (COO) issue regarding the STM32F722RET6 MCU and would appreciate your assistance in clarifying the following questions.Could you please confirm whether the Country of Origin (COO) of the STM32F722RET6 is France, as indicated on the STMicroelectronics official website? Could you please provide the manufacturing locations for the STM32F722RET6, including: Wafer Fabrication (Wafer Fab) location Assembly location Testing location Your prompt assistance would be greatly appreciated.
Hi ST Community and Support Team,I am currently working with the STM32F722RET6 microcontroller and would like to seek some clarification regarding the physical markings on the chip package.Regarding the "CHN" marking on the IC surface, I would like to confirm the following details for compliance purposes:Back-end Origin: Does "CHN" confirm the assembly and test (ATP) was done in China (e.g., ST Shenzhen)? Wafer Diffusion Origin: Where is the front-end wafer fabrication usually performed for this part? Authentication: Please help verify the following laser-etched markings: Part Number: STM32F722RET6 Country Code: CHN
I’ve set pin PD8 and PD9 for USART3 and I’ve checked the baud rate that is 115200, but usart3 does not transmit data to serial monitor yet. How can I solve the problem?
Hi everyone,I'm working on a battery-powered sensor node project based on STM32 MCU.The device needs to wake up periodically, collect sensor data, process it briefly, transmit the data, and then return to sleep mode.The expected lifetime is several years, so I am focusing on reducing the average current consumption rather than only optimizing active mode performance.Currently, I am considering several areas:1. Which STM32 low-power modes are usually the best choice for long sleep intervals? (Sleep vs Stop vs Standby)2. How much impact do you normally see from:disabling unused peripherals? reducing clock frequency? SRAM retention configuration? wake-up time optimization?3. For sensor applications that wake up every few seconds or minutes, is it generally better to:run the MCU at higher frequency for a shorter time and sleep longer? or keep a lower frequency continuously?4. When measuring low current consumption, do you usually measure only the MCU current, or the whole system including
I am planning to use STM32H563VIT6TR in my design and all the peripherals (I2C devices, temp sensors, other ASICs) are at 1.8V. Can I use this MCU at 1.8V. Can I connect VDD, VDDA, VREF+, VBAT at 1.8V. I understand VDDUSB is USB and needs to be connected to 3.3V. Could you please confirm if it will work at +1.8V across -40C to +85C temperature.
Hi I’m trying to explore what I can do with 12 good bits.I’m experimenting an output noise ,even in this simplified condition where the converted ADC value is directly sent to DACAnalog and digital ground are separated and return current paths in PCB should be goodADC is driven by op amp output + 20 ohmADC is triggered by a timer ,oversample 4 times ,the ADC values with Vin=½ VDDA varies between 2044 and 2046 chacking samples for ten seconds,saving max and min values) ,ADC sample and hold=24,5 clock cyclesDAC is used with no SampleHold,and with Buffer : DAC1->MCR=0;DAC is triggered by the same timer interrupt related to ADC,only when ADC end of conversion flag is 1(once in 4).The output value is obtained with DAC1->DHR12R1=global_adc_val;Notice that in case DAC1->DHR12R1=2048; there is no noise.Noise lowers if MCR->MODE1=0x2 instead of 0;Why only 2 fluctuating bits on 4096 bits can cause an huge audible noise?And why excluding buffer makes it better?Thanks
Hi everyone, I have developed a custom pcb board and I want to use the usb and a uSD card. I am not really familiar with pcb designing. My guidance was some youtube videos in general, like the Phil’s Lab for the USB + SD MSC (The link, so there is some understanding on the code I have added to the usb app). The USB works. The SD only worked once somehow, while I was stepping the code in the debugging process. I could not do it again. I have tried every possible configuration. The only thing I get is the following from the terminal: [28067.786253] usb 3-4: new full-speed USB device number 86 using xhci_hcd[28067.913272] usb 3-4: New USB device found, idVendor=0483, idProduct=572a, bcdDevice= 2.00[28067.913281] usb 3-4: New USB device strings: Mfr=1, Product=2, SerialNumber=3[28067.913283] usb 3-4: Product: STM32 Mass Storage[28067.913286] usb 3-4: Manufacturer: STMicroelectronics[28067.913288] usb 3-4: SerialNumber: 395834673434[28067.916167] usb-storage 3-4:1.0: USB Mass Storage device
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.