Join conversations with your peers and ST experts. Explore the full potential of STM32 microcontrollers for your embedded design.
Most recent activity
I would like to use the single USB internal PHY on the STM32H735 to connect to a 2 port hub chip (like the Microchip USB2422) so that I can connect to both a USB stick for firmware upgrades as well as a cellular module. I started connecting everything up and then I came across a multiple sources saying that you can't connect USB Hubs to the internal PHY and you have to use the ULPI interface to connect to an external PHY, but none of the sources really explain why other than saying the internal PHY isn't capable of High Speed operation, and the USB software from ST doesn't allow for hubs. I don't understand what this has to do with interfacing with a hub IC when I'm perfectly fine with operating at Full Speed. So I have a few quesitons:1) Can I use a USB Hub (like the USB2422) as long as I'm OK with it operating at Full Speed only? Is it technically possible to connect these devices and get them to work?2) Will the USB Host middleware provided through STM32CubeM
Dear Team,How to configure the BOOT0 pin of this module.In the reference design it is let floating with an option to pull up.In the application note (How to develop RF hardware using STM32WBA MCUs - Application note) it is pulled down.May I know in all these three configurations(Pull up, Pull down, floating) what will be happening. From where it is booting.You have any document which describes how to configure this BOOT0 pin.RegardsHariom
The Application circuits in the Datasheet under section 5 do not list any values for the components, are they available somewhere? All of the reference designs linked in the wiki and on the website are for the STM32WL33C. Do the values directly transfer over? We are also explicitly interested in the configuration without the SMPS as there are no application examples for the STM32WL33C without the SMPS and it is not clear which components can be removed when not using it.
Hello ST Community and ST Engineers, I am currently working with a NUCLEO-WL55JC1 (STM32WL55 dual-core: Cortex-M4 + Cortex-M0+) and I am facing an issue when using dual-core projects generated with STM32CubeMX. I would really appreciate any guidance or confirmation from ST engineers or experienced users. Hardware / Software: Board: NUCLEO-WL55JC1 (STM32WL55 CM4 + CM0+) Tools: STM32CubeIDE, STM32CubeMX, STM32CubeProgrammer Also tested using VSCode with STM32 extensions Firmware packages tested: STM32Cube_FW_WL_V1.3.0 STM32Cube_FW_WL_V1.4.0 Examples tested: LoRaWAN_End_Node LoRaWAN_End_Node_FreeRTOS LoRaWAN_End_Node_DualCore LoRaWAN_End_Node_DualCoreFreeRTOS References followed: YouTube (LoRaWAN workflow overview): https://www.youtube.com/watch?v=8KNfrWoa1fw Dual-core from scratch and CM4/CM0+ LED blink walkthroughs: Playlist: https://www.youtube.com/playlist?list=PLnMKNibPkDnFPqEmJAwEjsSS8MOQZHRNF Specific video: https://www.youtube.com/watch?v
I just bought a NUCLEO-H7S3L8 board and discovered that STLINK-V3EC on it refuses to connect using some USB-A to USB-C cables. It works fine with other similar cables from different vendors. The problem appears to be with cables which provide the default 80uA current on both CC lines. These cables do not work. The ones which have only one CC line connected work fine. The cables which do not work, never gave me any problems with any other USB-C device (e.g. with STLINK-V3MINIE). I am not sure if having both CC lines powered is against the USB-C spec - it seem a bit of a grey area to me. But there seems to be quite a few cables doing it out there. For instance, I am quite sure that the CC lines were the reason for this user's problem with the same board: https://community.st.com/t5/stm32-mcus-boards-and-hardware/nucleo-h7s3l8-is-not-detected/m-p/760442?search-action-id=88460536396&search-result-uid=760442 Could ST consider removing the error condition in this case from the STLINK-V3E
Hi,I am doing a feasibility study for SBSFU on an STM32H750, specifically firmware encryption and authenticity check. I am using the XCUBE expansion pack v2.8.0.- Using prepareimage.py & modified keys.py along with default prebuild and postbuild.sh- Using a single download + single active slot in external memory- All protections are disabledModifications to default example:- Adjusted default linker script to increase active + download slot size- Modified keys.py to append 0xFF bytes to binary before encryption to meet 16 byte multiple requirementMethod altered: AES_CBC:encrypt- generating new AES and ECDSA keys as mentioned in readme.txtAs mentioned in AN5056, section 4.2, I modified SECBOOT_CRYPTO_SCHEME to SECBOOT_ECCDSA_WITH_AES128_CBC_SHA256. I can see that prebuild.sh detects this change and adjusts accordingly. Observations:I have tested the firmware installation using ECDSA signature without encryption to get the following errors.1. Error on first boot after f
Hello all, I have been running into a lot of issues trying to get the firmware for the BLE onto my board using the STM32WB55RG. Now I did follow this video and originally got it working, but then I accidently hit delete firmware and was unable to get it on again. Right now any time I try to upgrade my firmware I always get the WARNING: FUS_STATE_IMG_NOT_FOUND.I have tried doing a mass erase and then re-upgrading as I saw in another post but that also will not work.Here is the list of steps I take right now:1. Plug in board2. Connect via STM32CubeProgrammer3. Start FUS4. Read FUS Info5. Attempt to upgrade stm32wb5x_BLE_Stack_full_fw.bin at 0x080C70006. Receive error messageThis is a custom board, but I did at one point have the BLE working on it. Here is my option bytes configuration:
Hi, I got stuck in the HardFault_Handler every time after editing some code. I'm using FreeRTOS in c++ combination with classes. First I thought this would be a memory issue. After increasing configTOTAL_HEAP_SIZE and configMINIMAL_STACK_SIZE, I was still stuck in the HardFault_Handler. Even by jumping into a function, before I returned from this function the HardFault_Handler was tripped again. I really tried a number of things... I made a function (bool Controller::DefaultConfig()) to set the default configuration when nothing was available in the flash and I forgot the return true or false. When adding the return with a result, the problem with HardFault was solved. Is this a logical behavior? (A compiler error would make more sense) Greetings, ErX
Dear Team, I am using STM32WBA5MMG in my project. The datasheet does not contain pin description and their alternate functions. I also checked STM32WBA5xxx datasheet (DS14127). It does not contain any pin description and alternate functions of STM32WBA5MMG. For finding the pin details of , may I know where I need to check in the datasheet. Regards HARIOM
Hello, What can i take for a MCU which has function with Low Speed USB 1.1 ? I must make a USB HID Interface as Gamecontroller. It is essential to prevent the PC from getting stuck on the USB port, and this is only possible with USB 1.1. greets Stefan
I have an X-Nucleo-67W61M1 with a Nucleo-WB55RG host board. I was following this link for how to do the set up How to use X-CUBE-ST67W61 STM32CubeMX pack. One of the prerequisites says that I need to ensure that I flash the updated code before using.In this link there is steps to flash the board with an STM32 host ST67W611M1 Hardware setup. It says that what I need to do is migrate the NCP_Loader to generate the binaries, but I am unsure how to do this.Is there anyone that has some suggestions? I am new to working with STM boards and I would appreciate any help.
Hi there !I use thi function and work perfectly . But if i try to read the HAL_StatusTypeDef i don't understand why return HAL_OK even if i wrote a wrong address why ???? if i use void HAL_I2C_ErrorCallback(I2C_HandleTypeDef *hi2c) this work with i wrote a wrong address please some one can tell me why ? Thank you Sergio
HERE WE R USING STM32WB55 MCU FOR BLE PURPOS AND FACING ISSUE IN FLASHING BLE STACK .HERE IT SHOWS 0.0 STACK VERSION AND FUS VERSION 2.1 IN IMAGE AFTER READING. WE ARE USING ADDRESS FOR FUS 0X80EC00 AND FOR BLE STACK WE ARE USING 0X80C7000 OR 0X80C000,AND AFTER FIRMWARE UPGRADE WE R GETTING ISSUE OF FUS STATE IMAGE NOT FOUND .HOW CAN WE SOLVE THIS ISSUE PLEASE PROVIDE A SUPPORT FOR THAT.FOR YOUR REFERENCE WE ATTCHED SOME IMAGES .
Hi, I have an application with 4 legs PFC and 2 legs inverter controlled by the STM32G484VET3. Can I use one input to disable both when a fault happens independently from the software? Thank you.
Hi, I am compiling the STM32U0 HAL library and I get errors like this one:/Users/kiwanda/techniek/swexternals/STM32/HAL/Libraries/STM32U0xx_HAL_Driver/Inc/stm32u0xx_ll_comp.h: In function 'uint32_t LL_COMP_GetCommonWindowMode(const COMP_Common_TypeDef*)': /Users/kiwanda/techniek/swexternals/STM32/HAL/Libraries/STM32U0xx_HAL_Driver/Inc/stm32u0xx_ll_comp.h:391:27: error: ISO C++17 does not allow 'register' storage class specifier [-Werror=register] 391 | register const uint32_t window_mode_comp_odd = (uint32_t)READ_BIT(COMPxy_COMMON->CSR_ODD, COMP_CSR_WINMODE);I am using a C++ compiler and since C++14 the keyword register has been declared obsolete and useless. I fully agree with this step, all the more since we are writing SW here on ARM Cortex:When writing software for ARM Cortex, which is a Load/Store architecture RISC processor, EVERYTHING goes through a register. The register keyword is therefore completely meaningless, useless and superfluous in this context.I would l
Hello everyone, I’m looking for some help getting an Ethernet TCP server running using LwIP with FreeRTOS on an STM32. Current status: Hardware: NUCLEO-H723ZG Stack: LwIP + FreeRTOS Development Environment: STM32CubeMX and STM32CubeIDE TCP client/monitor: Hercules v3.2.8 I can ping the board successfully every time (with Windows terminal and Hercules) However, I cannot establish a TCP connection when FreeRTOS is enabled What’s confusing me is that: If I disable FreeRTOS, I can successfully establish a TCP connection using the CubeMX example LwIP_TCP_Echo_Server Once FreeRTOS is enabled, the TCP connection attempt from Hercules fails (no connection established) What I’ve tried so far: Multiple CubeMX LwIP + FreeRTOS example configurations Both Netconn and Socket-style APIs Adjusting task priorities and stack sizes Verifying IP address, subnet, gateway, and port settings Confirmed Ethernet link is up and LwIP responds to ping At this point, it feels like I’m
Hi,is there a 64Kb drop-in replacement for the STM32C031G6U6 (which is only 32kb)?We need to find a part where - ideally - we just use the same code without any mods, this is the most important part.And is there perhaps a tool that helps with that? Or at least allows us to make an accurate comparison check between two parts?We just use GPIOs and 1 x RS232 and 1 x I2C in their default pin locations.Thank you
I am using the Stm32wb09kev6tr ic for the ble.I am not able to update the fus or wireless stack from the st link? is there anything i am doing wrong? is there any documents regarding this which will helpfull?
What is the P variant of STDRIVE102 and how does it vary from the STDRIVE102H?I can find datasheets for STDRIVE102H/STDRIVE102BH - with the BH variant having 3 Shunts(OpAmps) vs the standard H having 1 Shunt(OpAmp).The boards manager in ST Motor Control Workbench has the EVLDRIVE102P & EVLDRIVE102BP Evaluation Boards that point to the following (broken) links:https://www.st.com/en/product/EVLDRIVE102Phttps://www.st.com/resource/en/data_brief/EVLDRIVE102P.pdfI see Digikey and Mouser have stock of STDRIVE102P.
When I Debug cmwx1zzabz_0xx, I get a hard fault somewhere near a call to HAL_PWR_EnterSLEEPMode(). It happens just after all the init code, somewhere in the first call to MX_LoRaWAN_Process(). If I step into MX_LoRaWAN_Process() and continue stepping, there is no fault.Note that I commented out the calls to DBG_Disable() and DBG_ProbesInit() in SystemApp_Init() since they drop the ST-Link connection over USB.
I have designed a custom board based on the STM32F767ZI MCU. To enable Ethernet connectivity, I integrated the KSZ8081RND PHY, along with the necessary magnetics and an RJ45 connector. You can find the full schematics in the attached PDF.On the hardware side, everything appears to be functional. I can confirm the presence of the 50MHz clock signal feeding both the PHY and the MAC. I have trace-matched the signals to this clock, and the MDI signals also look correct (including route matching). I can observe the TX_EN line going high (3.3V) during activity, as well as movement on the other lines. Just to clarify, I am using the RMII interface.The MDIO and MDC signals seem fine, as I am able to successfully read the PHY registers. For instance, reading register 0x02 on the KSZ8081RND correctly returns the ID 0x0022. I also see activity blinking on the RJ45 LED.During debugging, it seems I can receive ping requests on the board; I can inspect the memory and see my Host's MAC address and th
Hello, I have tried a number of I2C slave tutorials found on YouTube with no success, but none are specifically for the STM32G03 series. Also I am getting a very strange phenomenon. In CubeMX for I2C2 I set the first slave address to 0x012. On my PC I am using python with a USB adapter to scan() the bus. I have an EEprom on the same bus an the scan address is correct but for the MCU it returns 0x13?Has anyone encountered this address shift?Is there ANY WORKING examples for this MCU series? This is my first post on this community.
Hi, HAL_LIN_SendBreak seems to be blocking CPU, is there a way to bring UART TX pin down then wait for timer and bring it up? I have done it making GPIO pin GPIO_MODE_OUTPUT_PP then back to GPIO_MODE_AF_PP but init after takes long time. I was wondering is it possible to do it within UART without changing pin mode? Or reducing the time pin mode init is required? void LIN_SendFrame_IT(void) { __HAL_UART_DISABLE(&huart2); GPIO_InitTypeDef g = {0}; g.Pin = LIN_TX_Pin; g.Mode = GPIO_MODE_OUTPUT_PP; g.Speed = GPIO_SPEED_FREQ_HIGH; HAL_GPIO_Init(LIN_TX_GPIO_Port, &g); HAL_GPIO_WritePin(LIN_TX_GPIO_Port, LIN_TX_Pin, GPIO_PIN_RESET); TIM2->ARR = 900; // 900us break TIM2->CNT = 0; TIM2->CR1 |= TIM_CR1_OPM; HAL_TIM_Base_Start_IT(&htim2); } void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim) { if (htim != &htim2) return; HAL_GPIO_WritePin(LIN_TX_GPIO_Port, LIN_TX_Pin, GPIO_PIN_SET); GPIO_InitTypeDef g = {0}; g.Pin = LIN_TX_
This thread is the follow-up to this thread Hi, is clear that uart pins are connected , the counter of received bytes is a real value. I try this one: 1. Stop RTOEN interrupt 2. And get interrupt from DMA when buffer is HALF and FULL : and I have data in DMA buffer: huart2.Instance->RTOR = 100; // __HAL_UART_ENABLE_IT(&huart2, UART_IT_RTO); // huart2.Instance->CR2 |= USART_CR2_RTOEN; HAL_NVIC_SetPriority(USART2_IRQn, 0, 0); HAL_NVIC_EnableIRQ(USART2_IRQn); this is in : static void MX_USART2_UART_Init(void) and : void DMA1_Stream0_IRQHandler(void) { /* USER CODE BEGIN DMA1_Stream0_IRQn 0 */ HAL_UART_Transmit( &huart1, dma_buf ,DMA_BUFFER_SIZE , HAL_MAX_DELAY); /* USER CODE END DMA1_Stream0_IRQn 0 */ HAL_DMA_IRQHandler(&hdma_usart2_rx); /* USER CODE BEGIN DMA1_Stream0_IRQn 1 */ HAL_UART_Receive_DMA(&huart2, dma_buf, DMA_BUFFER_SIZE); /* USER CODE END DMA1_Stream0_IRQn 1 */ } this is on DMA interrupt. Then we have data:
Hello, Is there an official source listing all evaluation, discovery, or development boards based on STM32H5 MCUs? Thanks,Aymen
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.