4267|0

426

帖子

4

TA的资源

纯净的硅(初级)

楼主
 

5# STM32WB开发板蓝牙例程浅析 [复制链接]

本帖最后由 北方 于 2019-5-13 12:49 编辑

1. ST的SDK提供了比较丰富的例程,不过双核使用的例程还没补充,应该在后面升级版补充,现在是1.0版本。2. 跳过电灯,直接从蓝牙例程开始测试。
蓝牙心率测量使用的是ble低功耗蓝牙,先下载手机app
ST BLE Profile application on the android device
        https://play.google.com/store/ap ... hlevalidation&hl=en
    https://itunes.apple.com/fr/App/st-ble-profile/id1081331769?mt=8

然后编译例程,并下载到板卡,就可以了。

这个例程使用的是CM4内核,写入的地址如下图,正如内存分布图所示。



3. 主要的程序如下,
  1. int main(void)
  2. {
  3.   /* USER CODE BEGIN 1 */

  4.   /* USER CODE END 1 */

  5.   /* MCU Configuration--------------------------------------------------------*/

  6.   /* Reset of all peripherals, Initializes the Flash interface and the Systick. */
  7.   HAL_Init();

  8.   /* USER CODE BEGIN Init */
  9.   Reset_Device();
  10.   Config_HSE();
  11.   /* USER CODE END Init */

  12.   /* Configure the system clock */
  13.   SystemClock_Config();

  14.   /* USER CODE BEGIN SysInit */
  15.   PeriphClock_Config();
  16.   Init_Exti(); /**< Configure the system Power Mode */
  17.   /* USER CODE END SysInit */

  18.   /* Initialize all configured peripherals */
  19.   MX_GPIO_Init();
  20.   MX_DMA_Init();
  21.   MX_RF_Init();
  22.   MX_RTC_Init();
  23.   /* USER CODE BEGIN 2 */

  24.   /* USER CODE END 2 */
  25.   APPE_Init();

  26.   /* Infinite loop */
  27.   /* USER CODE BEGIN WHILE */
  28.         while(1)
  29.         {
  30.                 SCH_Run(~0);
  31.     /* USER CODE END WHILE */

  32.     /* USER CODE BEGIN 3 */
  33.   }
  34.   /* USER CODE END 3 */
  35. }
复制代码



4.  范例解析4.1 程序启动,依次启动硬件库HAL_init(),系统时钟,中断设置,外设GPIO,DMA,RTC等常规设置,其中射频是主要的部分,在 MX_RF_Init()完成。
4.2 具体和程序有关的在App目录下的app_ble.c,dis_app.c,hrs_app.c。这3个程序就是定义了HeatRate的蓝牙service和对应的参数以及执行特征的程序。
4.3 整个程序是基于RTOS的,这些应用都在scheduler中定义并使用。
4.4 对应于程序编写,需要比较清除蓝牙原理,让rtos的时序和逻辑,然后的代码就相当简单了。后面的详细内容在后面主观分析。


此内容由EEWORLD论坛网友北方原创,如需转载或用于商业用途需征得作者同意并注明出处



此帖出自无线连接论坛
点赞 关注(1)
 

回复
举报
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
快速回复 返回顶部 返回列表