cancel
Showing results for 
Search instead for 
Did you mean: 

STM32wb Unable to start the advertising

Hello Geeks!

I'm playing with STM32WB.

Actually, I'm using in one of our product as an SOC

I'm using the Former version of the Cube packages, i guess "1.7.x"

As we all know, the former version of the Cube packages was unstable and almost impossible to play with the Cube generated file

And, that's how i'd just adopted the RF stack from the FreeRTOS HeartRate demo

The entire code was Working for me, before few days also (Including BLE part)

--- PROBLEM STATEMENT ---

But Now the problem is, when i have update the latest Cube packages then Suddenly BLE stops the advertising

I have debug the Code line by line and here is the debug result

  1. APPE_Init ----> Called
  2. appe_Tl_Init ----> Called (Init Transport layer)
  3. ShciUserEvtProcess ----> Thread Created
  4. TL_Enable ----> Called
  5. LL_PWR_EnableBootC2 ---> Called (C2BOOT bit Set to 1)

Now the issue is ShciUserEvtProcess Thread is always wait forever (Waiting for to set the flag during shci_notify_asynch_evt Call, but unfortunately it's never ever call!)

And.... That's how my Custom serveries never called!!! (Which was working before)

Any suggestions ST Community ???

Thanks

4 REPLIES 4

But Before that I have made the Following changes (Which i got to know from "STM32WB workshop videos")

  1. Added Config_HSE()
  2. Added the ISR like...

void RTC_WKUP_IRQHandler(void)
{
  HW_TS_RTC_Wakeup_Handler();
}
 
void IPCC_C1_TX_IRQHandler(void)
{
  HW_IPCC_Tx_Handler();
  return;
}
 
void IPCC_C1_RX_IRQHandler(void)
{
  HW_IPCC_Rx_Handler();
  return;
}

Alex Romanov
Associate

Same here. OP, did you achieve something in this problem?

Check if your program suspends in priority assertion in tasks.c. If so, you will need to lower IPCC interrupts priorities(i.e. bigger numeric value) so they must be lower than LIBRARY_MAX_SYSCALL_INTERRUPT_PRIORITY (default is 5). You can change them in HAL_MspInit() function like so:

  /* USER CODE BEGIN MspInit 1 */
  HAL_NVIC_SetPriority(IPCC_C1_RX_IRQn , 6, 0);
  HAL_NVIC_SetPriority(IPCC_C1_TX_IRQn , 6, 0);
  /* USER CODE END MspInit 1 */

Hi.. @Alex Romanov​ 

Thanks for your feedback

I'm bit busy at some other work

I'll test the case and, update the result here soon