5# STM32WB开发板蓝牙例程浅析
<div class='showpostmsg'> 本帖最后由 北方 于 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. 主要的程序如下,
int main(void)
{
/* USER CODE BEGIN 1 */
/* USER CODE END 1 */
/* MCU Configuration--------------------------------------------------------*/
/* Reset of all peripherals, Initializes the Flash interface and the Systick. */
HAL_Init();
/* USER CODE BEGIN Init */
Reset_Device();
Config_HSE();
/* USER CODE END Init */
/* Configure the system clock */
SystemClock_Config();
/* USER CODE BEGIN SysInit */
PeriphClock_Config();
Init_Exti(); /**< Configure the system Power Mode */
/* USER CODE END SysInit */
/* Initialize all configured peripherals */
MX_GPIO_Init();
MX_DMA_Init();
MX_RF_Init();
MX_RTC_Init();
/* USER CODE BEGIN 2 */
/* USER CODE END 2 */
APPE_Init();
/* Infinite loop */
/* USER CODE BEGIN WHILE */
while(1)
{
SCH_Run(~0);
/* USER CODE END WHILE */
/* USER CODE BEGIN 3 */
}
/* USER CODE END 3 */
}
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论坛网友北方原创,如需转载或用于商业用途需征得作者同意并注明出处
</div><script> var loginstr = '<div class="locked">查看本帖全部内容,请<a href="javascript:;" style="color:#e60000" class="loginf">登录</a>或者<a href="https://bbs.eeworld.com.cn/member.php?mod=register_eeworld.php&action=wechat" style="color:#e60000" target="_blank">注册</a></div>';
if(parseInt(discuz_uid)==0){
(function($){
var postHeight = getTextHeight(400);
$(".showpostmsg").html($(".showpostmsg").html());
$(".showpostmsg").after(loginstr);
$(".showpostmsg").css({height:postHeight,overflow:"hidden"});
})(jQuery);
} </script><script type="text/javascript">(function(d,c){var a=d.createElement("script"),m=d.getElementsByTagName("script"),eewurl="//counter.eeworld.com.cn/pv/count/";a.src=eewurl+c;m.parentNode.insertBefore(a,m)})(document,523)</script>
页:
[1]