manhuami2007 发表于 2023-8-24 15:34

[ST NUCLEO-WBA52CG] 4-使用STM32CUBEMX创建一个BLE工程

<div class='showpostmsg'><p>使用STM32WBA52CG创建BLE工程,需要使用STM32CUBEMX的中间层STM32_WPAN。 WPAN是Wireless Personal Area Network的缩写。</p>

<p>要使能这个中间层,需要先使能很多外设,分别是:</p>

<ul>
        <li>ADC4的温度传感器通道:用于PHY的校准</li>
        <li>CRC:验证BLE的数据传输</li>
        <li>RAMCFG:用于动态修改RAM的配置</li>
        <li>ICHACHE:用于提高从内存中存取指令的效率</li>
        <li>RNG:生成随机数</li>
        <li>RF:射频输出</li>
        <li>RTC:用于低功耗模式里的自动唤醒<br />
        如果需要输出DEBUG的信息的话,还需要使能串口:</li>
        <li>USART1</li>
        <li>GPDMA1</li>
</ul>

<ol>
        <li>ADC4的采样时间可以设置的长一些,比如设置为814.5个周期,提高ADC采样的精度。</li>
        <li>ICHACHE设置为&rdquo;1-way (dircet mapped cache)&rdquo;</li>
        <li>激活SRAM1的RAMCFG</li>
</ol>

<p>其它的可以参考官方提供的示例设置。</p>

<p>激活了STM32_WPAN之后,就需要对BLE进行设置。</p>

<p>&nbsp; &nbsp; &nbsp;1. 选择BLE的模式,比如作为服务端,这样我们就可以通过手机对开发板进行设置了</p>

<p></p>

<ol start="2">
        <li>广播参数的设置,还有广播内容的设置,在&rdquo;BLE Advertising&rdquo;里进行设置</li>
        <li>设置服务的个数<br />
        </li>
        <li>根据自己的要求设置服务的特性值、权限等信息<br />
        </li>
        <li>BLE的一些设置项</li>
        <li>生成工程的设置
        <ol>
                <li>堆栈都要设置的大一些,堆设置为0x3000,栈大小为0x1000</li>
                <li>对初始化函数进行设置,有一些不能设置为static的,因为会在其他地方调用初始化函数</li>
        </ol>
        </li>
</ol>

<p></p>

<p>至此就可以生成相关的工程了,可以看到需要设置的内容还是很多的,在易用性上比较差。</p>
</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>

wangerxian 发表于 2023-8-24 16:44

<p>我一直认为这种无线通信的芯片设计起来都是比较特别的。</p>

manhuami2007 发表于 2023-8-24 17:40

wangerxian 发表于 2023-8-24 16:44
我一直认为这种无线通信的芯片设计起来都是比较特别的。

<p>用起来挺复杂的<img height="28" src="https://bbs.eeworld.com.cn/static/editor/plugins/hkemoji/sticker/facebook/face-with-tears-of-joy_1f602.png" width="28" /></p>

wangerxian 发表于 2023-8-24 20:26

manhuami2007 发表于 2023-8-24 17:40
用起来挺复杂的

<p>主要蓝牙配置也比较多。</p>

lugl4313820 发表于 2023-8-25 07:25

有stm32cubemax搭建工程起来还是非常方便的,不知道他的监牙协议栈学习起来容易 不?

manhuami2007 发表于 2023-8-25 07:59

lugl4313820 发表于 2023-8-25 07:25
有stm32cubemax搭建工程起来还是非常方便的,不知道他的监牙协议栈学习起来容易 不?

<p>有些复杂,涉及的文件比较多。不过和其他品牌的蓝牙协议栈差不多,都是事件驱动的,有相通的地方。:)</p><br/>

lugl4313820 发表于 2023-8-25 13:02

manhuami2007 发表于 2023-8-25 07:59
有些复杂,涉及的文件比较多。不过和其他品牌的蓝牙协议栈差不多,都是事件驱动的,有相通的地方。

<p>楼主可以在这里深入介绍一下,现在监牙在穿戴设备非常好用。</p>
页: [1]
查看完整版本: [ST NUCLEO-WBA52CG] 4-使用STM32CUBEMX创建一个BLE工程