Join conversations with your peers and ST experts. Explore the full potential of STM32 microcontrollers for your embedded design.
Most recent activity
Ok, a tricky one. So for services and attributes it's documented that there is 10752 bytes, each service takes up 48 bytes, each attribute 40 bytes, and if you got th number of services and attributes you can compute backwards BLE_ATT_VALUE_ARRAY_SIZE (after you mapped all characteristics to actual attributes), given the upper limit. Easy enough. (GATT_DB_Size_SRAM_NVM.xlsx) My problem is now BLE_MBLOCK_COUNT. There is this macro:#define BLE_TOTAL_BUFFER_SIZE(n_link, mblocks_count) \ (16 + BLE_FIXED_BUFFER_SIZE_BYTES + \ (BLE_PER_LINK_SIZE_BYTES * (n_link)) + \ ((BLE_MEM_BLOCK_SIZE + 8) * (mblocks_count)))What is the limit for BLE_TOTAL_BUFFER_SIZE ? If that is known, I can compute backwards to get "mblock_count" for a known "n_link". Or is the documented 10752 byte number the limit for "BLE_TOTAL_BUFFER_SIZE()" plus the BLE_NUM_GATT_ATTRIBUTES / BLE_NUM_GATT_SERVICES / BLE_ATT_VALUE_ARRAY_SIZE database size ?
Hi,I am using an STM32G474 DAC with DMA and TIM6 trigger.My sine table is:uint16_t sine_table[SINE_SAMPLES] ={ 2047, 2248, 2446, 2641, 2831, 3012, 3185, 3346, 3495, 3630, 3749, 3853, 3939, 4006, 4055, 4085, 4095, 4085, 4055, 4006, 3939, 3853, 3749, 3630, 3495, 3346, 3185, 3012, 2831, 2641, 2446, 2248, 2047, 1846, 1648, 1453, 1263, 1082, 909, 748, 599, 464, 345, 241, 155, 88, 39, 9, 0, 9, 39, 88, 155, 241, 345, 464, 599, 748, 909, 1082, 1263, 1453, 1648, 1846};I found that this configuration works:Memory data alignment: Half WordPeripheral data alignment: WordBut this does not work:Memory data alignment: Half WordPeripheral data alignment: Half WordWhy does the DAC require Word (32-bit) peripheral alignment even though the DAC data is only 12 bits?Also, how do I know which peripheral requires Byte, Half Word, or Word DMA data alignment?Is there a general rule or a specific register description I should look for in the reference manual?
Board: STM32F429I-DISC1 (the official ST discovery board), using its onboard SDRAM chip (IS42S16400J-7TLI, 8MB)Framework: Zephyr RTOS 3.7.0What I'm trying to do:This board has a small TFT LCD screen attached to it. I'm trying to display an image/text on that screen by drawing directly into the external SDRAM chip, which acts as the screen's picture buffer (framebuffer) - the display hardware (LTDC) continuously reads whatever's in that SDRAM and shows it on the screen. So the whole approach depends on being able to reliably write pixel data into SDRAM and have it come back out correctly.The problem, in plain terms:Whenever I write a value into the SDRAM and immediately read it back, one specific bit out of the 16 bits always comes back wrong - always the same one, every single time, no exceptions. For example:I write: 0xABCD → I read back: 0xAB4DI write: 0xBADC → I read back: 0xBA5CI write: 0x89EF → I read back: 0x896FNotice in every case, the value comes back almost identical to wh
No PF0 or PF1 on NUCLEO-H533RE even though the schematic and documentation show PF0 on CN7 pin 29 and PF1 on CN7 pin 31. Are pins 29 and 31 connected to anything or is this a documentation error?
hi i have a STM32 NUCLEO L011K4 working perfectly, i’m looking for ways where if i could power it up from external power source example battery through pins
Hello everyone,I am using the X-NUCLEO-WB05KN1 on a NUCLEO-U083RC. I have already read the documentation on the XCube Sofware package and flashed the shield with the SPI.hex firmware. I am testing the Beacon application but when I get to the hci_reset() function it always returns a timeout and the execution does not proceed. I have already tried the 2.1.0 version and the 1.1.0 version of the software package and I got the same problem on both. I have also tried to set the SPI CLK pin with PULL UP configuration as it was noticed on a previous topic but without success. Can anyone help please?Best regards.
STM32F407 CAN1: INAK not set in Keil µVision SimulatorI am implementing a bare-metal, polling-only CAN1 driver on an STM32F407VG in Keil µVision Simulator.During CAN initialization:CAN1->MCR.INRQ = 1;while (CAN1->MSR.INAK == 0){ /* timeout */}MCR.INRQ successfully becomes 1, but MSR.INAK never changes from 0, so the program remains stuck in the loop.I have verified: STM32F407VG is selected and Use Simulator is enabled. CAN1 clock is enabled (RCC->APB1ENR bit 25 = 1). CAN1 register writes work; for example, MCR.INRQ and BTR fields update correctly. Manually setting INRQ=1 in the CAN1 peripheral window also does not cause INAK to become 1. Similarly, setting MCR.SLEEP=1 does not cause MSR.SLAK to become 1. TSR.TME0/TME1/TME2 also remain 0. Is the CAN1 peripheral state-machine behavior (INRQ → INAK, SLEEP → SLAK, mailbox status, etc.) actually supported for the STM32F407VG in the Keil µVision simulator? Or is there a specific configuration required for these hardware
While driving STM32303E-EVAL with STEVAL-IPM20B in sensorless (Observer +PLL) foc mode , speed feedback occurs at below 400 RPM and motor stops.
Hi,for a project involving a custom educational flight controller, I need to use the following hardware:- steval-FCU001V2 board- steval-drone02 drone kitFor clarity, here are st product page links that i used.Manual:https://www.st.com/resource/en/user_manual/um3117-how-to-build-your-own-minidrone-with-the-stevaldrone02-and-stevalfcu001v2-stmicroelectronics.pdfSteval-drone02 Drone kit companion:https://www.st.com/en/evaluation-tools/steval-drone02.htmlSteval-FCU001V2 FCU board:https://www.st.com/en/evaluation-tools/steval-fcu001v2.htmlMy main issues are as follows: I can’t get it to fly with the factory-loaded firmware, and I can’t even reload the firmware.I followed the UM3117 manual to assemble the kit and perform the initial tests. Compared to the materials and manuals available for version V1 of the drone kit and the Steval FCU001V1, this one seems less comprehensive, and in some images the connections aren’t very clear.When I connected the motors according to the manual, I found th
I need to perform lot of mathematical calculations and within a fixed time interval, the micro is STM32G474 my question is even if floating point calculator is available, do you recommend to use fixed point calcuations Q15 format etc. or I can go ahead with floating point calculations, will i get same performance? Please clarify.
Evaluating the STM32G081B-EVAL board, and I’m struggling to find the sizes of the two DC barrel jacks on the board and UCPD daughter board (5V CN16 and 19V CN3). As I understand it, it would be sufficient to power CN3 and let that power the mainboard, but I can’t find either of these sizes.Checking the BOM shows CN3 as Qiaod DC-094, but I can’t find any information about this either.Does anyone know what size of power supply barrel jack we will need for either (preferably CN3)?
Hi,I am working on a custom board using STM32H745XI MCU.I am facing an issue on one particular board.The same source code works correctly on our other boards with the same MCU and hardware. On the problematic board: The firmware can be programmed successfully using STM32CubeProgrammer. After programming, the firmware runs normally. But when I debug the same firmware from STM32CubeIDE using ST-LINK, execution reaches Reset_Handler and then main(). HAL_Init() is entered, but it does not return. After debugging HAL_Init(), I found that execution is actually hanging at: HAL_Delay(1000);inside HAL_Init().The relevant flow is:Reset_Handler ↓ main() ↓ HAL_Init() ↓ HAL_InitTick() ↓ HAL_MspInit() ↓ HAL_Delay(1000) ↓ HANG ↓SystemClock_Config() ← never reachedMy understanding of the problemHAL_Delay() depends on the HAL tick counter (uwTick) being incremented periodically by the SysTick interrupt.Normally the flow should be:SysTick interrupt
I’m running into a ‘Heisenbug’ crash (just adding or moving a bit of general code between builds makes it either crash or work), and when it crashes, the STLINK-V3MINI can’t attach, or if already attached, it fails to halt the processor.Any tips or advice about catching it in the act or theories as to the cause?
Greetings,We have a new HW design based on the STM32H573ZI. We are using the USB port and have itgoing to a 4-pin micro-USB connector with VBUS, D-, D+, and GND. I would like to run an H5 Example application to verify that the HW is functional, something like the Ux_Device_HID example.However the Ux_Device_HID examples I see seem to only support USB-C with USBPD (Power Delivery). Are there any simple Device Only examples which natively support micro-USB, or USB-A? ThanksKen CarlsonDraeger Medical Systems
ProblemI am working on an STM32H743 and I have implemented a custom bootloader that should be able to jump to the STM32 internal system memory USB DFU bootloader.The application can request a firmware update by setting a flag (in the BKPRAM) and performing a system reset. After the reset, my custom bootloader detects the flag and tries to jump directly to the STM32 system memory DFU bootloader.The relevant part of my bootloader is:int main(void){ if (Bootloader_IsUpdateRequested()) //check if update is requested { Bootloader_ClearUpdateRequest(); EnterUpdateMode(); //go dfu mode } HAL_Init(); SystemClock_Config(); MX_GPIO_Init(); MX_USART3_UART_Init(); HAL_Delay(100); int err = Bootloader_is_app_valid(&crc); //check if app is valid if (err != 0) { // ... Bootloader_SetUpdateRequest(); NVIC_SystemReset(); } JumpToApplication(); //start application while (1) { }}The function used to ju
Hi,We are using STM32L496RGT6, VDD voltage is 1.8V, our device is low power device, max current available on 1.8V is 13mA. We are using Segger flasher for flashing .hex file to MCU by SWD and Speed 4000kHz. Now while flashing MCU, it takes around 36mA current. Setting as follows, can we reduce programming power by changing any setting in flasher tool.
I have a board which is in the STM32V8 family but i cant find anything about its datasheet or anything to work on it how can i work on a board which has no data sheet or any pin out things , even if i create a file using stmcubeide i cant find its ioc file for that particular project
The GT911 configuration (as far as I know registers 0x8047 - 0x8100, but maybe there is more?) on my module got overwritten by my experiments, and touch now has large dead zones, where no touch is registered at all. The driver/sensor channel map is specific to this panel and isn’t in any BSP, so I have no factory copy to restore from, and I also don’t have a 2nd board.Could anyone with a working DK dump their GT911 config and paste the values? (Or does ST have the default config for this module, I sadly couldn’t find it anywhere?) From my understanding it should be as simple as: uint8_t reg[2] = {0x80, 0x47};uint8_t cfg[186];i2c_write(0x5D, reg, 2);i2c_read (0x5D, cfg, 186);
I hope you are doing well.We are currently working on a Driver Monitoring System (DMS) project at Rapidise Technologies Pvt. Ltd.Could you please let us know if STMicroelectronics has any DMS reference design, application board, or evaluation board based on an STM32 microcontroller?If available, could you kindly share the following:Schematic files PCB/Board design files Bill of Materials (BOM) Hardware design documentation Design guidelines Reference software or demo projects (if available)These reference materials will help us evaluate the platform and accelerate our hardware development.
i started working on the B-G431B-ESC1 board with a 2836 motor but it would not start. so i started looking at the setup and tried different configurations but no luck. the profiler would not run the motor either. after i disconnect the motor and removed the bus voltage, the Iq in the motor pilot still shows significant numbers.. i wonder if this is a sign of damaged board?
Includes support for hardware interrupts and custom config options for the sensor. Code is in fashion of similar drivers already on github but with additional support. It has been tested but I am very new to this so Im sure there are things I missed. Criticism welcome.Repo:https://github.com/mihalamot/STM32-MPU6050-HAL-DriverI am 21yo CS student with a recently found passion for embedded/low level programming. Job market is not the best right now so I am trying to distinguish myself with hobby projects like this one. It would help me a lot if anyone could take the time to check this out and potentially star it. If someone actually used my code I know that it would help my employment chances.Thanks
Hello, I’m working on STM32H533 project with trust zone and secure and non-secure firmware.The project has an OCTOSPI external flash w25q64jvssiq memory, configuring the OCTOSPI in the non-secure side. I have configured the SAU unit for memory mapped mode, gice access to the OCTOSPI from the secure side with HAL function: HAL_GTZC_TZSC_ConfigPeriphAttributes(GTZC_PERIPH_OCTOSPI1,GTZC_TZSC_PERIPH_NSEC | GTZC_TZSC_PERIPH_NPRIV); At the non-secure side I can write/read the memory using QSPI instruction. Also I can change to memory mapped mode and have access with debugging tool (uVision).When I change to memory mapped mode and use any instruction to acces directly to memory an interruption occurs and give back to secure side on SecureFault_Handler showing AUVIOL violation. Attached you can find the SAU configuration file, made by myself because STM32CubeMX does not make any change in the file, like this post: So, obviously I missed something or I’m doing some mistake, I need help ASAP t
Hello everyone,I am experiencing an issue with MotorPilot on a new laptop.Problem descriptionWhen I start MotorPilot, the application window opens but:I can only see a black screen whit a white arrow the content is flickering no GUI elements are visible or usableThe issue only affects the application window, not the whole system.System informationOS: Windows 11 Laptop: New system (Intel Core Ultra 7 255HX + RTX PRO 2000)Additional observationsThe program seems to be running, but the UI is not rendered correctly This looks like a graphics / rendering compatibility issue Problem occurs only on the new laptop (older systems worked fine)What I already triedRunning as Administrator Disabling fullscreen optimizations(no improvement so far)Has anyone experienced the same issue with MotorPilot?Is there a known workaround? Can hardware acceleration be disabled? Are there recommended settings for modern GPUs?Any help would be appreciated.Thanks!
Hello Team, I am using STM32N6, Now i have initialised STM32N6’s XSPI1,XSPI2 at 1.8v (set VDDIO-2,VDDIO-3 = 1.8V), VDD=3.3V, If I use GPIOs from the XSPI1 and XSPI2 pins, will those GPIOs have a high value (1) in the range of 1.8v or 3.3v? Thank you
Hi everyone,I am working with an STM32U5 device and have enabled TrustZone (TZEN = 1) using STM32PROGRAMMERI created both the Secure and Non-Secure projects, and they compile and program successfully.ProblemAfter downloading the firmware from STM32CubeIDE:Programming completes successfully. The application does not start automatically. My LED does not blink.However:If I press the hardware RESET button, the LED immediately starts blinking. If I start a Debug session, the LED also starts blinking.So the firmware itself appears to be correct because it works after a reset.What I have verifiedTrustZone (TZEN) is enabled. Secure and Non-Secure projects are generated by CubeMX. Secure project jumps to the Non-Secure application. Programming finishes without any errors. The issue only occurs immediately after programming. Without TrustZone, the application starts automatically after programming.My questionIs this expected behaviour with STM32U5 TrustZone?Has anyone experienced the same issue
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.