Join conversations with your peers and ST experts. Explore the full potential of STM32 microcontrollers for your embedded design.
Most recent activity
Hi I'm using STM32G0B0RET6, and im using ADC Channel 1,4,5,6,7,10,11,15, and 16 . and sequencer is set to not fully configurable because if set to fully configurable then i can't use Channel 15 and 16.So here for all ADC channels i'm getting same values, can anyone help me resolve this issueInitiated like this HAL_ADCEx_Calibration_Start(&hadc1);andthis my ADC reading part HAL_ADC_Start(&hadc1);HAL_ADC_PollForConversion(&hadc1, 200);chanel1 = HAL_ADC_GetValue(&hadc1); //MDB 4 Vout sense HAL_ADC_PollForConversion(&hadc1, 200);chanel4 = HAL_ADC_GetValue(&hadc1); //Vcharge sense HAL_ADC_PollForConversion(&hadc1, 200);chanel5 = HAL_ADC_GetValue(&hadc1); //MDB 3 Vout sense HAL_ADC_PollForConversion(&hadc1, 200);chanel6 = HAL_ADC_GetValue(&hadc1); //MDB 2 Vout sense HAL_ADC_PollForConversion(&hadc1, 200);chanel7 = HAL_ADC_GetValue(&hadc1); //MDB 1 Vout sense*/ HAL_ADC_PollForConversion(&hadc1, 200);chanel1
I am using the debugging mode in STM32CubeIDE, and the compilation result shows that there is insufficient RAM.27_Touch_Appli.elf section `.bss' will not fit in region `RAM'region `RAM' overflowed by 94904 bytes
hello, I have a can bus with 2 node (one STM32G0B1 with SN65HVD1050DR transcriver and one esp8266 with MCP2515 module) that comunicate over canbus at 1Mbps.I am trying to add a third node, it is a blue pill STM32F103C8T6. The chip onboard looks genuine (i have also tested the usb double buffer on it and it works) but who knows...Transcriver attached to STM32F103 is a SN65HVD1050DR, as for the G0B1.The problem is, whith STM32F103 i see only messages coming from STM32G0B1 (and not from the other node on bus), and it looks like it is not sending messages (other nodes on the bus don't receive also if they are accepting from any id). My ideas are: 1- fake chip, so canbus will never work properly, 2 - bad code.Here are relevant code parts for STM32F103, do you see errors (i am quite new to C programming)?With this code, the main loop run for some seconds (circa 10) than it enter in Error_Handler function, if i activate the AutoRetransmission it happen
Hello everyone,I already asked similar question but I got no sensible answer yet. I am trying to implement the Custom HID drivers in the STM32UG7VJT microcontroller, in standalone mode, so no RTOS. The only thing that I can find from STM32 is this example https://github.com/STMicroelectronics/stm32-usbx-examples/blob/main/Projects/STM32H743I-EVAL/Applications/USBX/Ux_Device_CustomHID that uses the RTOS. I am trying to remove the RTOS from it but until now I didn't even manage to get the descriptors right. The device is enumerated but not recognized. So does anyone have any idea on how to make this work? I already looked at all the tutorials available, they don't fit my case, all of them are based on the H7 family which seems to have different architecture for the USB. Thank you in advance
I am using an STM32H757 for a composite USB device with a ULPI HS PHY. I am streaming video data to the device via an OUT endpoint from the host PC (Windows 11). Streaming can be successful for more than 15 minutes but then the host suddenly stops sending packets. Each individual packet is 512 bytes. A typical sequence captured by a USB analyzer is: OUT txn OUT packet (3 B) DATA1 packet (515 B) ACK packet (1 B) OUT txn OUT packet (3 B) DATA1 packet (515 B) ACK packet (1 B)If the device is not ready to receive the packet, then the DATA1 packet is NAKed by the device and the host responds with a PING to see when the device is ready. In this case, the sequence looks like this: OUT txn (NAK) OUT packet (3B) DATA1 packet (515 B)  
Hi, On STM32G071CBU6, when PB15 is used as CC2 with DBCC2 shorted to CC2, does the ROM bootloader ever drive PB15 as SPI2_MOSI, or does the CC/dead-battery own the CC2 pin and that path always takes priority? This detail is critical for our design because the device is bus-powered and relies on the dead-battery path to manage initial power-up. If the bootloader were to override PB15 and drive it as SPI2_MOSI while the flash is blank, it could cause a power drop when the ROM bootloader starts. I checked the datasheet, reference manual, programming manual, and bootloader manual, and none of them explicitly state how the ROM bootloader handles SPI2_MOSI when that pad is also CC2 with DBCC shorted. Could you please clarify? Thanks
Hi,I am experiencing issues with UART single-wire (half-duplex) communication on an STM32H723. The UART handler reports error code 4 (frame error). I have tried a wide range of configuration settings without success.The same setup works correctly on an STM32F439, but not on the H723. Do you have any suggestions on what I could try or what might be causing this behavior.BR
Dear ST members,My application is using the EEPROM emulated library (X-CUBE-EEPROM) with an STM32WB microcontroller. I noticed that, when I update a variable, the page can be padded with random zeros. Attached are screenshots of the page before and after two variables were updated.I initially thought this could be unused variables, since we need to define the NB_OF_VARIABLES. Even reducing its value to match the number of variables I am using, the random zeros are still added to the page. The AN4894 says there is a wear levelling algorithm but this is the worst I have ever seen on an emulated EEPROM implementation. This makes it difficult to calculate the erase cycles I will need for my application. Can you clarify where these random zeros are coming from and if I can get rid of them? Regards
Hi,// WM8904.c int32_t WM8904_Init(WM8904_Object_t *pObj, WM8904_Init_t *pInit) // ... if ((WM8904_CurrentDevices & WM8904_OUT_HEADPHONE) == WM8904_OUT_HEADPHONE) { ret += WM8904_SetVolume(pObj, VOLUME_OUTPUT, (uint8_t)pInit->Volume); } // ... /* Store current devices */ WM8904_CurrentDevices = (pInit->OutputDevice | pInit->InputDevice); in line 4, WM8904_CurrentDevices is still 0, so the gain is not set.I'd change the line this way: if ((pInit->OutputDevice & WM8904_OUT_HEADPHONE) == WM8904_OUT_HEADPHONE) { ret += WM8904_SetVolume(pObj, VOLUME_OUTPUT, (uint8_t)pInit->Volume); }
Hi,I'm busy with my own BootLoader. I can erase the flash, required to store the program. But writing to the flash causes a HardFault. (I also write to flash in my application to store the configuration. That seems to work, so (normally) I can write to the flash without any problems).My routine looks as follows (msg.Data is the received information from my PC. The contents look fine): HAL_FLASH_Unlock(); uint64_t* pData = (uint64_t*)&msg.Data; while (m_CurrentAddress < tempEndAddress) { HAL_FLASH_Program(FLASH_TYPEPROGRAM_DOUBLEWORD, m_CurrentAddress, *pData); m_CurrentAddress += 8; pData++; } HAL_FLASH_Lock(); The debugger shows this information:I do not know how to (further) debug this information.Thanks in advance.Greetings,ErX
I accidentally configured PCROP protection on my STM32H755XIH6 that has effectively locked me out of almost the entire flash memory, and I'm unable to recover using standard methods.Current Situation:Device: STM32H755XIH6 (2MB dual-bank flash: Bank1=1MB, Bank2=1MB)PCROP Settings:Bank 1: PROT_AREA_START1=0x2 (0x08000200) to PROT_AREA_END1=0xFFF (0x080FFFFF)Bank 2: PROT_AREA_START2=0x2 (0x08100200) to PROT_AREA_END2=0x81FFFFF)Available Space: Only 512 bytes per bank (0x08000000-0x080001FF, 0x08100000-0x081001FF)Problem: Almost all of flash is PCROP-protectedI tried the below methods following some other discussion on the forum:STM32CubeProgrammer GUI - option byte modifications fail with "changes can't be applied after OB_LAUNCH" (It connects under reset but I still get changes cant be applied after OB_LAUNCH error)CLI commands to modify PROT_AREA_START/END - all fail with same errorRDP level cycling/regression (0xAA → 0xBB → 0xAA) - completes but
Hello, i'm trying to using mce encription for external flash. I have the stm32h7s7-dk eval board.my mce configuration for the external memory init; my mce configuration for the boot main I followed the tutorial series https://www.youtube.com/watch?v=JxhKmVUB2Ws&list=PLnMKNibPkDnFQXYK0ztHV9iMVS6EAtKpD&index=10. And i tried allthing and i applied successfully at my eval board. But the mce is so different. In the tutorial the instructor used different board hence the board is using mce1. But i'm using the mce2 because the xspi2 connected mce2. And the mce2 couldnt support the aes.My memory write and memcopy methods;key and other variablesDecrypted result (wrong values, it must be start from ram base)encripted file; Could you help me ?
Hi STM Community, I’m currently working with the NUCLEO-G491RE board and need some guidance regarding DFU (Device Firmware Update) mode. According to the documentation, CN2 is marked as the DFU connector. Based on that, I have soldered 4 pins on CN2. I also have a USB Type-C female breakout board, and I’d like to connect it properly to CN2. USB Type-C Female Breakout Board. However, I’m a bit confused about the following points: CN2 pin mapping Which pin on CN2 corresponds to GND, D+, D-, and 3.3V / VBUS? Entering DFU mode What are the exact steps to put the NUCLEO-G491RE into DFU (Device Firmware Update) mode? Do I need to configure BOOT0, jumpers, or any CubeMX settings for this? At the moment, when I connect the board to my PC using the USB breakout, the device is detected as an “Unknown USB Device”, so I assume I’m missing something in either the wiring or configuration. I would really appreciate it if someone could: Clarify the CN2 pinout, and Explain the cor
Split from Issue with UART/USB Rx interrupt in STM32F407VGT6 and using DP83848 LWIP stack - which was solved some time ago.@Satya_VVM can you help me with the same project.I am working on UART to ethernet convertor but I am not able to find any reference .
Hey, our team is working with TouchGFX Designer (4.19.1) and IAR IDE.TouchGFX assets include 50 MB of images, videos, fonts and texts.We are trying to find a way to change the app without touching and flashing TouchGFX assets.The TouchGFX should stay constant while only the app code itself changes.Meaning compiling the code without compiling TouchGFX assets again to get a smaller hex file to flash/store, and current TouchGFX assets that are stored in the external memory will work, so basically we want to exclude all TextFlashSection, ExtFlashSection and FontFlashSection files from compilation.The main goal is to store a backup version of the code inside the internal flash for cases of software updates, so we want to compile only the app code.Is it related to the linker file or some other configuration file?
I'm currently looking at something like thisSTM32N657A0But they sell a non AI accelerator version STM32N655A0Is there any benefits to using the non AI version of the chip. Other then saving a few dollars on the chip?
According to BLE spec, whitelisting is not related to paired or bonded devices. Our application uses the advertisement and scanning for sensor beaconing application. STM32WB55 is not able to scan the interested sensors by whitelisting. STM32WB is not supporting whitelisting in advertisement scanning.Now with scanning I am getting too many advertisement reports in the bluetooth dense environment.
Hello guys,I am using Ethernet and USB together. Ethernet in rmii mode without RTOS and Using USB as cdc,after flashing the program it runs normally but when i ping or Access the IP from web :spider_web: it goes to hard fault handler If USB init () is Commented then everything is working fine but when uncommented it goes to hard fault handlerso i want the solution to use USB and Ethernet simultaneously and can it be used without RTOS or should we use RTOS?
I'm trying to develop a basic PDM microphone to PCM audio data application on the NUCLEO-U575ZI-Q development board. I have tried to adapt the ADF_AudioRecorder application designed for the STM32U575I-EV and found at https://github.com/STMicroelectronics/STM32CubeU5/tree/5107fbd316d605704bb4c3ebf2126d4d1ba0e763/Projects/STM32U575I-EV/Examples/MDF/ADF_AudioRecorder I can generate the ADF CCK0 clock output on PE09 (confirmed 1.01 MHz with my oscilloscope) and when connected to my PDM microphone, see the PDM output on its DATA line, also using my oscilloscope, and connect this to PE10. Because I have no SAI and no audio CODEC attached, I just want to save the PCM formatted samples to memory at the moment, with a view to exporting over the VCOM port for verification in future. However, I'm stuck at the point of creating the samples. From the .ioc file attached, you should be able to see my configuration is, aside from the SAI, very similar to the example for the other U5 dev boar
Dear ST Support Team,We are currently working with the STM32N657X0H3Q1 controller and configuring TouchGFX to use an external RAM device.The external memory used in our design is S80KS5123GABHB020 (512 MB Octal RAM) connected via XSPI. The external RAM is intended to be used for TouchGFX frame buffers and graphics-related data.While configuring TouchGFX with the external memory in STM32CubeMX / application code, we need to set the base address of the external RAM. However, we would like clarification on the following point:What is the correct memory-mapped base address that should be configured for the external RAM (S80KS5123GABHB020) when used with the STM32N657X0H3Q1 for TouchGFX ?Is this address fixed by the STM32N6 memory map, or does it depend on the XSPI instance and configuration (XSPI1 / XSPI2)?Are there any specific recommendations or constraints for using this external RAM as TouchGFX frame buffer memory?Your guidance on the correct address configuration and any best practice
Is there any example how to create any simple animation? I would like to get object in motion using static isometric view. Object based on the few outlines of rectangles outlines with painter or putting the texture on it. I need to rotate one pseudo 3D rectangle in reference to the other. It is not so hard for 500MHz CPU, the issue comes with additional effects like lighting but it is not so important.
I just flashed the end node of the P nucleo LRWAN 3 with the AT master firmware, but I am still unable to send AT commands via my terminal to reconfigure some parameters of the end node. I also made sure I set up all the necessary parameters in the terraterm software correctly and I am still not able to communicate with the end node via terminal using AT commands.
STM32H747XIH6 touchGFX, project root directory, two seperated CM4 and CM7, touchGFX under CM7, when touchGFX designer create code, always to search .cproject under root directory, (.ioc is here, but no .cproject, only .project), under CM7 exist .cproject and .project! this cause touchGFX designer code generate fail!
Hello, Board: NUCLEO-WL55JC2 (2 boards)MCU: STM32WL55JCIDE: STM32CubeIDEProgramming: Bare-metal C or Cube IDE(C/C++) Goal:I want a minimal RF example using two NUCLEO-WL55JC2 boards where one board transmits a simple message and the other receives it and for example toggles an LED . I searched on ST website and GitHub, but most available examples are full LoRaWAN stacks. I could not find a simple RF Tx/Rx reference similar to an LED blink example. I have not written RF code yet and am looking for an official ST reference to start from.Suggest any website reference or youtube videos where i can understand it clearly. Questions:1. Is there an official ST RF Tx/Rx example for NUCLEO-WL55JC2?2. Any recommended CubeWL example or GitHub repository?3. Which example is best for learning basic RF communication? 4. Should i need to use the RF like NRF24L01 Transcever or does it supports? Thanks in advance.
Hi Team,This is Vamsi. I am using a smart display with the STM32C091 MCU and would like to implement OTA updates for this chipset. Could you please suggest the best possible way to achieve this?
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.