北方 发表于 2019-5-10 12:17

【 STM32WB55 测评】4# STM32WB开发板STM32CubeWB的使用

<div class='showpostmsg'> STM32WB开发板STM32CubeWB的使用
1.STM32WB开发板STM32CubeWB是开发的套件,可以可以理解为一套开发标准库及使用的SDK。当然,如果愿意从底层开发,没有问题,不过就是要自己搞清楚底层的reg访问和设置。
总体来说,stm的开发,比较难理解的就是一个简单的命令要很多语句,如ADC的使用,其实是要从时钟选择,中断使能,通道,adc参数设定等诸多过程。对应于底层,就是简单给若干地址访问和设置位置。
使用这个SDK,可以减少查阅手册的精力,也避免出错,但是其实记忆和学习工作量更大了,完全不懂手册也是不可能的。
2. 这个里面还包括了很多第三方的库,如
- CMSIS-RTOS implementation with FreeRTOS™
-Full USB Device stack
- STMTouch, touch sensing library solution
- STM32_WPAN,支持 Bluetooth® Low Energy (BLE) 5.0, 802.15.4OpenThread certified stacks and 802-15-4 MAC layer.
- FAT file system based on open source FatFS solution
如下图,


可以看到,代码驱动和LL底层代码是可以都支撑HAL的。
对应本开发板套件支持的芯片型号为,

在文件夹中的组织如下,


3. 具体使用就比较简单了,进入对应的example文件夹,选择工程文件,打开就可以,然后编译。作为大厂,都是可以简单通过编译并的


3.1 开发可使用HAL的模式,创建工程后,需要添加需要的中间件midleware
首先需要定义firmware元件,要复制并修改xxx_conf_template.h文件,
然后启动HAL_Init(),设定系统时钟,初始化外围设备,
最后才能开始开发自己的项目。
3.2 也可以从LL层开始开发,一般是推荐移植现有的范例程序,
然后重点修改,stm32wbxx_it.h,stm32wbxx_it.c,以及main.c程序。

4. 如何写入无线协处理库
该库位于 Projects\STM32WB_Copro_Wireless_Binaries

需要安装和启动STM32CubeProgrammer,这个是CLI的命令行模式程序。
然后设定boot loader模式,设定BOOT0在Vdd,在nucleo上市连接CN7.5和CN7.7,用USB_user和J2供电,不用st-link,对doggle直接连接usb口,主要SW2切换到BOOT0的位置
以下是执行过程,
删除现有无线栈, STM32_Programmer_CLI.exe -c port=usb1 -fwdelete
写入无线栈, STM32_Programmer_CLI.exe -c port=usb1 -fwupgrade Wireless_Coprocessor_Binary] firstinstall=1
对应不同的栈需要选择对应的写入地址,参见Release_Notes.html




此内容由EEWORLD论坛网友北方原创,如需转载或用于商业用途需征得作者同意并注明出处
写栈成功后,要切换到正常的模式,不能在boot loader模式运行程序。

5.一些问题。
使用HAL和LL编程的区别是,一个更抽象,一个更又效率,但是对于用户手册和硬件要足够理解。而且可以同时使用,仅仅注意初始化的设置要准确。LL比HAL覆盖更多的API,如SCB和Sys Tick就只在LL中存在。


</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]
查看完整版本: 【 STM32WB55 测评】4# STM32WB开发板STM32CubeWB的使用