cancel
Showing results for 
Search instead for 
Did you mean: 

How to take control of when the STM32WB's BLE is advertising?

TomC
Senior

To utilize the STM32WB's BLE capabilities we must enable STM32WPAN in peripherals in CUBEMX. Doing so will add the BLE template "p2p_server_app" to your project. This template by default will call APPE_Init() in your main which will in turn call the following ACI API functions to advertise your device over BLE.

  • aci_gap_set_discoverable()
  • aci_gap_set_non_discoverable()
  • aci_gap_update_adv_data()

My question is how do I access CUBEMX generated parameters, such as "local_name" and "manuf_data" and that are inserted into "app_ble.c" (located STM32_WPAN -> APP) in my own calls to the listed ACI API functions.

More broadly my question is really, what is the best method of implementing control of the BLE connections my STM32WB is making. Should it be done inside of the files generated by CUBEMX such as for registration of tasks using the sequencer inside of "p2p_server_app.c" or is it fine to just do it inside my own custom files?

Ref: AN5289

1 REPLY 1
KPrzy.1
Associate II

i have similar question but concerning ibeacon, this device by spec is used to advertise simple frame containing uuid and little more bytes mainly for proximity estimation by receiver. The question is can we use its statuc uuid 16 bytes part of the frame to advertise adc data from some of the build in ADC channels. The problem is that we want to advertise adc readbacks to serveral listeners not only single one. Connection mode is fine like p2p but limited to the number of listeners due to connectivity mode. As far as I looked to ibeacon there is an init of ibeacon in process function and no other posibilities to control the frame consistancy anymore which is advertised, no server options like in p2p api that creates services with write and notify characterisitcs...