Ask questions and find answers on STM32Cube packages, including HAL, LL and middleware, and expansion software.
Most recent activity
My project:https://easyupload.io/m/aqdlx7 Hello, I created a proprietary board with stm32H757IITx. Unfortunately, I have problems with data transfer between M4 and M7.... I am using SRAM4, configured MPU and used github project:GitHub - adailtonjn68/STM32H7xx_inter-core_data_share Unfortunately, but I have a problem all the time in the M7 to upload the data that the M4 is supposed to receive.... When I debug the M4 it works without a problem and the data is placed correctly.The problem always arises here, the code falls into hard fault: int put_to_m4(const int *const restrict buffer, const unsigned int size) { /* Try and get lock */ if (atomic_flag_test_and_set(&shared_data.lock1)) <----- here i have HARD_FAULT { /* Return -1 in case lock is not acquired (used by other core)*/ return -1; } I tried a clean project with open AMP but it also does not work, I have status = -2005 in M4 in this line: /* Create an endpoint for rmpsg communication */. status = OPENAMP_create_endpoint(
Hi,I am trying to initialize and use the internal CRC peripheral in the STM32F412 MCU. My application is based on Zephyr RTOS, using the STM32 HAL.My application defines the CONFIG_USE_STM32_HAL_CRC, so the stm32f4xx_hal_crc.c is included in the build.The application builds and links just fine, and I can call the HAL_CRC_Init, HAL_CRC_GetState and HAL_CRC_Calculate without any problems.Only problem is the calculation is 0 for my 4 test bytes (0x01, 0x02, 0x03, 0x04). Debugging through the code, it does set the "hcrc->Instance->DR" in stm32f4xx_hal_crc.cAre there any additional settings I need to include? Maybe clock configurations?
Hi everybody,I training today to the screen qith the driver ILI9341.I use a library find the net.If i use the SPI in normal mode (pooling) everyhting it's ok.But the time to fill is very long ( like 2 second aprox.). SO i would like use the DMA to see if I can increse the speed to speak with my screen.But it's don't work. In the library ili9341.h i have this line#define ILI9341_SPI_PORT hspi2 extern SPI_HandleTypeDef ILI9341_SPI_PORT; so I comment the previous lin and i have add#define ILI9341_SPI_PORT2 hdma_spi2_tx extern DMA_HandleTypeDef ILI9341_SPI_PORT2; So now in the ili9341.c file.I have comment all the line with _HAL_SPI_Transmit like this ( only 3 lines) : HAL_SPI_Transmit(&ILI9341_SPI_PORT, &cmd, sizeof(cmd), HAL_MAX_DELAY);and replace By this lineHAL_SPI_Transmit_DMA(&ILI9341_SPI_PORT2, &cmd, sizeof(cmd));Do you know how I should replace the file to switch from pooling mode to DMA mode? Thank you
Question moved from this post. no shame I don't have another card I found in the example stm32h747i-disco_demo\STM32H747I-DISCO_demo\EmbeddedWizard a dashboard, can I integrate this dashboard into my project, is it possible, tell me how?
Dear community,My device is a logger. the configuration is over USB (UART vcp) via a web interface.i'm able to connect it, to configure it and store data correctly.i'm using a stm32L05x (whithout embeded DFU) and ,important, no external reset button.My aim is to propose a firmware update over the webpage (device already connected).what do you propose to me for my need.do you have a experience, example or website to explain me the right way to do that .my reseach , give me a pyserial could be a good way for the webinterface.but what about the firmware update ?
I have Nucleo-64 board acting as a USB Host connected to a CDC-ACM device. I am trying to receive data from this device, my method is as followswhile (1){/* USER CODE END WHILE */MX_USB_HOST_Process();/* USER CODE BEGIN 3 */if (Appli_state==APPLICATION_READY){CDC_HandleTypeDef *CDC_Handle = (CDC_HandleTypeDef *) hUsbHostFS.pActiveClass->pData;memset(USB_Rx_Buffer, 0, USBH_CDC_BUFFER_SIZE);Status = USBH_CDC_Receive(&hUsbHostFS, USB_Rx_Buffer, USBH_CDC_BUFFER_SIZE);if (Status == USBH_OK){URB_Status = USBH_LL_GetURBState(&hUsbHostFS, CDC_Handle->DataItf.InPipe);if (URB_Status == URB_IDLE){(void)USBH_BulkReceiveData(&hUsbHostFS,CDC_Handle->pRxData,CDC_Handle->DataItf.InEpSize,CDC_Handle->DataItf.InPipe);uint16_t length = USBH_CDC_GetLastReceivedDataSize(&hUsbHostFS);}if (URB_Status == URB_DONE){uint16_t length = USBH_CDC_GetLastReceivedDataSize(&hUsbHostFS);printf("Received Data Size: %d \r\n", length);} }}For first couple of frames, I get full
STM32L496VET6 – EXTI Not Working After STOP2 Mode Wake-Up1. Part NumberSTM32L496VET6, LQFP100Custom-designed hardware (not a development board)2. EnvironmentIDE: STM32CubeIDE v1.15.0STM32CubeMX: v6.11.0HAL Driver Package: STM32CubeL4 v1.18.0Toolchain: GCC EmbeddedDebugger: ST-LINK V3Host OS: Windows 113. SchematicsPin PE0 is connected to a push-button with an external 10kΩ pull-up resistor to VDD.PE0 is configured as a falling-edge EXTI input (GPIO_EXTI0).Schematic is available if needed.4. Details (Symptoms)EXTI on PE0 (EXTI0) works correctly before entering STOP2 mode.After entering STOP2 using HAL_PWREx_EnterSTOP2Mode(), the device does not wake up when the PE0 button is pressed.No interrupt is triggered, and the MCU remains in low power mode.5. Expected BehaviorA falling edge on PE0 should trigger an interrupt and wake the MCU from STOP2 mode.The MCU should resume operation, restore clocks, and continue running code.6. How to ReproduceConfigure PE0 as GPIO_EXTI0 in CubeMX (falling
hii every one i have a question about setting up the ip of the STM32 MCU remotely when we want to do client server in udp or tcp on stm32 controller , we are used to set the ip address manually in the ioc file in general settings in the lwip section in the middleware tab . and i was wondering if there is a way to set up any default ip of mine , and is there a way to change this ip remotly after i am connected to the stm32 . my goal is to design an application that can give me the ability to access and change the ip and mask and gateway of my stm32 controller , i be very thankful for help and to know if there is a method to do that
Hello Community!I'm busy with a project that needs support for mDNS, after a long search i can't find any documentation howto implement mDNS on a Free-RTOS system. The examples provided by ST are not aware of any OS (I Think).Can someone share some information please?
Moved from the Feedback Forum.The Feeedback Forum is not for product questions.Hi,I'm using Keil platform for programme my STM32 L073RZT6 and I am making it in bare metal. I would like to wake up the STM from any sleep mode using and interruption from the RTC Wake Up. I am using the following code to configure the RTC:/********* Configuración del RTC *********/ // Desbloqueo de la protección de escritura del reloj SET_BIT(PWR->CR, PWR_CR_DBP); SET_BIT(PWR->CR, PWR_CR_CWUF); // Reinicio del RTC SET_BIT(RCC -> CSR, RCC_CSR_RTCRST); for(int a = 0; a <1000 ; a++){} CLEAR_BIT(RCC -> CSR, RCC_CSR_RTCRST); // Establecimiento del reloj para el RTC MODIFY_REG(RCC -> CSR, RCC_CSR_RTCSEL_Msk, RCC_CSR_RTCSEL_LSI); for(int a = 0; a <1000 ; a++){} // Habilita el RTC SET_BIT(RCC -> CSR, RCC_CSR_RTCEN); // Desbloqueo del RTC mediante las claves de seguridad WRITE_REG(RTC -> WPR, 0xCA); WRITE_REG(RTC -> WPR, 0x53); // Establece el modo de iniciación i
I just download STM32Cube_FW_F4_V1.28.0 and using Cube IDE 1.18 run first example follow Documentation in STM32CubeF4GettingStarted.pdf attach. But it can not Build / Run Correctly.Please help me this problem. Thanks so much!
Hi,I'm trying to flash overt build in uart bootlader stm32 slave device. Here is my setup :Master STM32F4 with tinyUSBSlave STM32WLE5 device Master and slave are connected together over uart. Master has control of boot0 and reset ligne of slave device.Master UART2 PD5/PD6Slave UART2 PA2/PA3 I'm able to put slave device into bootloader mode, but when I'm trying to connect with stm32cubeprogrammer over my usb I got NACK command from getId command Here is the output of verbose mode cube programmer:12:43:06:195 : UR connection mode is defined with the HWrst reset mode 12:43:06:257 : RTS low 12:43:06:257 : DTR low 12:43:06:277 : Serial Port cu.usbmodem123 is successfully opened. 12:43:06:277 : Port configuration: parity = even, baudrate = 115200, data-bit = 8, stop-bit = 1.0, flow-control = off 12:43:06:277 : No Init bits value is : 0 12:43:06:277 : Sending init command: 12:43:06:277 : byte 0x7F sent successfully to target 12:43:06:277 : Wait ends after 1 loop, data
NUCLEO-U5A5ZJ-QSTM32CubeIDE Version 1.17.0STM32Cube MCU Package for STM32U5 Series 1.7.0 In the call chain from main() -> SystemClock_Config() -> HAL_RCC_OscConfig(), HAL_OK is not being returned.It seems that the HSE configuration is failing. After calling __HAL_RCC_HSE_CONFIG, the code waits for the HSE to become ready, but it appears to be timing out. I created and built the project as described below.(1) STM32 project -> Borad Selector -> NUCLEO-U5A5ZJ-Q -> Finish(2) Project -> Build All I haven't made any code changes, but if anyone has an idea of what might be causing this, I would appreciate your input.
Hi,I would like to make an application to access micro sd card via SPI from STM32F407VG-DISC1 board. I have configured the pins as seen in table below.Main file is also attached. However, when I run the application I get FR_NO_FILESYSTEM error. My card is formatted as FAT32. It is class4 2GB micro SD card. When I remove the SD card then I received another error that is FR_NOT_READY. So, this got me thinking that, I have made proper connections, but there is problem with the code.Could you please point me to the right direction ? STM32F407VG-DISC1HW125 SD CARD MODULEPC2 MISO PINPC3MOSI PINPB10 SCK PINPB12 GPIO_OUTPUTGNDGND5VVCC
I am writing to address a concern regarding the QSPI External Flash Loader that I have developed, which I have attached below for your reference.The functionality of reading, writing, and erasing operations with the ".stldr" file in conjunction with other project files is working seamlessly. However, I am encountering an issue when attempting to verify the data during the loading/debugging process. I would greatly appreciate your assistance in resolving this matter. If there are any insights or suggestions you could provide to help rectify this issue, it would be immensely helpful.Thank you for your attention to this matter. I look forward to your prompt response.
Hi all,I am trying to implement ring buffer for my board that is STM32F407VG-DISC1. I have found out a tutorial and followed each and every step. However, when I transmitted message via serial console tool (hercules), I dont receive any data in Rx Buffer. In the first snapshot attached, I can observe that Uart_sendstring function is working as I can see on the console (Hercules) "send string works". However, when I send 11111 it is not received, therefore rxbuffer is empty as can be seen in the second snapshot and also uart_write function is not run, as "if(IsDataAvailable())" returns "0". Could you please help me with this ?You can see the repo here.
Hi, 1) I'm using the Nucleo-L496ZG board. I 'am working on Independent Watchdog timer. I'm facing an issue that is my timeout value is 15msec, reload value is 29, so my watchdog refresh should happen till 14msec. But iam unable to refresh the watchdog timer at 14 msec. why? 2)How to se the value of IWDG Window value in IWDG configuration. And how to disable it? what is importance of it in IWDG? Could anyone please assist me on this. Below is my sample code. #include "main.h" /* Private variables ---------------------------------------------------------*/ IWDG_HandleTypeDef hiwdg; UART_HandleTypeDef hlpuart1; PCD_HandleTypeDef hpcd_USB_OTG_FS; /* USER CODE BEGIN PV */ /* USER CODE END PV */ /* Private function prototypes -----------------------------------------------*/ void SystemClock_Config(void); static void MX_GPIO_Init(void); static void MX_LPUART1_UART_Init(void); static void MX_USB_OTG_FS_PCD_Init(void); static void MX
Hi, @B.Montanari We are working with the STM32N6570-DK EVK and developing an application that includes both a Bootloader and an Application. The application requires a contiguous 4MB+ memory block configured as a Heap.We have followed your articles and example code from GitHub to get started. However, when we load the pre-built binaries available within the example to execute application from PSRAM, the Green LED does not blink. Upon investigation, we confirmed that the FSBL executes JumpToApplication, but the application itself seems to get stuck somewhere. Since we are using the external boot option, debugging is not possible.Interestingly, when we build the same application using the LoadAndRun linker file, we can debug it, and in this case, we observe that the Green LED blinks as expected.To verify that the FSBL is booting correctly in Flash mode, we added a blinking LED1 for 2 seconds, confirming that we do reach the Bootloader.Could you provide insights into what might be ca
Moved from MPUs forum: STM32H7 is an MCU - not an MPU.I configured a new project for STM32H745XIH3 with ETH & Lwip Linker file section related to lwip.lwip_sec (NOLOAD) : {. = ABSOLUTE(0x30000000);*(.RxDecripSection) . = ABSOLUTE(0x30000080);*(.TxDecripSection) . = ABSOLUTE(0x30000100);*(.Rx_PoolSection)} >RAM_D2 main file/* USER CODE BEGIN WHILE */while (1) {ethernetif_input(&gnetif2);sys_check_timeouts();// MX_LWIP_Process();HAL_Delay(100);/* USER CODE END WHILE */ /* USER CODE BEGIN 3 */ } I replaced LAN8742 with DP83848 wherever it is required, DP83848_RegisterBusIO(&DP83848, &DP83848_IOCtx); /* Initialize the DP83848 ETH PHY */DP83848_Init(&DP83848); if (hal_eth_init_status == HAL_OK){/* Get link state */ethernet_link_check_state(netif);}else{Error_Handler();} #if 0/* USER CODE END PHY_PRE_CONFIG *//* Set PHY IO functions */LAN8742_RegisterBusIO(&LAN8742, &LAN8742_IOCtx); /* Initiali
Product: RIVERDI RVT70HSSNWC00-B with STM32H757XIH6STM32Cube FW_H7 V1.11.1TouchGFX 4.25.0CubeIDE 1.16.1FreeRTOS 10.3.1, CMSIS_V2I am using the code attached in usb_host.c to read data from a USB Virtual COM barcode reader. The .ioc file is also attached.The code runs fine, however after some hours I get a hard fault. This happens only when the USB-scanner is plugged in. If nothing is plugged to USB it runs fine. I don't do anything with the barcode reader - it is just plugged in and the hard fault occurs.I already tried the following:USBH_CDC_BUFFER_SIZE 1024 to 2048#define USBH_PROCESS_PRIO osPriorityLow to osPriorityNormal#define USBH_PROCESS_STACK_SIZE ((uint16_t)4*2048) between 512 and 8192STM32Cube FW_H7 V1.11.2Any help would be very much appreciated.
I use lan8742 and stm32f429IGT6 to implement Ethernet communication.The files lan8742.c and lan8742.h are the configuration files that I am using.For the reception of Ethernet data, I adopt the interrupt mode to receive data, and use the interrupt mode to send data as well. I am currently encountering a phenomenon that I find rather confusing. During the transmission process, there is a problem of packet loss. After sending, when I read the value of the ETH_MMCTGFCR register, I found that the value read was the expected quantity for sending after my processing, but I did not capture the quantity of Ethernet frames recorded in the ETH_MMCTGFCR register using Wireshark. Instead, I only captured the network packets. Furthermore, through my experiments, I found that if the SR bit is cleared before sending the ETH_DMAOMR and then re-set after the sending is completed, there will be no more loss during transmission, but it will result in loss during reception. I manage the Ethernet buffer ar
Hi all,I am trying to understand how the OctoSPI and QuadSPI peripherals work in single-spi mode, specifically as to how they treat the IO2/nWP line.When the attached spi device (in my case, a NOR flash memory) operates in singlespi mode, i.e. after reset or power cycle, the line used for IO2 becomes nWP (active LOW write protect input to the memory chip).According to the reference manual (sect 19.4.4 of RM0432) and AN4760:Single-SPI mode (from RM0432):The legacy SPI mode allows just a single bit to be sent/received serially. In this mode, thedata is sent to the external device over the SO signal (whose I/Os are shared with IO0). Thedata received from the external device arrives via SI (whose I/Os are shared with IO1).The different phases can each be configured separately to use this Single-bit mode bysetting to 001 the IMODE, ADMODE, ABMODE, and DMODE fields in OCTOSPI_CCR andOCTOSPI_WCCR.In each phase configured in Single-SPI mode:• IO0 (SO) is in output mode.• IO1 (SI) is in input m
Hello Everyone So I'm using a custom made STM32 board having STM32F103C8T6 MCU and after debugging the board using ST Link V2 when I try view the output through USB on my pc using the virtual COM Port and it is not working. As well as I have tried to view the output on the debugger console but it is showing temporary breakpoint for HAL_Init() . If their is any other way to view the output I would love to try and also the drivers I have install from STM32 website are for Win 7,8 versions and when I am connecting my board to my PC and opened the device manager to check the COM Port, in their under Universal Serial BUS Controller it is showing as a Unknown Device with a yellow caution sign. Do i need to have the latest drivers to view the output on Serial Wire mode?? and where can I find the latest driver for Win 11. I have attached the Pin configuration of my board and the code I am using below such that it can help you to understand the problem I am going through. Please guide me throug
Hi, I am using custom board with STM32C071. I am trying to enable USB port with CDC so that my custom board will be visible as virtual com port on PC. After enabling all options and initializations, I was expecting that my board will appear on PC device manager COM port list but it does not appear. Below are the settings: 1. Clock configuration - In my hardware external crystal is connected of 8MHz and I see there is no PLL which can multiply it and hence I am using internal 48MHz clock. 2. USB port is enabled with default settings. PA11 and PA12 pins are used for USB connection in hardware. USB global interrupt is enabled. 3. USBX is enabled from middleware. Device class CDC ACM is only one selected. 4. Most of the settings for USBX is default value except for two of them marked in red color. These values are updated from 1024 to 10000 and 512 to 8000. With default values of 1024 and 512, function MX_USBX_Device_Init() was returning error. After referring to discussions on com
Hi, I am using the STM32ubeMX v6.14.0 to generate a USB-PD DRP following the link below:https://wiki.stmicroelectronics.cn/stm32mcu/wiki/STM32StepByStep:Getting_started_with_USB-Power_Delivery_Dual_RoleI noticed that when I set the CubeMX to have more than 1 PDO, say 7, the macros USBPD_MAX_NB_PDO and PORT0_NB_SOURCEPDO are correctly set to 7 but the USBPD_NbPDO[1] has a value of 1 and I see that only the first element of the PORT0_PDO_ListSRC array is populated. Moreover, I also noticed that the USBPD_PWR_IF_SetProfile function is fixed to get only the first PDO due to explicitly choosing PORT0_PDO_ListSRC[0]. Is this an issue in the cubeMX code generation? Also, I couldn't find anywhere where the PORT0_PDO_ListSRC (and the same way, PORT0_PDO_ListSNK) are iniitialized as in the usbpd_pdo_defs.h file, the externs are enabled and the initialization code is disabled through the #ifndef __USBPD_PWR_IF_C instruction. NB. Attached is t
ST Community highlights – April to June 2026
Already have an account? Login
Enter your E-mail address. We'll send you an e-mail with instructions to reset your password.