Join conversations with your peers and ST experts. Explore the full potential of STM32 microcontrollers for your embedded design.
Most recent activity
I have two issues Project details:a. Custom board.b. MCSDK 6.2.0, FOC, 15HKz , 3 shunt topology , BLDC motor,c. Motor pilot not configuredIssue1- I have calculated the Hall placement angle as mentioned in the documentation in one direction (clockwise). The motor smoothly starts also under loaded conditions, there are no issues. But when i try to spin in reverse direction with negative Iq under the same load it does not start. I plotted Ia, I b using cube monitorMotor does not start in reverse direction.Motor runs smoothly without problem in forward direction. How do i debug the issue?Issue2: Very much related to the above to find the root cause i have tried under no load in another setup using another motorI have followed hall placement angle procedure in one direction (clockwise) and i was successful in running the motor in no load conditions in both directions with +Iq, -Iq. Placement angle was around 60DegressBut if i followed the same procedure to find the placement angle
Moved from this thread. Thanks for the previous response — it helped me understand the configuration better. Now I have a follow-up doubt: In STM32CubeIDE, I can see multiple pin options for FDCAN1_RX and FDCAN1_TX in the pinout view. However, when I checked the STM32H747I-DISCO board, those selected pins (e.g., PB8, PB9, etc.) don’t seem to be accessible via any header pins or exposed GPIOs on the board. So my question is: Are there any accessible pins on the STM32H747I-DISCO board that I can actually use to connect FDCAN1 to an external CAN transceiver like the TJA1051T/3? Would appreciate any guidance — especially if there's a known method to access these signals (e.g., via Arduino headers, PMOD, or solder points). Thanks!
Hello,I am using the P-NUCLEO-LRWAN2 board for LoRaWAN development. While booting up the Gateway, it always gets stuck at the messagePowered by RisingHF & STMicroelectronics-------------------------------------------------------------------------------VERSION: 2.1.7, Nov 6 2018LOG: OFFAT ECHO: ONBAUDRATE: 115200bpsMACADDR: 08:00:27:0C:23:38ETHERNET: DHCPDNS1: 114.114.114.114DNS2: 8.8.8.8NTP SERVER: 1.ubuntu.pool.ntp.orgEUI PADDING: {3, FF}, {4, FF}GATEWAY ID: 080027FFFF0C2338LORAWAN: PublicLORAWAN SERVER: router.eu.thethings.networkUPLINK UDP PORT: 1700DOWNLINK UDP PORT: 1700CHANNEL0: 867100000, A, SF7/SF12, BW125KHz (LORA_MULTI_SF)CHANNEL1: 867300000, A, SF7/SF12, BW125KHz (LORA_MULTI_SF)CHANNEL2: 867500000, A, SF7/SF12, BW125KHz (LORA_MULTI_SF)CHANNEL3: 867700000, A, SF7/SF12, BW125KHz (LORA_MULTI_SF)CHANNEL4: 867900000, A, SF7/SF12, BW125KHz (LORA_MULTI_SF)CHANNEL5: 868100000, B, SF7/SF12, BW125KHz (LORA_MULTI_SF)CHANNEL6: 868300000, B, SF7/SF12, BW125KHz (LORA_MULTI_SF)CHANNEL7
I'm trying to implement the USBX Audio class using the board STM32U5A9J-DK and the USBC port present on the board.I've opened the default project from TouchGFX selecting the ThreadX one. I then opened the .ioc file in the CubeMX and activated the USB_OTG_HS in Device_Only Mode. I then went into the Middleware section and activated the USBX Core System, Device CoreStack HS and Device Controllers HS and then, under the Device Class HS I've turned ON the Audio Class.I then copied the code in this example (usbx/Projects/STM32H743I-EVAL/Applications/USBX/Ux_Device_Audio).The code correctly compiles and execute (the GUI still works and entering into the debug mode I'm seeing the USBX has been initialize).The issue comes when I connect the board using the USBC to the PC. I'm seeing the LED in the board turning ON, basically confirming the USBC port is connected but, the callback that should execute the function USBD_AUDIO_Activate when the USB Audio class is attached doesn't fi
I am trying to connect to TTN v3 with P-NUCLEO-LRWAN2.Please let me know the latest Firmware for Gateway and Firmware for end devices.
I am using STM32CubeIDE version 1.17.0 and trying to develop a custom board using X-CUBE-DISPLAY with a graphics display using the ST7789V controller. This is a design update for a previous board that was using a 7-segment LCD display. I have a preliminary version of my software running on a NUCLEO-G071RB (with external flash disabled) as a proof of concept.When I open my .ioc file and select Manage Software Packs, it shows X-CUBE-DISPLAY as installed, versions 1.0.0 up to 3.0.0, but they are all marked with a red cross. Hovering the mouse on 3.0.0 shows "This version of the pack is not compatible with the current version of STM32CubeIDE. It is compatible with STM32CubeIDE from 1.11.0 to 1.12.1". Earlier versions show correspondingly early versions of the IDE. Version 1.12.1 or earlier is no longer available on the STM32CubeIDE download page.Does this mean support for X-CUBE-DISPLAY is discontinued, or is the message just wrong? Is there any alternat
Greetings,I have connected external crystal of 32.768 KHz to STM32F205RG for RTC time keeping purpose. I have also enabled RTC output on pin PC13. Below is my code for RTC Initialization ...int main(void) { /* USER CODE BEGIN 1 */ /* USER CODE END 1 */ /* MCU Configuration--------------------------------------------------------*/ /* Reset of all peripherals, Initializes the Flash interface and the Systick. */ HAL_Init(); /* USER CODE BEGIN Init */ /* USER CODE END Init */ /* Configure the system clock */ SystemClock_Config(); /* USER CODE BEGIN SysInit */ /* USER CODE END SysInit */ /* Initialize all configured peripherals */ MX_GPIO_Init(); MX_RTC_Init(); if (HAL_RTCEx_BKUPRead(&hrtc, RTC_BKP_DR1) != 0x32F2) { /* Configure RTC Calendar */ RTC_CalendarConfig(); } else { /* Check if the Power On Reset flag is set */ if (__HAL_RCC_GET_FLAG(RCC_FLAG_PORRST) != RESET) { } /* Check if Pin Reset flag is set */ if (__HAL_RCC_GET_FLAG(RCC_FLAG_PINRST
Hello everyone,I’m working on an STM32H7S3L8H6H with two XSPI interfaces:XSPI1 (Quad-SPI) connects to an external PSRAM. XSPI2 (Octo-SPI) drives an external NOR flash, from which my application code executes directly.In my bootloader I configure both and start the external memory manager:MX_XSPI1_Init();MX_XSPI2_Init();MX_EXTMEM_MANAGER_Init(); This maps the flash at 0x7000_0000 and the PSRAM at 0x9000_0000. After jumping to main() in the application (which is executing from the XSPI2 flash), I’ve marked XSPI1 as “Runtime Context” in CubeMX and still call:MX_XSPI1_Init(); But it hangs here:// inside MX_XSPI1_Init(): if (HAL_XSPIM_Config(&hxspi1, &sXspiManagerCfg, HAL_XSPI_TIMEOUT_DEFAULT_VALUE) != HAL_OK) { Error_Handler(); // stops here } I have validated each interface separately, XSPI2 boots and runs code, and XSPI1 handles PSRAM reads/writes without issue. So now, how can I access and use the PSRAM from within the application (which is itself exec
Hello Guys,I’m working on a project using the STM32F767 evaluation board with STM32CubeIDE and FreeRTOS. In this project, I want to create a .csv file inside the MCU’s storage, write data to it, and then share that file over Ethernet.So far, I have successfully configured the Ethernet communication and can transfer strings between the MCU and PC. However, when I try to create or open the .csv file, my fopen() call returns NULL, and the file is not created.Code is attached with the post. Please help me.Thanks.FILE *f; //Golobal declare for file void create(void ) //Function to create file,write { { HAL_GPIO_WritePin(GPIOB, LD2_Pin, GPIO_PIN_SET); f = fopen("trial.txt","w"); if(f == NULL) { printf("\nCann't open file"); HAL_GPIO_WritePin(GPIOB, LD2_Pin, GPIO_PIN_RESET); } else{ fprintf (f, "Hello World "); fclose (f); } } }
NUCLEO-N6 : I was using UART to transfer a more than 100KB image to the in_buffer in the AXIRAM, so, the HAL_receive itself can not receive so much once, and I wrote a loop function it, to receive it seperately, with every timne 64KB max. And the aligment of the data some how get wrong, do you have idea how I can use DMA of the N6 to directly transfer a more than 64KB data to the AXIRAM5 directly with only one time HALDMA beginning? the size is uint16, so max 64KB, I heard I might can use LLI of the HPDMA to do this, but I haven't learnd any thing about that, in university 64KB is far from enough, so have no experience on how to do that with LLI, do you have any documentations regarding that ? or do you have example for receiving a 224*224*3 data through UART and DMA directly to AXIRAM with address 0x342E0000? thanks a lot
We attempted to change the product state to "Closed" on STM32H523, and this operation was successful. We can perform a full regression to the "Open" state. However, we are experiencing unexpected behaviour during the provisioning stage. The code in the microcontroller was not executing, and the Keil debugger was unable to connect with an error message "Could not Stop Cortex-M device". A reset did not resolve the issue, indicating that the code could not run. After switching the microcontroller to the "Closed" product state, the code ran properly again.We likely need to modify specific settings in the options byte to enable the code to run during the provisioning state. We would appreciate assistance in resolving this issue, as we would like to change the product state and write the .obk file directly from the firmware.
Hello, is there any changes about MFG label of the STM32 MCUs products ?we receive the new DC product, and found the "Assembled in: Site" was miss ,which shall be show on the second line of the label, pls check below photos , is it correct ?if yes , is there any MFG document shows this change ? is any PCNs provide?Many thanks!
Hello,I am working on creating a timer function using the timer peripheral of the STM32H743II, with a timer range from 1 second to 3600 seconds.I'd like to ask a question regarding the frequency accuracy of the timer.Let me first explain the current timer configuration I’m considering.At this point, I am feeding a 19.2 MHz clock signal into the HSE, and have configured the APB1 Timer Clock to be 201.6 MHz. I plan to use TIM2 and adjust the prescaler(PSC) and ARR values to achieve a timer period ranging from 1 to 3600 seconds.Since the timer period is given by:Timer Period = (PSC + 1) * (ARR + 1) / (APB1 Timer Clock)If I set PSC = 20159, then:Timer Period = 20,160 * (ARR + 1) / 201,600,000 = (ARR + 1) / 10,000 This means that by setting (ARR + 1) in the range of 10,000 to 36,000,000, I can achieve a timer period of 1 to 3600 seconds.Here’s my question:If the 19.2 MHz signal fed into the HSE has a frequency accuracy of ±1 ppm, can I assume that the timer I create will also have
Hello, I have found various guides on how to configure the RTC as wakeup-source. However, they do not seem to apply to the C0 family.In the CubeIDE I cannot find the depicted settings on RTC, (most notably, no option to select internal wakeup and configure wakeup counter and clock) Is this not implemented on the C0 family? I just want my MCU to wake up from sleep mode every x milliseconds. What else can I do to implement this on a C011? ThanksLucas
I need to connect a 5 inch 480x800 display to a STM32 eval board.There are many 480x800 DSI display on the market, but all of them are designed for PIand have standard PI 15 pin or 22 pin connector, which has 1 clock, 2 or 4 data pairs and SCL/SDA and +3.3V.But STM32 eval boards likehttps://www.st.com/resource/en/data_brief/stm32u5a9j-dk.pdforhttps://www.st.com/en/evaluation-tools/stm32h747i-disco.htmluse some unique DSI connectors and there are no displays for them.Question is whether it is possible to connect to STM32 a display designed for PI.The first part of this question is whether DSI clock and data pairs are compatible.Second is what to do with other lines on STM32 DSI connector, like:SCLK/MCLK, LRCLK, I2S, CEC_CLK, CEC, DSI_TE, LCD_BL_CTRL, DSI_RESET, TOUCH_INT, I2C4_SDA, I2C4_SCL.I guess I2C should be compatible, but what to do with others?Is it possible to make some simple adapter?Thank you
I am using the NUCLEO-L433RC-P development board and in the process of designing my own PCB.But I am unsure what to do with the VDD12 pinsOn the NUCLEO-L433RC-P development board they are connected to an SMPS using an analogue switch.If I dont use an SMPS for the VDD12 pins, do I just connect the VDD12 pins to 100nF capacitors to GND (as shown in the schematic below) ?My project is battery powered (LiPo 1000mAh) so power consumption is important, but I already have an SMPS for 3.3V and 5V and running out of board space so would prefer to avoid adding yet another SMPS. Using an SMPS for the VDD12 pins might also require additional level shifters for UART, SPI and I2C.
1. According to datasheet, STM32U0 family have an IRTIM (Infrared interface). But this section is missing in RM0503. Also in SYSCFG_CFGR1 there is missing IR_MOD and IR_POL bits.2. In RTC section Figure 297 it is missing RTC_OUT2 and RTC_REFIN pins. See same block for STM32G0 family.3. In RM0503 section NVIC table 54, I think that PVD_PVM should be PVD / PVM. Also ADC_COMP should be ADC / COMP. WWDG should be WWDG / IWDG. TIM6_DAC / LPTIM1 should be TIM6 / DAC / LPTIM1.4. Usually each section name ends with an abbreviated name in parenthesis. Ex: Low-power universal asynchronous receiver transmitter (LPUART). And this abbreviated name is also in bookmarks on the left size of each RM. But (LPUART) is not in bookmarks in several RM possible all from the beginning.
After I load my code ( with help of IDE) into NUCLEO MCU via USB cable, I'd like to disconnect it (disconnect USB cable) and power NUCLEO with battery(s) or external power supply ( lets say 3V or 5V). Is there any PDF where to read ? Or brief explanation please
Hi, I am working on the STM32H533RE microcontroller and implementing AES-CCM encryption using a NIST test vector for validation. While the encrypted output matches the expected result, the authentication tag generated is incorrect. I have shared the relevant code and configuration above for reference.CRYP_HandleTypeDef hcryp; uint32_t pKeyAES[4] = {0x40414243,0x44454647,0x48494A4B,0x4C4D4E4F}; __ALIGN_BEGIN static const uint8_t HeaderAES[16] __ALIGN_END = { 0x00, 0x08, // Length = 8 bytes 0x00, 0x01, 0x02, 0x03, // AAD 0x04, 0x05, 0x06, 0x07, 0x00, 0x00, 0x00, 0x00, // Padding 0x00, 0x00 }; __ALIGN_BEGIN static const uint32_t B0AES[4] __ALIGN_END = { 0x4f101112,0x13141516,0x00000000,0x00000004}; uint8_t sampledata[4] = {0x20, 0x21, 0x22, 0x23}; uint8_t sampleoutputdata[8]; uint32_t sampletagdata[8]; // 4 bytes static void MX_AES_Init(void) { /* USER CODE BEGIN AES_Init 0 */ /* USER CODE END AES_Init 0 */ /* USER CODE BEGIN AES_Init 1 */ /* USER CODE END AES_
I'm encountering a networking issue where my STM32 device that is NUCLEO-H755ZI-Q, configured with the LwIP stack over Ethernet without FreeRTOS and assigned a static IP address (192.168.100.123), is unable to be discovered or pinged from a PC connected via Wi-Fi to the same router. The Ethernet link is physically active and UP, and the router indicates that data is being transmitted to the STM32, yet it shows almost No receiving packets from STM32 (onto the router). The router don't show the the static IP i assigned to the STM32 as well. I opened my router page to look inside these data. Debug logs from the STM32 reveal that ARP requests are being sent repeatedly and that the IP configuration is correctly set on the interface. Occasionally, the STM32 receives and parses ARP frames, but they are not directed to it, indicating that the receive path is at least partially functional. When using DHCP, the STM32 successfully constructs and broadcasts DHCP discovery packets, yet no DHCP offe
Hello ,I'm working on a STM32F407VET6 board with integrated ethernet port.I'm using Stm32CubeIde 1.18.1 with firmware FW_F4 V1.28.2.I'm just starting out and trying to display a webserver page without rtos for the moment.I've been going round in circles for quite a long time, even with chatgpt and company...At the moment I've managed to activate lwip (2.1.2) and it's working because when I start up I ping the address 192.168.0.123 and it responds.However, as soon as I open my web browser and try to access it, the page doesn't display.These are the obscure areas for me.The tutorials I've followed show each time: First of all goto LWIP->Target->lwipopts.h and change the #define HTTPD_USE_CUSTOM_FSDATA 0or I don't have this define generated automatically by stm32CubeIde so I don't set it.I've used a tutorial "controllerstech".I like it (I've even taken fsdata.c directly from it)Every time I get build errors, so I exclude it.I don't know where it's going wrong, but I've been failing
Hello,We've been working with the B-G474E-DPOW1 kit with the intention of building a custom project board using the G474E. I've had success starting with the example buck/boost project in the STM32CubeIDE (1.18.1). Now though I need to move the HRTIM CHC/D timer location used in the example design to the CHE/F locations.After struggling with CubeMX without success to make the change from C/D to E/F, I reverted to not using .ioc at all and instead searching and replacing what was necessary to map things over to the CHE/F timers. After fixing several mistakes, the system is very close to working as it did with the unmodified example. But there's one BIG problem remaining that I've spent hours in the debugger chasing things down. I don't get any output on CHE (PC8/9) they are always stuck LOW. CHF (PC6/7) works perfectly. I've confirmed both timers are configured the same. Any insight is appreciated!Thanks,Dave
Hello, I have a custom board based on the EVSPING4 Dual, the schematic is the same with the difference being no speed sensors and different mosfets. When I try to start the motor with motorpilot the speed is climbing in Motor Pilot but the motor is not spinning, after some seconds I get the error Start Up Failure. Motor Voltage and Voltage for the Gate Drivers are 12V. I measured the Phases of the motor and the Gates of the mosfets. The Phases are all on 12V as are the Gates of the top Bridge side. I added my schematic down below.
Hello Everybody,I’m developing a Class 0.2 energy metering system for 1-phase, 3-phase (3-wire), and 4-wire configurations. I plan to use the STM32H7 series MCU due to its high performance, Ethernet support, and peripheral flexibility.However, in my design:Voltages are sampled via external ADCsCurrents (via CTs) are measured remotely and transmitted over RS485 or EthernetTherefore, voltage and current data are not synchronously sampledI’m looking for guidance on the following:Are there any STM-provided or third-party libraries compatible with STM32H7 that support energy metrology under asynchronous sampling conditions?If not, would using a dedicated metering IC (e.g., from Analog Devices, Cirrus Logic, or TI) be a better approach, with STM32 handling higher-level tasks?Are there reference designs, application notes, or open-source examples that support this use case?Would you recommend an alternative MCU or platform better suited for this application, with existing metrology support an
..
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.