IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 嵌入式 -> LabwindowsCVI上位机通过串口向STM32发送数据程序分享 -> 正文阅读

[嵌入式]LabwindowsCVI上位机通过串口向STM32发送数据程序分享

#include "toolbox.h"
#include <ansi_c.h>
#include <rs232.h>
#include <cvirte.h>		
#include <userint.h>
#include "chuankou.h"

static int panelHandle;
int com;
void CVICALLBACK com_callback (int portNumber, int eventMask, void *callbackData);

int main (int argc, char *argv[])
{
	if (InitCVIRTE (0, argv, 0) == 0)
		return -1;	/* out of memory */
	if ((panelHandle = LoadPanel (0, "chuankou.uir", PANEL)) < 0)
		return -1;
	DisplayPanel (panelHandle);
	RunUserInterface ();
	DiscardPanel (panelHandle);
	return 0;
}

int CVICALLBACK PANEL_callback (int panel, int event, void *callbackData,
								int eventData1, int eventData2)
{
	switch (event)
	{
		case EVENT_GOT_FOCUS:

			break;
		case EVENT_LOST_FOCUS:

			break;
		case EVENT_CLOSE:
			QuitUserInterface (0);
			break;
	}
	return 0;
}

int CVICALLBACK COM_send_callback (int panel, int control, int event,
								   void *callbackData, int eventData1, int eventData2)
{		 char buf[1024];
	switch (event)
	{
		case EVENT_COMMIT:
			memset(buf,0,1024); 
		    GetCtrlVal (panelHandle, PANEL_send, buf);
			if(strlen(buf)!=0)
			{
			   ComWrt(com+1,buf,sizeof(buf));//写
			   
			}
			break;
	}
	return 0;
}

int CVICALLBACK BINARYSWITCH_callback (int panel, int control, int event,
									   void *callbackData, int eventData1, int eventData2)
{
	int val;
	char lab_com[10];
	int bod;
	switch (event)
	{
		case EVENT_COMMIT:
			memset(lab_com,0,10);	  //初始化
			   GetCtrlVal (panelHandle, PANEL_BINARYSWITCH, &val); //得到开关的值
			     GetCtrlVal (panelHandle, PANEL_COM, &com);	   //得到com口
				GetLabelFromIndex (panelHandle, PANEL_COM, com, lab_com); //得到device名称  也就是lab_com
				 GetCtrlVal (panelHandle, PANEL_BOD, &bod); //得到波特率
			  if(val==1)   //打开
			  {
				 DisableBreakOnLibraryErrors(); 
			     OpenComConfig (com+1, lab_com, 9600, 0, 8, 1, 512, 512);//设置参数
				 	SetXMode (com+1, 0);//关闭XOFF
               SetCTSMode (com+1, 0);
				 EnableBreakOnLibraryErrors();
				 SetComTime(com+1,0.1);//设置超时时间
				 FlushInQ(com+1);
                FlushOutQ(com+1);
				 InstallComCallback (com+1, LWRS_RECEIVE, 2, 0, com_callback, 0); //安装回调函数
				 SetCtrlVal (panelHandle, PANEL_LED, 1);    //打开led灯
				 SetCtrlAttribute (panelHandle, PANEL_TIMER, ATTR_ENABLED,1); //打开计时器
			  }
			  else   //关闭
			  {
				 SetCtrlVal (panelHandle, PANEL_LED, 0);  								   
			     CloseCom(com+1);
				 SetCtrlAttribute (panelHandle, PANEL_TIMER, ATTR_ENABLED,0);
			  }
			break;
	}
	return 0;
}

int CVICALLBACK TIMER_callback (int panel, int control, int event,
								void *callbackData, int eventData1, int eventData2)
{   
   double val;
	switch (event)
	{
		case EVENT_TIMER_TICK:
			  GetCtrlVal (panelHandle, PANEL_NUMERIC, &val);
			  PlotStripChart (panelHandle, PANEL_STRIPCHART, &val, 1, 0, 0, VAL_DOUBLE);	//画图
			break;
	}
	return 0;
}

void CVICALLBACK com_callback (int portNumber, int eventMask, void *callbackData)
{
	char buf[1024];
	memset(buf,0,1024);
	ComRd (com+1,buf,1024);	   //读
	InsertTextBoxLine (panelHandle, PANEL_recv, -1, buf);   //把下位机的值写到文本框里
	SetCtrlVal (panelHandle, PANEL_NUMERIC,atof(buf));	  //把转换的double的值 读入numeric

}


  嵌入式 最新文章
基于高精度单片机开发红外测温仪方案
89C51单片机与DAC0832
基于51单片机宠物自动投料喂食器控制系统仿
《痞子衡嵌入式半月刊》 第 68 期
多思计组实验实验七 简单模型机实验
CSC7720
启明智显分享| ESP32学习笔记参考--PWM(脉冲
STM32初探
STM32 总结
【STM32】CubeMX例程四---定时器中断(附工
上一篇文章      下一篇文章      查看所有文章
加:2021-09-20 15:56:14  更:2021-09-20 15:57:32 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/26 2:53:48-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码