Get ready for the STM32 Summit 2026 | Online, November 3
Ask questions and discuss STM32 wireless solutions and their implementation for running Bluetooth LE, Zigbee, LoRaWAN applications.
Most recent activity
HiI'm trying to generate a 64 kHz PWM with 50% dutycycle. I've configured the SYSCLK to use the HSE in combination with the PLL resulting in 64 MHz. Since I'm using TIM1, which is on APB2, I've configured the APB2 timer clock also to 64 MHz. However, if I configure TIM1 (no prescalers) to a period of 1000 and a PWM pulse of 500 the generated frequency is not 64 kHz but 32 kHz. Did I misunderstand something? Where is the additional division by 2 happening?ThanksRegardssecuresClock configuration:Cube generated code:void SystemClock_Config(void) { RCC_OscInitTypeDef RCC_OscInitStruct = {0}; RCC_ClkInitTypeDef RCC_ClkInitStruct = {0}; RCC_PeriphCLKInitTypeDef PeriphClkInitStruct = {0}; /** Configure the main internal regulator output voltage */ __HAL_PWR_VOLTAGESCALING_CONFIG(PWR_REGULATOR_VOLTAGE_SCALE1); /** Initializes the CPU, AHB and APB busses clocks */ RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_HSI|RCC_OSCILLATORTYPE_HSE; RCC_OscInitStruct.HSEState = RC
Hey guys,I am new to stm32 microcontrollers.I am using CubeMX to generate my projects. I already accomplished to start a new project with the board STM32WB55 Nucleo and to program the timer / leds etc.However, if I try to build an example project from CubeMX, I am unable to build it. The error message saying "fatal error: no input files". I checked the path and location and the file is actually there.(see attachment). I have been searching the internet for hours to find a solution. I hope one of you guys can help.Kind regardsRené
I will use P-NUCLEO-LRWAN2.Lora device is a custom board by made me.I want to use P-NUCLEO-LRWAN2 gateway.so, I saw user manual. but the user manual explains just TTC and Loriot. I really want to function is Data come from Lora device send to pc server through the gateway. for example ubuntu Linux or anything.can you give me guide.
Hi! I have p-nucleo-wb55 board. I watch very strange behavior: all ok, when I load precompiled demo from st.com. But when I compile hex from example sources(ble_p2pserver application), board not working. Green LED lighten 1 minutes, but not blinked, and device is not discoverableI suspect that need upgrade ble stack. But firmware is not upgradeble.My steps:1. Load DFU_Standalone firmware over swd2. Install jumpers to BOOT0 pin and USB_MCU3. Plugin USB cable in user usb port4. And finaly try upgrade fus and ble stackLog:STM32_Programmer_CLI.exe -c port=usb1 -r32 0x20030030 4 ------------------------------------------------------------------- STM32CubeProgrammer v2.5.0 ------------------------------------------------------------------- USB speed : Full Speed (12MBit/s) Manuf. ID : STMicroelectronics Product ID : DFU in FS Mode SN : 205330923036 FW version : 0x011a IAP Reading 32-bit memory content Size : 4 Bytes Address: : 0x2003003
The Bluetooth Core Specification states:> Slave latency allows a slave to use a reduced number of connection events.> The connSlaveLatency parameter defines the number of consecutive> connection events that the slave device is not required to listen for the master.While optimizing throughput in a Bluetooth Loader for SBSFU I observed:Connection Intervals too low won't let me delete flash contents (because timing protection in CPU2).Increasing the Connection Interval results in successful operation but of course slow down the overall transfer speed.As far as I understand the Bluetooth Specification, increasing the Slave Latency should allow for shorter Connection Intervals while giving the the controller opportunities to ignore one (or multiple for higher Slave Latency) Connection Event.From my benchmarks a connection interval value of 20 (25ms) in combination with a Slave Latency of 1 results in the same throughput as a Connection Interval of 40 (50ms) with Slave Latency 0.So
I have a B-L475EIOT01A2C evaluation board with SX1272 MBed Shield (SX1272MB2xAS).I'm trying to understand the samples in the en.i-cube_lrwan file structure which I downloaded from LoRaWAN software expansion for STM32Cube.When I load for example End_Node or PingPong into STM32CubeIDE, the only project in the file structure is mlm32l07x01. The Includes under C++/C General..Paths and Symbols reference folders at a higher level than the project. So it seems this project is a subset of something else. Is this project only for MAC sublayer management entity (MLME), or something else? But how can I run for example End_Node or PingPong under STM32CubeIDE, and where does the Lora code go when I create a new project under STM32CubeIDE for the B-L475EIOT01A2C evaluation board?
CASE 1:Lets say that " i want to access ABZ 093 module with AT command".(for LORA communication)thing that are not clear to me are:Some document state that you dont need to connect pullup resistor to Mcu nRST( because there is inbuilt 45k inbuilt resistor).Should i leave VDD_TCXO ,TCXO_OUT, PHO-OSC_in , PHI-OSC_OUT Floating or should i short them to ground ?If i want to use ABZ 091 or ABZ 078 module. Do these module come factory ready to work with AT command or do i need to use I-CUBE-LRWAN?I want to use Arduino IDE to work with these modules.Thanks.
We want to program only this chip directly. NOT an evaluation board, or one of the STM32WB series.
I recently looked into adding FUOTA to a LoRa project I'm working on. Right now, we are using the B-L072-LRWAN1 discovery board. I-CUBE-LRWAN only gives example code for the STM32L476. Is it even possible to do this on the STM32L072 embedded on the discovery board given the constraints in Flash Memory and RAM (192kb and 20kb respectively). Please let me know.
Hello,I have really strange behavior while reading the input port and sending the data via BLE. I have upgraded the firmware to v1.8 and I was using the BLEDataThroughput example as a base of my project. My aim is as follows increasing the MTU size to 200bytes reading the GPIOB->IDR and store it into array (output_data) when an interrupt occursRepeat step 2 12500 timesSend the output_data via BLEI can successfully establish the data and send the values to the smartphone. However, the data becomes all zeros even if some input is actually high.In order to expalin it clearer, I am sharing my implementations as well. Here is my interrupt handler under stm32wbxx_it.cvoid EXTI3_IRQHandler(void) { // Clear the interrupt flag EXTI->PR1 = GPIO_PIN_3; GPIOC->BSRR = (uint32_t)GPIO_PIN_5; *p_data = GPIOB->IDR; p_data++; counter++; GPIOC->BRR = (uint32_t)GPIO_PIN_5; if (counter == 12500) { HAL_GPIO_WritePin(START_GPIO_Port, START_Pin, GPIO_PIN_RESET); HAL_GPIO_WritePin(A
Hello! I am trying to control a set of leds through bluetooth. In the main function ,after the main task I call the function that manage the leds and into this function there is HAL_Delay that has to receive its argument from bluetooth. The problem starts when I try to find the board using ST BLE Sensor app :1) It takes a remarkable time to appear on the devices' list. When I connect successfuly to board then appear the second issue: 2) when I send the data (write characteristic) it also delays. How could I solve these delays?
HiAccording to the Murata's manual, the CMWX1ZZABZ-091 module uses an STM32L082 processor, but the ST website says it uses an STM32L072CZ. What information is correct?I am asking this question because the Murata manual does not reference all the alternate functions available on a given STM32L0 pin.For example in the Murata manual, PA12 / USB_DP is connected to STM32L082_PA12 and has the description GPIO Mode PA12 and USB_DP. According to the STM32L072 manual, pin PA12 can have the following alternative functions: SPI1_MOSI, EVENTOUT, TSG_G4_I04, USART1_RTS_DE and COMP2_OUT.Can I use all the alternate STM32L0 functions on the Murata Lorawan Module?BRGilberto
AN5185 mentions the process to install a new/updated version of the coprocessor binary.My setup:STM32WB5xxE(512K)stm32wb5x_BLE_Stack_full_fw.bin (v1.6.0)I'm able to program the BLE stack using a debug probe (SWD) using the description given in the Copro_Wireless_Binaries Release Notes.AN5185 gives the following instructions to calculate the program address: If new install (no wireless stack currently installed): 0x08000000+(SFSA x 4KB) - ImageSize If a wireless stack is already installed: If new image size <= current image size: WirelessStackAddress - ImageSize If new image size > current image size: WirelessStackAddress - (2xImageSize – WirelessStackSizeIt is advised to perform a FUS_FW_DELETE operation before starting a wireless stackinstallation. (This is performed by CubeProgrammer when option -firstinstall=0 is selected)For case 1 (no stack currently installed) the calculation yields a different address than the release notes:SFSA: 0xF4ImageSize: 164.816 bytes--> Program
I wrote AT and pressed enter and repeated it multiple time.Below is what i got in response:02:22:01.835 -> +OK02:22:01.835 -> 02:22:04.562 -> +ERR=-102:22:04.562 -> 02:22:06.430 -> +OK02:22:06.430 -> 02:22:29.110 -> +ERR=-102:22:29.110 -> 02:22:31.085 -> +OK02:22:31.132 -> 02:22:32.895 -> +ERR=-102:22:32.895 -> 02:22:35.200 -> +OK02:22:35.200 -> 02:22:37.005 -> +ERR=-102:22:37.005 -> 02:22:38.841 -> +OK02:22:38.841 -> Why i am getting this alternate pattern of OK? What is ERR=-1 and ERR=-3 ??
AN5185 lists the contents of the device information table in Table 5What information in this table is valid at which state (wireless stack running or FUS running) of CPU2?My initial guess was that it should be valid during FUS execution as well as Wireless Stack execution. (Chapter 6.1.1: "This table may be updated either by FUS code or wireless stack code at startup or before a programmed system reset.")My findings (deviations from the documentation / unexpected behaviour) are:Device info table state is only at the specified value when FUS is running, 0 when Wireless Stack is running (only tested with BLE_full stack)Current wireless stack type is always 0 (NONE) when FUS is running. It is 1 (BLE stack) when the wireless stack is running (but might be a coincidence since Device info table state is not valid)All other fields look invalid when Wireless Stack is executed.Setup:STM32WB55CEU on custom boardFUS Version 1.1.0 installedBLE Stack full Version 1.6.0
Is it possible to start USB host on STM32WB55 MCU?
Is there any public examples of a stm32wb Bluetooth client application. Where the stm32wb client does a few read's and write to a server bluetooth applicaion. What i was thinking of was a BLE_HeartRate_Client program to the BLE_HeartRate program which is a bluetooth server. The two types of examples i see from the client's view are the ANCS which has to do with with apple Bluetooth notifications and the BLE_p2pClient application which is a semi involved example and its hard to figure exactly whats happening.
In Group 1 G1_IO4 is a sampling capacitor and G1_IO3 is a sheild and in Group 2 G2_IO2 is sampling capacitor and G2_IO1 is input touch key. In Group 3 G3_IO4 is a sampling capacitor and G3_IO2 is a input touch key. so when i programmed with this configuration it detect touch from the shield not from the touch keys.My touch key code is this if(MyTKeys[0].p_Data->StateId == TSL_STATEID_DEB_RELEASE_DETECT) { HAL_GPIO_WritePin(LED2_GPIO_Port,LED2_Pin,RESET); HAL_GPIO_WritePin(LED1_GPIO_Port,LED1_Pin,SET); } if(MyTKeysB[1].p_Data->StateId == TSL_STATEID_DEB_RELEASE_DETECT) { HAL_GPIO_WritePin(LED2_GPIO_Port,LED2_Pin,SET); HAL_GPIO_WritePin(LED1_GPIO_Port,LED1_Pin,RESET); }Please give me the solution why the touch detect from shield not form Touch keys.
Hello! I'm working with an STM32WB55 development board and I'm trying to take data fairly quickly (every 25 us) so I'm trying to work with the DMA to collect data. Right now, I'm not even collecting actual ADC data, just toggling a GPIO point to get timing figured out. Anyway, found some good examples at DeepBlueEmbedded and have been poking at a few of them trying to get it to do what I want. The problem I'm coming across is I can't seem to get the DMA to autotrigger so i keep having to manually call the void HAL_ADC_ConvCpltCallback(ADC_HandleTypeDef* hadc) { // Conversion Complete & DMA Transfer Complete As Well HAL_GPIO_TogglePin(GPIOC, GPIO_PIN_12); // Starting DMA takes about 30 us HAL_ADC_Start_DMA(&hadc1, &AD_RES, 1); }The problem is the HAL_ADC_START_DMA command takes somewhere between 15-30 us to run and, by the time this is finished, the code calls it again and I have no cpu time to run the main part of my prog
When receiving a write event to a characteristic via Bluetooth it is possible to return SVCCTL_EvtAckFlowDisable from the service handler.This then results in the event buffer not being released back to CPU2.But what happens if CPU2 runs out of memory? My observation is that packets get dropped.Is it somehow possible to signal CPU2 to throttle the L2CAP connection when memory runs low?
Hello, I'm working on STM32WB55.Is there any limitation to write to (internal) SD RAM and do a system reset?I want to build an application that requires a lot of writing to SD RAM and then do system reset (and read the SD RAM and act according the data).Thanks,Lior
I have a B-L475EIOT01A2C evaluation board. Is it possible to use the LoRa software expansion for STM32Cube in order to address the SX1272 MBed Shield (SX1272MB2xAS) which fits on the evaluation board?
arm-none-eabi-gcc -o "P2P_Server.elf" @"objects.list" -lbep_diag_hf -lbep -lbep_diag -lbep_hf -mcpu=cortex-m4 -T"D:\kiran\new1\p2p\P2P_Server\P2P_Server\STM32CubeIDE\STM32WB55RGVX_FLASH.ld" --specs=nosys.specs -Wl,-Map="P2P_Server.map" -Wl,--gc-sections -static -L"D:\kiran\new1\p2p\P2P_Server\P2P_Server\STM32CubeIDE\temp\cortex_m4" --specs=nano.specs -mfpu=fpv4-sp-d16 -mfloat-abi=hard -mthumb -Wl,--start-group -lc -lm -Wl,--end-groupD:\kiran\new1\p2p\P2P_Server\P2P_Server\STM32CubeIDE\temp\cortex_m4\libbep_diag_hf.a(fpc_bep_trace.o): In function `fpc_bep_trace':(.text.fpc_bep_trace+0x24): undefined reference to `fpc_log_diag'D:\kiran\new1\p2p\P2P_Server\P2P_Server\STM32CubeIDE\temp\cortex_m4\libbep_diag_hf.a(fpc_bep_trace.o): In function `fpc_bep_trace_var':(.text.fpc_bep_trace_var+0x2e): undefined reference to `fpc_log_diag'(.text.fpc_bep_trace_var+0x62): undefined reference to `fpc_log_diag'D:\kiran\new1\p2p\P2P_Server\P2P_Server\STM32CubeIDE\temp\cortex_m4\libbep_diag_hf.a(fpc_
Hello, please be warned, I am ultra new to STM32 mikrocontrollers (student).I watched several hours of tutorials and now I am starting my first steps in programming. I am using the CubeMX to set up the code.Unfortunately, I can´t get the USART1 running. I do not know if I configured the pins in CubeMX incorrectly or if I forgot something in the code (most of the code was generated by CubeMX). I took some screenshots and hope they provide enough information for you.What does the warning "Partly disabled conflict with: PB3 mapped with SYS_JTDO-SWO" mean?Kind regardsRené
Hello,I am currently testing the P-NUCLEO-LRWAN2. I am having problems getting it to work. I followed the tutorial in the UM2073. I managed to perform all the steps requested but I don't receive any data in the LORIOT dashboard.I also uploaded the "End_node" code in the sensor device, but I haven't uploaded anything in the gateway yet. Do I have to upload a program to the gateway ? Did I do wrong to upload the "End_node" program to the sensor device ?Thank you in advance for your help ...!Best regards,Bob
Already have an account? Login
Enter your E-mail address. We'll send you an e-mail with instructions to reset your password.