打印
[STM32WBA]

【STM32WBA52CG测评】开箱&呼吸灯

[复制链接]
3409|1
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
本帖最后由 新曲难觅旧知音 于 2023-7-11 07:38 编辑


很幸运啊,能够得到这次评测机会。板子到手之后就迫不及待开始捣鼓了。

一、开箱

此开发板所用芯片为STM32第三代2.4GHz无线产品,基于Cortex-M33单核SoC ,最高主频100MHz 最高发射功率达到+10dB

支持 BLE 5.3 全部功能,比如: long-range,1/2M 传输速率、 LE audio、扩展广播, AOD/AOA,.LE增强版连接更新功能,BLE 以及 802.15.4的私有协议,支持matter相关应用。


和第一代一样,支持动态或者静态的多协议切换。另外,因为它是基于Cotex-M33核,具有更高的安全性能,支持SESIP-L3, 同时基于新一代ST MCU低功耗平台,具有更优的低功耗性能。



外观来看板子背面是板载的stlink,旁边还预留了Type-C接口的位置。

正面左右两边分别引出了两排引脚。中间这两个不对称排座感觉非常熟悉啊,翻看手册果然是支持arduino盾板。

想要快速上手一块板子,那就去看它的用户手册。


附手册下载链接:
https://www.st.com/resource/en/user_manual/um3103-stm32wba-nucleo64-board-mb1863-stmicroelectronics.pdf

从第六章节Quickstart可以看到板子自带了一个与手机通信的demo
按下开发板B1时手机报警状态会切换,按下app里的灯时,蓝色的led会被点亮
按照提示去App Store或者GooglePlay下载相应上位机就可以体验,考虑到网络不通畅的问题这里附上安卓app的下载链接

附安卓app下载链接:
https://www.st.com/content/ccc/resource/technical/software/application_sw/group0/d0/6c/8e/95/d2/c8/43/15/STBLESensor_download/files/stblesensor_apk.zip/jcr:content/translations/en.stblesensor_apk.zip

二.呼吸灯

CubeMX的安装方法网上教程有很多,这里就不展开赘述了。
至于初始化的io引脚接线图,可以在手册第七章找到。上面标注了按钮和LED的连接引脚。

虽然在cubeMX里面可以通过开发板创建工程。但本节我们只是点个灯,用不到这么多引脚配置。我们就用芯片型号创建一个空的工程吧。
首先配置时钟,频率就直接拉满吧。注意选择HSE,如果是灰色的需要在RCC配置的HSE里选择外部晶振。本开发板带的外部晶振是32M的。


通过手册的io引脚接线图可以看出LED1是接在PB4号引脚的,PB4引脚为定时器1通道3引脚。用作PWM输出时,主要设置:

1.预分频寄存器PSC:决定时钟频率,定时器时钟频率为100M,分频后为为100M/(99+1)=1M

2.自动重装载寄存器ARR:决定PWM输出周期,此处设置为500

主要配置的地方就这些了,先生成文件。然后直接编译下载试一下。





发现报错。我们只需要点击“魔术棒”->Debug->Setting->Flash Download->添加对应FLM文件即可。

再次下载,程序烧录正常,开发板三个灯全部熄灭。

下面开始编写呼吸灯代码:


这里duty_num用来设置一个周期中高电平的时间。
灯最亮的时候高电平时间为0,为了30次将0变成500,每次让duty_num增大500/30,就是17。变暗同理
main函数代码:

int main(void)
{
        HAL_Init();
        SystemClock_Config();
        MX_GPIO_Init();
        MX_TIM1_Init();<p></p>
<p style="line-height: 30px; text-indent: 2em;">        HAL_TIM_PWM_Start(&htim1,TIM_CHANNEL_3);
        uint16_t status = 0;
        int16_t duty_num = 0;</p>
<p style="line-height: 30px; text-indent: 2em;">        while (1)
        {
                HAL_Delay(50);
                if (status == 0){
                        duty_num = duty_num + 17;
                        if(duty_num > 500){ status = 1; duty_num = 493;}
                }
                else{
                        duty_num = duty_num - 17;
                        if(duty_num < 17){ status = 0; duty_num = 17;}
                }</p>
<p style="line-height: 30px; text-indent: 2em;">                __HAL_TIM_SetCompare(&htim1,TIM_CHANNEL_3,duty_num);</p>
<p style="line-height: 30px; text-indent: 2em;">        }
}</p>
演示视频:

至此,点灯结束。因为这是块蓝牙开发板,所以蓝牙评测报告已经在路上了!!



使用特权

评论回复
沙发
Undshing| | 2023-7-10 22:23 | 只看该作者
这个能用arduino的框架吗?

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

23

主题

132

帖子

0

粉丝