456|5

693

帖子

0

资源

纯净的硅(初级)

【NUCLEO-L452RE测评】+串行通信及组件控制 (兼结题报告) [复制链接]

本帖最后由 jinglixixi 于 2021-1-13 23:10 编辑

        前段时间参加了一个MicroLab的测评活动,经过一定的努力终于获得了永久使用的授权,将它与STM32L452开发板进行组合,可以轻松地构成一个分布式应用系统,相较于使用LABVIEW还是用起来很方便的,且占用的空间十分的少。其唯一不足的是,它不能生成一个可以单独运行的exe执行文件,否则就很完美了。

以制作一个有进度球、数码管和温度计的界面为例,它只需将3个显示组件拖放到组件画布中即可,然后再调整组件大小及摆放位置即可,其效果见图1所示。

image-20210112220925-1.jpeg

图1 组件的界面设计

       在运行时,它可以借助MicroLab自带的串口监听功能来接收有下位机,也就是STM32L452开发板发送来的协议数据包,进而来驱动组件的状态更新,其效果如图2和图3所示。

image-20210112220925-2.jpeg

图2 运行效果

image-20210112220925-3.jpeg

图3 串口监听接收数据

       对于STM32L452开发板来说,要配合功能的实现,所涉及的内容主要有2个,一个自然就是串行通讯功能,要能把控制数据发送出去;另一个就是要对生成协议数据包的函数加以移植。

对于第一点,这里是用UART4,所占用的引脚为CN7的PC.10,以此来发送数据。由于所发送的数据是字节数据,因此需要定义一个合适的数组来暂存数据。

      相应的串口初始化定义为:

  UartHandle.Instance        = USARTx;
  UartHandle.Init.BaudRate     = 9600;
  UartHandle.Init.WordLength   = UART_WORDLENGTH_8B;
  UartHandle.Init.StopBits     = UART_STOPBITS_1;
  UartHandle.Init.Parity       = UART_PARITY_NONE;
  UartHandle.Init.HwFlowCtl    = UART_HWCONTROL_NONE;
  UartHandle.Init.Mode         = UART_MODE_TX_RX;
  UartHandle.Init.OverSampling = UART_OVERSAMPLING_16;

调用相关协议函数发送驱动数据的程序段为:

while (1)
{
         //进度球
         updateCanvas(WATERLEVER, 0, (char *)&x, sizeof(float));
         HAL_Delay(500);     
         //数码管
         updateCanvas(LCDNUMBER, 0, (char *)&x, sizeof(float));
         HAL_Delay(500);     
         //温度计
         updateCanvas(TEMPMETER, 0, (char *)&x, sizeof(float));
         HAL_Delay(500);
         x += 3;
         x++;
         y += 3;
         if(x>=100)
         {
              x = 0;

         }
         if(y>=100)
         {
              y = 0;
         }
}

        以updateCanvas()函数为例,其使用串口发送数据的内容如下:

void updateCanvas(COMPONENT_TYPE componenttype, unsigned short componentnumber, char * data, unsigned short datalen)
{
    static char tbuffer[TBUFFERSIZE];
    static short size;
    packProtocol(ORGANIZATION, SECTION, DATAPOINT, componenttype, componentnumber, NONE_MSG, data, datalen, tbuffer, &size);
    HAL_UART_Transmit(&UartHandle, (uint8_t*)tbuffer, size, 5000);
}

       STM32L452开发板的通讯连接如图4所示,是将开发板与USB转TTL模块相连接来构成。在与上位机的MicroLab连接前,其通过串口助手的测试结果如图5所示。

image-20210112220925-4.png

图4 通讯连接

image-20210112220925-5.jpeg

图5 串行通讯测试

 

       总体来讲,STM32L452开发板是一款低功耗的易用开发和使用的开发板,由于长期以来所构建的产品线及养成的开发习惯,在使用ST的产品时已有了一种轻车熟路的感觉,相对来说在一个开发过程中,这能带来开发的功效,自然使用STM32L452也会产生这种效率。

此帖出自stm32/stm8论坛

赞赏

1

查看全部赞赏


回复

677

帖子

2

资源

版主

给大佬点个赞,还是大佬的帖子看着舒服,排版啥的都好!


回复

693

帖子

0

资源

纯净的硅(初级)

w494143467 发表于 2021-1-13 13:29 给大佬点个赞,还是大佬的帖子看着舒服,排版啥的都好!


回复

1470

帖子

1

资源

纯净的硅(中级)

这种组态软件不能生成exe,那就没法用在实际项目里面

点评

期待它的升级版能解决这个问题,否则是个硬伤!  详情 回复 发表于 3 天前

回复

693

帖子

0

资源

纯净的硅(初级)

shihuntaotie 发表于 2021-1-13 16:49 这种组态软件不能生成exe,那就没法用在实际项目里面

期待它的升级版能解决这个问题,否则是个硬伤!


回复

3180

帖子

1

资源

五彩晶圆(初级)

谢谢分享!

个人签名人已离开,无事别找,找也找不到。

回复
您需要登录后才可以回帖 登录 | 注册

最新文章 更多>>
    关闭
    站长推荐上一条 1/6 下一条

    About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

    站点相关: 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

    北京市海淀区知春路23号集成电路设计园量子银座1305 电话:(010)82350740 邮编:100191

    电子工程世界版权所有 京ICP证060456号 京ICP备10001474号 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2021 EEWORLD.com.cn, Inc. All rights reserved
    快速回复 返回顶部 返回列表