Skip to main content
Mahendra Sondagar
Associate III
January 25, 2021
Question

STM32wb Unable to start the advertising

  • January 25, 2021
  • 3 replies
  • 1029 views

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

This topic has been closed for replies.

3 replies

Mahendra Sondagar
Associate III
January 25, 2021

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
Visitor II
January 29, 2021

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 */

Alex Romanov
Visitor II
January 28, 2021

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

Mahendra Sondagar
Associate III
February 2, 2021

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