打印
[牛人杂谈]

新唐NuMaker-M032BT测评-极简氛围灯

[复制链接]
11468|6
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
yangjiaxu|  楼主 | 2021-8-22 22:58 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 yangjiaxu 于 2021-8-22 23:01 编辑

@21小跑堂

感谢新唐的新品开发板-NuMaker-M032BT评测活动,说起来这应该是第二次参与新品评测了,挺开心,也不陌生了,新品嘛,资料肯定在官网找不全了,所以,在这里也要感谢21ic管理员帮忙从中协调,要到了一手资料来方便我们测评。接下来先看看NuMaker-M032BT长啥样吧。
1 NuMaker-M032BT开发板
       NuMaker-M032BT开发板依然继承了新唐的大红颜色,非常显眼,图1右半边是板载Nu-link2,方便用户直接对M032BT芯片进行开发,减少用户开发时一些不必要的麻烦。在图1中的1是串口选择,是Nu-link2引出的一路虚拟串口,通过这个拨码开关来选择是连接到主芯片还是外部,拨码开关如图1所示的位置,是选择连接到主芯片上的。图1中的2是主芯片的电源选择拨码开关,正常按出厂默认即可。图1中的3是主芯片的扩展接口,新唐非常贴心的把要评测的主芯片的所有IO都引出了,还做了一组arduino接口,方便硬件拓展。图1中的4是主芯片的调试接口,这个在没有右侧Nu-link2调试器的时候可以排上用场。到此,硬件基本上是介绍完了。接下来讲一讲硬件如何快速上手开发。
       首先,需要官方的开发资料,如图2所示,其中,较为重要的是M031_Series_BSP_CMSIS_V3.03.000_NuMaker-M03xBT_210730文件夹。这里包含对NuMaker-M032BT开发板的所有软件方面的开发资料。这个开发资料可以在下方回帖找我索取。或者找官方的FAE索取都是可以的。
2 开发资料
       本次使用的是Keil uVision5软件进行程序开发,官方的Demo代码支持GCC/keil/IAR,非常人性化,支持了大多数的开发软件,再也不用为开发平台不同,需要移植而发愁。既然第一次使用新唐的蓝牙MCU,还是先用个简单的例程先感受一下吧,所以本次我选择使用蓝牙控制灯的Demo-TRSP_LED,打开keil的工程。
3 需要注意的地方
       图3原来是_CHIP_M031BT,如果我们使用032BT的话,需要把箭头所指的地方修改成_CHIP_M032BT,其实,这样的好处是代码集成度高,维护一套代码即可,通过程序也可以看出,M031BT和M032BT的使用方法基本一致。可能也就管脚初始化方面有些出入罢了。所以如果程序烧录进去发现MCU运行不正常,可以看看宏定义部分,程序是否是M032BT的。接下来是烧录,在keil的魔术棒的debug中选择nulink,选择之后其他默认即可,就可以烧录程序和代码仿真了。设置仿真器如图4所示。
4 仿真器的设置
      一切准备就绪,就可以测试代码了,先把硬件连接电脑,然后烧录程序,使用官方提供的DemoAPP,即可测试蓝牙方面,蓝牙APP界面如图5所示,首先需要扫描蓝牙,也就是SCAN BLE,接下来选择要连接的蓝牙,看代码和搜索到的蓝牙,可以确定是Nuvoton_LED,点击这个蓝牙名称即可,如果连接成功,下方会提示英文:蓝牙连接成功,同时显示成绿色。
4 APP的界面操作
      操作LED可以按照图5所示操作,点击OFF即可关灯,点击ON即可开灯。
5 APPLED-Demo操作
      到此,软硬件的使用就完成了,总的来说,上手是没有难度的,从硬件到软件基本上是0门槛,大家都知道蓝牙比较难,但是新唐把复杂的部分给做成了lib,用户仅仅需要调用即可,不需要了解蓝牙底层的东西,所以就跟外挂一个蓝牙模块,MCU通过串口与蓝牙通讯一样简单,最后,我通过M032BT做了一个蓝牙氛围灯,同时还加了串口回显蓝牙接受到的数据,方便后续应用拓展,来结束本次的测评。
代码如下:
     蓝牙接收到数据,进行数据判断,如果是0X31即让灯亮,同时串口显示蓝牙接收到的数据,与此同时,我做了个氛围灯,调用rainbowCycle()即可。后两段代码是讲述了串口发数据和rainbowCycle()的内容。
void trspx_receive_data_callback(uint8_t length, uint8_t *data)
{
                uint16_t i;
        
    if (data[0] == 0x31) //user write '1'
    {
        //turn on LED
        PF15 = 0;
                                rainbowCycle(255);
                                UART_TX_Send(length, data);
    }
    else
    {
        //turn off LED
        PF15 = 1;
                                RGB_LED_Reset();RGB_LED_Reset();RGB_LED_Reset();RGB_LED_Reset();RGB_LED_Reset();
                                UART_TX_Send(length, data);
    }
}
//show data on UART
void UART_TX_Send(uint32_t len, uint8_t *ptr)
{
    uint32_t i;

    for (i = 0; i < len; i++)
    {
        UART_WRITE(UART0, *ptr++);
        UART_WAIT_TX_EMPTY(UART0);
    }

    //add a new line
    //UART_WRITE(UART0, 0x0D);
    //UART_WRITE(UART0, 0x0A);
    UART_WAIT_TX_EMPTY(UART0);
}
void rainbowCycle(uint8_t wait)
{
    uint16_t i, j;

    for(j = 0; j < 256 * 5; j++)
    {
        // 5 cycles of all colors on wheel
        for(i = 0; i < PIXEL_MAX; i++)
        {
            SetPixelColor(i, Wheel(((i * 256 / PIXEL_MAX) + j) & 255));
        }
    }
}
      效果如下:
图6 氛围灯效果
图5 串口回显数据效果




使用特权

评论回复
沙发
kiwis66| | 2021-8-23 07:15 | 只看该作者
nice,很棒啊

使用特权

评论回复
板凳
呐咯密密| | 2021-8-23 09:42 | 只看该作者
感谢豆包在周末给我们更新测评,泪目了

使用特权

评论回复
评论
21小跑堂 2021-8-23 10:48 回复TA
+1 
地板
yangjiaxu|  楼主 | 2021-8-24 11:57 | 只看该作者
呐咯密密 发表于 2021-8-23 09:42
感谢豆包在周末给我们更新测评,泪目了

给我哭 感动落泪那种

使用特权

评论回复
5
昱枫| | 2021-9-8 15:46 | 只看该作者
我看看

使用特权

评论回复
6
skay5288| | 2022-3-1 15:46 | 只看该作者
好棒

使用特权

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

本版积分规则

认证:嵌入式技术专家
简介:擅长电路设计、物联网产品开发、射频产品开发,喜欢打篮球,技术交流,欢迎各位来聊~

478

主题

2054

帖子

5

粉丝