Join conversations with your peers and ST experts. Explore the full potential of STM32 microcontrollers for your embedded design.
Most recent activity
iam working on stm32h7a3zi controller in that datasheet they mentioned up to 164 I/O pins capable of 5V tolerant but they didn,t mentioned about which pins are capable of 5v tolerant
Hello, I have found some "typos" in TouchGFX while trying to generate code with STM32CubeMX on Linux (so with case sensitive file system). The result is that parts of the generated files "app_azure_rtos.c" and "app_azure_rtos_config.h" are missing. The missing part are the ones allocating and initializing threads for the TouchGFX application, using threadx. The root cause seems to be that the generator is including files like "RTOS_pool_create_X-CUBE-TOUCHGFX.tmp", but the actually generated file name is "RTOS_pool_create_X-CUBE-TouchGFX.tmp". It works on Windows but on Linux the file is not found and so the section contained in that tmp file is missing in the resulting code. A fix I just tested locally is to rename the tmp files which are not found to match the real pack name, which is "X-CUBE-TOUCHGFX", with all capital letters. So based on the zip file available here : https://www.st.com/en/embedded-software/x-cube-touchgfx.html , it means : - In STM32CubeMX/STMicroelectronics.
I have read that in the MCSDK, there is an overmodulation technique that could exceed the linear region of the SVPWM. However, without it, I see in the WC Workbench, that the maximum modulation than can be achieved even without overmodulation is 100% so the modulation index will be equal to 1. Moreover, without overmodulation, I can see that I could attain a modulation index equal to 1 which is superior to the linear region which is 0.866. So what is the role of the overmodulation flag, and what is the difference without it?Thank you
Hello everyone, I am using the LWIP protocol stack on an STM32H743.I'm a bit confused about the MPU configuration here.I currently have the DMA receive and transmit descriptor addresses set to 0x30040000 and 0x30040100 respectively.The DMA receive buffer (RxBuff) address is set to 0x30040200.My configuration is as follows:HAL_MPU_Disable(); MPU_InitStruct.Enable = MPU_REGION_ENABLE; MPU_InitStruct.BaseAddress = 0x30040000; MPU_InitStruct.Size = MPU_REGION_SIZE_512B; MPU_InitStruct.AccessPermission = MPU_REGION_FULL_ACCESS; MPU_InitStruct.IsBufferable = MPU_ACCESS_BUFFERABLE; MPU_InitStruct.IsCacheable = MPU_ACCESS_NOT_CACHEABLE; MPU_InitStruct.IsShareable = MPU_ACCESS_NOT_SHAREABLE; MPU_InitStruct.Number = MPU_REGION_NUMBER5; MPU_InitStruct.TypeExtField = MPU_TEX_LEVEL0; MPU_InitStruct.SubRegionDisable = 0x00; MPU_InitStruct.DisableExec = MPU_INSTRUCTION_ACCESS_ENABLE; HAL_MPU_ConfigRegion(&MPU_InitStruct); HAL_MPU_Enable(MPU_PRIVILEGED_DEFAULT); MPU_InitStruct.
Hello all ! I have just purchased from the ST Micro web shop an STLink V2. I need this to change the firmware on a Dragino LAQ-4 air quality monitor, as recommended by Dragino.In order to perform this upgrade, the ST Link has to be used with the STM32Cube Programmer, via the UART option.The problem I am facing is that the Cube Programmer, when I select UART, shows No Comm port selectable. I run Windows 11 Home and, in the Device Manager, the ST link is correctly identified under Serial Bus Devices as STM32 STLink with no warning sign next to it. I have tried re-installing drivers, downloading STLink 009 driver package and installing that.. nothing works.If I use the Cube Programmer, I can update the firmware of the ST Link itself with no issue. I have used the STLink utility (004) as well for upgrading and downgrading the STLink V2 firmware, again with no issue. The STM32Cube Programmer would not see it under UART and in Device manager, there is no Com port allocate
We are facing a technical issue creating a TouchGFX project. We suspect it is an inherent issue with ST’s toolchain —STM32CubeMX and TouchGFX—when used with the official STM32H757 Eval Kit.Issue at Quick Glance:1. Enabling LTDC in STM32CubeMX automatically enables DSI, even when we intend to use only RGB888 via CN20 (as in our custom display board with 10.1inch Winstar WF101JTYAHLNB0#).2. This causes build failures and prevents TouchGFX Designer from generating any GUI code, despite the project being valid and configured as per ST training examples.3. We’ve attempted all known workarounds, including patching headers and ensuring paths/configs are correct—yet the issue persists.We kindly request:1. Resolution on how to disable DSI cleanly while keeping CubeMX and TouchGFX code generation functional.2. Clarification on internal tool dependencies between LTDC and DSI, and how to bypass them for RGB-only use cases.3. A reference TouchGFX project using only RGB+LTDC (via CN20) for STM32H757
When I program my STM32WLE5 using STM32CubeProgrammer and UART, a simple push on the reset button does not reset the MCU.I always need to power-cycle it.Why is the reset-pin not working, or why does it not start the application ? Is there a way to configure the option bytes to solve this ? More info : I am doing this on a custom board, which has a USB-UART (CP2102N). Whenever the device comes out of reset, I check for the USB voltage, and if present, I jump to the bootloader.After programming I remove the USB and reset the device again which should start the application. But until now this second reset does not work and I need to powercycle the MCU.
Hi Everyone,I am trying to plot the custom graph using randomly generated float values with up to 5 or 6 digits precision. Basically, I want to plot the graph for micro level data. For ex: my random float data is 0.19XXXX and my observations are like, if my 3rd digit is >= 5 then it is showing logic HIGH on the graph and if it is <5 then it is showing as logic LOW irrespective of 4th, 5th and 6th digit data. That means, if data is 0.192789 -> Low on the graph and 0.195123 -> High on the graph. Please let me know if any additional details are required. Thanks for your support.
Hello,I've just started working with TouchGFX and I would like to know if there is a possibility of showing an image (for example a .bmp) given the starting memory address where this asset is stored in the internal flash memory.The idea is to have a custom image stored in a specific location that the customer can edit from the bootloader when switching on the machine (let's say the new customized image will take the place iin the flash memory of the old standard one). Is it possible to do something like that? Can anybody give me some advice? The microcontroller is quite limited in both flash and RAM (STM32G0B0RET6)Thank you!M.
Dear ST, Will you be releasing a variant of the H5 with both USB HS support and hexadeca/hspi/xspi support?It seems confusing that your U5 series supports this but your higher speed more performance range doesn't. Thanks.
How about the lifecycle of the STM32L151? We are designing a new project. Is it available in another 15 years?
I need to complete a project to use a microcontroller, STM32 and Keil software to measure barometric pressure, ask for guidance or resources,please...
I am using Nucleo-G491RE. I am debugging through the built-in ST-Link using STM32CubeIDE 1.18.1. My design uses opamp1 in standalone mode, which assigns OPAMP1_VOUT to PA2 and OPAMP1_VINM to PA3. What configuration of solder bridges will bring these opamp signals to the Arduino or Morpho connectors? I have studied the user manual (MB1367) section 6.7, but it is not clear to me.
I made a test project for h7s7 using cubeIDE,the structure generated is below:Then I opened touchgfx designer and import a blank UI, when I tried to build the project, a error came out:Generate CodeGenerateWrote generated/gui_generated/include/gui_generated/screen1_screen/Screen1ViewBase.hppWrote generated/gui_generated/src/screen1_screen/Screen1ViewBase.cppDoneGenerate Assetsmake -f simulator/gcc/Makefile assets -j8Reading ./application.configReading ./target.configDonePost Generatetouchgfx update_project --project-file=simulator/msvs/Application.vcxprojDonePost Generate Targettouchgfx update_projectUnable to locate D:/STM32CubeIDE/workspace_1.7.0/7s7Test/.cprojectFailedFailed The .cproject is actually located in D:/STM32CubeIDE/workspace_1.7.0/7s7Test/Appli/.cprojectbut touchgfx designer goes to wrong folder.Anyone who can help?
As given on datasheet this microcontroller can support 10/100 Base T Ethernet. Is there any probability that this microcontroller supports Gigabit Ethernet and if yes, please provide the recommended circuitry for the same.
Hello,Why is the bus voltage remain about 330v when motor max-voltage is changed to 280v ?the attchment is the status of Motor Pilot based on STEVAL-CTM010V1 .
I am working on a project using the STM32H743ZI microcontroller.I want to implement SPI communication using the LL (Low-Layer) drivers instead of HAL. :question_mark: Can you confirm whether the STM32H743ZI supports LL SPI driver APIs like LL_SPI_Init, LL_SPI_TransmitData8, etc.? Also, are there any specific settings or header files (like USE_FULL_LL_DRIVER) required to enable these LL functions in STM32CubeIDE Does STM32H743ZI support SPI communication using LL drivers? I’m using STM32CubeIDE.SPI1 is enabled, but LL_SPI functions are disabled unless I define USE_FULL_LL_DRIVER.Is this the correct way to enable LL SPI support?
Hi, I'm using an STM32F767 with both USB OTG FS and HS in Host mode. FS is working fine with USB MSC + FatFS, and I can create files on a USB stick. HS is set to use internal FS PHY (no external ULPI). It detects the pendrive (HOST_USER_CLASS_ACTIVE), but FatFS fails to create/open any file (f_mount or f_open returns FR_DISK_ERR). This happens in both bare-metal and FreeRTOS.If I disable FS, HS works fine. But when both are active, only FS works for file ops. Is there any way to get FS and HS USB MSC + FatFS working together when HS uses internal FS PHY? Any example or suggestion to fix this dual-port issue would be invaluable. Thanks!
Hello. I've been trying to implement FreeRTOS and TouchGFX into my STM32G071RB + GFX01M2 application (eventually I'd like to use G0B1RE for extra RAM). I've followed the link: https://support.touchgfx.com/docs/development/touchgfx-hal-development/scenarios/scenarios-configure-rtosbut am experiencing issues trying to get my code to work. The main issue I'm dealing with is the code fails to initialize execute MX_TouchGFX_Init(). After some digging around, I noticed that the code hangs in HAL_delay(100), line 284 of MB1642DisplayDriver.c. Further digging, I found that the external interrupt of the DISPLAY_TEARING_EFFECT_Pin is triggered, which results in the calling of some RTOS functions before the kernel has even started. I noticed that this only happens after Display_DCS_Send_With_Data(DCS_SET_TEAR_ON, arguments, 1) is called. I can make OSWrappers functions check if the kernel has been started, but this causes other problems and I am not sure if this is the correct appr
Hello, I have a custom Board based on the EVSPING4 Dual. I was able to flash the code and Debug with a segger j-link. I added a Uart message after the init and I could see the message with putty. But when I try to connect with motor Pilot the error No STlink connectet pops up. I generated the code with motor control workbench and enabled motor control. In the code the uart is initialized but i cant find any code to actually communicate an control the motors over uart. Thanks
Colleagues,I need to implement the BLE_CableReplacement project on the b_wb1m_wpan1 device. Since I don’t know the services of this project (the BLE_CableReplacement.ioc file is not included), I tried to adapt the project for the b_wb1m_wpan1 device in IAR.Steps I took:In IAR General Options, selected ST STM32WB1MMC.Copied the B-WB1M-WPAN1 folder into the BSP directory of the BLE_CableReplacement project.Added a reference in the preprocessor options.Removed stm32wbxx_nucleo.c from the project tree.Replaced it with b_wb1m_wpan1.c and commented out all instances of //#include "stm32wbxx_nucleo.h".Opened the standard set of files:stm32wb55xx_flash_cm4.icfstartup_stm32wb55xx_cm4.ssystem_stm32wbxx.cReplaced their contents via clipboard with the corresponding files from the BLE_HR_p2p_Sensor project.The system prompted me to copy b_wb1m_wpan1_conf.h into the Core → Inc directory. I did so.Replaced all instances of DMA2_Channel4 with DMA1_Channel5.After these changes, the project compiles but
Hi everyone,I'm working with the STM32F030 and recently ran into a hardware limitation that I unfortunately discovered only after designing my custom PCB:I'm using PA4 (TIM14_CH1) to control an LED driver (like SM16126 or WS2812), but just realized that TIM14 has no DMA support on this MCU.So now I'm trying to find a workaround to still achieve DMA-controlled PWM output on PA4 without redesigning the PCB.🧠 My current idea:Since TIM14 can still generate PWM on PA4, I thought of using another timer (e.g. TIM2) as a DMA trigger source to regularly write new values into TIM14->CCR1, changing the PWM duty cycle every 1.25 µs (or whatever timing is required).So the setup would be:TIM14 is configured for standard PWM output on PA4TIM2 runs at e.g. 800 kHz and triggers a DMA transfer every 1.25 µsDMA writes the next CCR1 value from a pwmBuffer[] to TIM14->CCR1→ This way, the output waveform on PA4 changes duty-cycle at each step, encoding the bits I need (T0H/T1H), while the CPU stays f
I am still very new to embedded programming. I am trying to walk through the SBSFU example application for the B-U585I-IOT02A from STM32CubeU5. The board I am using is STM32U5A9J-DK. I tailored some of the build settings in STM32CubeIDE for STM32U5A9J-DK according to the README. In order to get things to work, for the configuration, I had to disable Anti-Tamper (since with it enabled, the main menu would not display). I have a few questions:Besides the build settings, are there any hardware related code changes that I need to tweak in order to get the example running correctly? The two boards seem to have similar hardware layout for user button and led6 (but I wasn't sure if there were any hardware specific changes that I needed to make).When running the application and selecting option 1 (Test Protections) from the main menu in Tera Term, I get that Data Secure Start and End has been DENIED as well as some other reading of flash bytes. Is this the expected result? I've attached the te
For context , i was trying to testout OMEiRoT and DA ,i successfully managed to lock , and regress using the password method and i tried to replicate the STiRot method shown in the STiRot handson video to try the OMEiRoT example project in the nucleoH563 projects but some where along the way my dumb ass missed some information and when i flashed the project , the previous application is running howwever the DA got turned on and i got locked out and i have tried all the key and certificate combo but couldnt connect to the board, if there by chance any way i can recover this nucleo board , its my second bricked nucleo and i really hope i can some how manage to regress it and sadly as i was just testing LED blinking i havnt implemented any bootloader ,and i would appreciate any links to a good example for adding bootloader before i try to continue my learning journey any further so i have atleast one more way to recover the device if anything goes wr
Hi, There would appear to be an error in the HAL_CORDIC_Calculate that results in errors when gcc optimsation O3 is turned on. I had the following code:void CORDIC_SineCalcSingleValue(float radiansNorm, float sin) { float angle_q31f; int32_t angle_q31[1]; /* Convert radians normalised over pi to Q31 format */ angle_q31f = radiansNorm * Q_31; angle_q31[0] = (int32_t)angle_q31f; // Convert to Q31 integer format int32_t result_q31[1]; // Output array Cos then Sin /* Calc sine and cos with CORDIC */ if(HAL_CORDIC_Calculate(&hcordic, angle_q31, result_q31, 1, 500) != HAL_OK) /* HAL_MAX_DELAY */ { // Handle error return; } // /* Compiler barrier to prevent reordering */ // __asm volatile ("" ::: "memory"); sin = (float)result_q31[0] / Q_31; // Convert back to float } My theory is the following although nit is probably wrong.This code fails because the HAL_CORDIC_Calculate argument result_q31 is not specified as volatile by the H
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.