查看: 3875|回复: 3

[项目] GD32 F150R8 与 PC端LabView 通信之VISA串口通信

[复制链接]
  • TA的每日心情
    奋斗
    2023-7-8 16:17
  • 签到天数: 971 天

    连续签到: 1 天

    [LV.10]以坛为家III

    发表于 2015-7-13 21:49:09 | 显示全部楼层 |阅读模式
    分享到:
        大多情况下Labview 与单片机间的通信大多数都是通过串口通信,但是要注意Labview 的串口通信是属于VISA模块,可惜LabView 默认情况下是不安装VISA驱动的,所以要手动安装驱动在官网的 资源与服务->NI Drivers -> NI VISA。


        开始接触NI的时候,很多概念都比较低触,只能边学边用。
    先做个控制灯的来练练先。

        串口首先就是要做一个串口通信的调试
    1.png
    当能够正常接发数据的时间才开始修改成自己想要的内容,例如图上LED灯时就是有布尔开关转换来数组

    程序柜架图如下:
    2.png


    至于GD32F150R8的程序怎么设计呢? 首先来最简单的,关键代码如下:
    1. #include "example.h"

    2. #if (EVB_EXAMPLE == LED_EXAMPLE)

    3. /* Óû§Ó¦ÓóÌÐòÈë¿Úº¯Êý */
    4. int main(void)
    5. {
    6.     //int i;
    7.                 char cGetChar;
    8.     /* ÅäÖÃʹÄÜÆÀ¹À°åÉϵÄLEDÉ豸 */
    9.     EVB_LEDConfig();
    10.     EVB_Uart2Config();

    11.     PRINTF("¸ÐлʹÓÃColibri¿ª·¢°å\r\n");
    12.     PRINTF("www.trochili.com\r\n");
    13.     PRINTF("\r\n");
    14.     PRINTF("##### LED ʵÑé #####\r\n");
    15.     PRINTF("\r\n");

    16.     while(1)
    17.     {               
    18.                 EVB_Uart2ReadByte(&cGetChar);
    19.                 EVB_Uart2WriteByte(cGetChar);
    20.                
    21.                 switch (cGetChar)
    22.                 {
    23.                         case '0':
    24.                                         EVB_LEDControl(LED1, LED_OFF);
    25.                                         EVB_LEDControl(LED2, LED_OFF);
    26.                                         break;
    27.                         case '1':
    28.                                         EVB_LEDControl(LED1, LED_ON);
    29.                                         EVB_LEDControl(LED2, LED_OFF);
    30.                                         break;
    31.                         case '2':
    32.                                         EVB_LEDControl(LED1, LED_OFF);
    33.                                         EVB_LEDControl(LED2, LED_ON);
    34.                                         break;
    35.                         case '3':
    36.                                         EVB_LEDControl(LED1, LED_ON);
    37.                                         EVB_LEDControl(LED2, LED_ON);
    38.                                         break;
    39.                         
    40.                         default:
    41.                                         break;
    42.                 }
    43.                
    44.     }
    45. }
    46. #endif
    复制代码

    基础的原理模型已经实现,后来的工作就一步步来完善。


    Labview的代码: Labview Serial NI.rar (22.82 KB, 下载次数: 12)
    回复

    使用道具 举报

  • TA的每日心情
    奋斗
    2016-8-15 09:28
  • 签到天数: 222 天

    连续签到: 1 天

    [LV.7]常住居民III

    发表于 2015-7-17 10:01:44 | 显示全部楼层
    多谢楼主分享!
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2016-8-15 09:30
  • 签到天数: 162 天

    连续签到: 1 天

    [LV.7]常住居民III

    发表于 2015-7-20 09:15:49 | 显示全部楼层
    多谢楼主分享!
    回复 支持 反对

    使用道具 举报

  • TA的每日心情

    2023-7-25 22:49
  • 签到天数: 385 天

    连续签到: 1 天

    [LV.9]以坛为家II

    发表于 2015-7-22 13:18:52 | 显示全部楼层
    多谢楼主分享!
    回复 支持 反对

    使用道具 举报

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

    本版积分规则

    关闭

    站长推荐上一条 /4 下一条



    手机版|小黑屋|与非网

    GMT+8, 2024-11-15 11:17 , Processed in 0.144302 second(s), 22 queries , MemCache On.

    ICP经营许可证 苏B2-20140176  苏ICP备14012660号-2   苏州灵动帧格网络科技有限公司 版权所有.

    苏公网安备 32059002001037号

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.