⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 串口通信.c

📁 该源码实现单片机域计算机的通信
💻 C
字号:
#include <rs232.h>
#include <ansi_c.h>
#include <cvirte.h>     
#include <userint.h>
#include "com.h"
#include <formatio.h> 
/************************************/
static int  gHelpPanelHandle;
static int  gPanelHandle;
static char gEventChar[2]; 
/**********************************/
int main (int argc, char *argv[])
{
    if (InitCVIRTE (0, argv, 0) == 0)   /* Initialize CVI libraries */
        return -1;  /* out of memory */
    if ((gPanelHandle = LoadPanel (0, "com.uir", PANEL)) < 0)
        return -1;
    if ((gHelpPanelHandle = LoadPanel (0, "com.uir", HELP_PANEL)) < 0)
        return -1;
    OpenComConfig (1, "", 9600, 0, 8, 1, 512, 512);
    SetCTSMode (1, LWRS_HWHANDSHAKE_OFF);
    FlushInQ (1);
    FlushOutQ (1);
DisplayPanel (gPanelHandle);
    RunUserInterface ();
    CloseCom (1);
    DiscardPanel (gPanelHandle);
    DiscardPanel (gHelpPanelHandle);
    
    return 0;
}
/******************************/
int CVICALLBACK SendData (int panel, int control, int event, void *callbackData, 
                            int eventData1, int eventData2)
{                  
    char info[20];
    
    switch (event)
        {
        case EVENT_COMMIT:
            SetCtrlVal (gPanelHandle, PANEL_OUTOUT_STRING, "\0"); 
            GetCtrlVal (gPanelHandle, PANEL_INPUT_STRING, info);
            FlushInQ (1);
            ComWrt (1, info, strlen(info));
            break;
        }
    return 0;
}
/*************************************/
void CVICALLBACK Event_Char_Detect_Func (int portNo,int eventMask,void *callbackData)
{
    char outMessage[256];
    
    Fmt (outMessage, "%s<%s%s%s",
          "The Character \"",gEventChar,"\" was detected");
    MessagePopup ("Install CommCallback", outMessage);
    return;
}   
/***********************************/
int CVICALLBACK Help (int panel, int control, int event, void *callbackData, int eventData1,
                        int eventData2)
{
    switch (event)
        {
        case EVENT_COMMIT:
            InstallPopup (gHelpPanelHandle);
            break;
        }
    return 0;
}
/********************************************/
int CVICALLBACK QuitHelp (int panel, int control, int event, void *callbackData, 
                            int eventData1, int eventData2)
{
    switch (event) 
        {
        case EVENT_COMMIT:
            RemovePopup (0);
            break;
        }
    return 0;
}
/********************************/
int CVICALLBACK ReceiveData (int panel, int control, int event, void *callbackData, 
                                int eventData1, int eventData2)
{
    char    readBuf[20] = {0};
    int     strLen;
    
    switch (event)
        {
        case EVENT_COMMIT:
            /*  Read the characters from the port */
            strLen = GetInQLen (1);
            ComRd (1, readBuf, strLen);
            SetCtrlVal (gPanelHandle, PANEL_OUTOUT_STRING, readBuf);
            SetActiveCtrl (gPanelHandle, PANEL_INPUT_STRING);
            break;
        }
    return 0;
}	  
/*****************************************/
int CVICALLBACK PanelCB (int panel, int event, void *callbackData,
                            int eventData1, int eventData2)
{
    switch (event) 
        {
        case EVENT_CLOSE:
            QuitUserInterface (0);
            break;
        }
    return 0;
}
/********************************************/
int CVICALLBACK Quit (int panel, int control, int event,
        void *callbackData, int eventData1, int eventData2)
{
    switch (event)
        {
        case EVENT_COMMIT:
            QuitUserInterface(0);
            break;
        }
    return 0;
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -