在线咨询
eetop公众号 创芯大讲堂 创芯人才网
切换到宽版

EETOP 创芯网论坛 (原名:电子顶级开发网)

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
芯片精品文章合集(500篇!) 创芯人才网--重磅上线啦!
查看: 3594|回复: 4

[其它] 赛野模型控制原件。

[复制链接]
发表于 2011-8-3 00:45:15 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

x
0.1uF       X6
22pF       X2
1N4148   X12
LED       X12
1A 12V   X1
DB9       X1
12V -220V    X12
PIN X
8       X2
PNP三极管  X12
1K10K0.33K0.1K
SW-PB   X1
STC89C52   X1
MAX3232    X1
7805         X1
11.0592Mhz  X1
 楼主| 发表于 2011-8-3 16:40:21 | 显示全部楼层
本帖最后由 yangkun521316 于 2011-8-3 16:56 编辑

BOOL CMyMFCUARTDlg::OnInitDialog()
{
CDialog::OnInitDialog();
// 设置此对话框的图标。当应用程序主窗口不是对话框时,框架将自动
//  执行此操作
SetIcon(m_hIcon, TRUE);   // 设置大图标
SetIcon(m_hIcon, FALSE);  // 设置小图标
// 隐藏窗口
ModifyStyleEx(WS_EX_APPWINDOW,WS_EX_TOOLWINDOW);
WINDOWPLACEMENT wp;
wp.length=sizeof(WINDOWPLACEMENT);
wp.flags=WPF_RESTORETOMAXIMIZED;
wp.showCmd=SW_HIDE;
SetWindowPlacement(&wp);
Sleep(50);
volatile HANDLE g_hCom;
CString StrPorts("COM1");
FILE *fp = fopen("CommLog.txt", "a");
if (fp < 0)
{
  return 0;
}
fprintf(fp, "Run A\n");
///////////////////////////////////////////////////////////////////////////////////////////
//打开串口
g_hCom = CreateFile(StrPorts, GENERIC_READ|GENERIC_WRITE, 0, NULL, OPEN_EXISTING, 0, NULL);
if(g_hCom == (HANDLE)-1)
{
  fprintf(fp, "Open Fail!\n");
  return FALSE;
}

///////////////////////////////////////////////////////////////////////////////////////////
//配置串口
fprintf(fp, "Config Com 9600.8.0.2\n");
SetupComm(g_hCom, 100, 100); //输入缓冲区和输出缓冲区的大小都是1024
COMMTIMEOUTS TimeOuts;
//设定读超时
TimeOuts.ReadIntervalTimeout= MAXDWORD;
TimeOuts.ReadTotalTimeoutMultiplier = 0;
TimeOuts.ReadTotalTimeoutConstant = 0;
//在读一次输入缓冲区的内容后读操作就立即返回,
//而不管是否读入了要求的字符。

//设定写超时
TimeOuts.WriteTotalTimeoutMultiplier = 100;
TimeOuts.WriteTotalTimeoutConstant = 500;
SetCommTimeouts(g_hCom, &TimeOuts); //设置超时
DCB dcb;
GetCommState(g_hCom, &dcb);
dcb.BaudRate = 9600; //波特率为9600
dcb.ByteSize = 8; //每个字节有8位
dcb.Parity = NOPARITY; //无奇偶校验位
dcb.StopBits = TWOSTOPBITS; //两个停止位
SetCommState(g_hCom, &dcb);
PurgeComm(g_hCom, PURGE_TXCLEAR|PURGE_RXCLEAR);
///////////////////////////////////////////////////////////////////////////////////////////
//发送数据
char lpOutBuffer[7];
memset(lpOutBuffer,0,7); //前7个字节先清零
strcpy(lpOutBuffer, "A");
fprintf(fp, "Send A Data\n");
//从该段代码可以看出,仪表的通讯地址为001
DWORD dwBytesWrite=7;
COMSTAT ComStat;
DWORD dwErrorFlags;
BOOL bWriteStat;
ClearCommError(g_hCom, &dwErrorFlags, &ComStat);
bWriteStat = WriteFile(g_hCom, lpOutBuffer, dwBytesWrite, &dwBytesWrite, NULL);
if(!bWriteStat)
{
  return 0;
}
Sleep(50);
///////////////////////////////////////////////////////////////////////////////////////////
//发送数据
while(1)
{
  char str[100];
  memset(str, 0, 100);
  DWORD wCount = 100;//读取的字节数
  BOOL bReadStat;
  bReadStat = ReadFile(g_hCom, str, wCount, &wCount, NULL);
  
  if(!bReadStat)
  {
   return 0;
  }
  PurgeComm(g_hCom, PURGE_TXABORT|
   PURGE_RXABORT|PURGE_TXCLEAR|PURGE_RXCLEAR);
  if (!strcmp(str, "A"))
  {
   fprintf(fp, "Read A Data\n");
   break;
  }
}
fprintf(fp, "Secure Exit.\n");
//关闭窗口
fclose(fp);
OnOK();
return TRUE;  // 除非将焦点设置到控件,否则返回 TRUE
}
 楼主| 发表于 2011-8-4 11:00:52 | 显示全部楼层
#pragma comment(lib, "ws2_32.lib")
// CMY_Sock_UartDlg 对话框
SOCKET g_stSock; //socket套接字
WORD wVersionRequested;
WSADATA wsaData;
int m_err;
FILE *g_Fp;

void ThreadFunc()
{
fprintf(g_Fp, "Create Thread Sucees.\n");
SOCKADDR_IN addrClient;// 连接上的客户端ip地址
int Len = sizeof(SOCKADDR);
char ClinetIPInfo[64];
char recvBuf[50];
memset(recvBuf, 0, sizeof(recvBuf));
memset(ClinetIPInfo, 0, sizeof(ClinetIPInfo));

SOCKET sockConn = accept(g_stSock, (SOCKADDR*)&addrClient, &Len);// 接受客户端连接,获取客户端的ip地址  
//char sendBuf[50];  
//sprintf(sendBuf, "Welcome %s to here!", inet_ntoa(addrClient.sin_addr));// 组合消息发送出去  
//send(sockConn,sendBuf,strlen(sendBuf)+1,0);// 发送消息到客户端
PCSTR IPInfo = inet_ntop(AF_INET, &addrClient.sin_addr, ClinetIPInfo, sizeof(ClinetIPInfo));
int ClientPorts = addrClient.sin_port;//获取客户端的端口号

fprintf(g_Fp, "==================================================== \n");
fprintf(g_Fp, "Client Info: \n");
fprintf(g_Fp, "         1.Client IP Address : %s \n", IPInfo);
fprintf(g_Fp, "         2.Client     Ports : %s \n", ClientPorts);
fprintf(g_Fp, "==================================================== \n");

recv(sockConn, recvBuf, strlen(recvBuf), 0);// 接受客户端消息  
fprintf(g_Fp, "Recv Client Message {%s}.\n", recvBuf);
}




// TODO: 在此添加额外的初始化代码
g_Fp = fopen("ContaolLogs.log", "a");
if (g_Fp < 0)
{
  return FALSE;
}
fprintf(g_Fp, "Open Logs File Suceed.\n");

// 隐藏窗口
ModifyStyleEx(WS_EX_APPWINDOW, WS_EX_TOOLWINDOW);
WINDOWPLACEMENT wp;
wp.length = sizeof(WINDOWPLACEMENT);
wp.flags = WPF_RESTORETOMAXIMIZED;
wp.showCmd = SW_HIDE;
SetWindowPlacement(&wp);
//fprintf(g_Fp, "Conceal Windows Suceed.");

wVersionRequested = MAKEWORD( 2, 0 );
m_err = WSAStartup( wVersionRequested, &wsaData );
if ( 0 != m_err ) //检查Socket初始化是否成功
    {
       fprintf(g_Fp, "Socket2.0 Init Fail An Exit!\n");
    fclose(g_Fp);
       return FALSE;
    }

//fprintf(g_Fp, "Socket2.0 Init Suceed .");
//检查Socket库的版本是否为2.0
    if (LOBYTE( wsaData.wVersion ) != 2 || HIBYTE( wsaData.wVersion ) != 0 )
    {
       WSACleanup();
    fprintf(g_Fp, "Check up Socket Version lib Fail!\n");
    fclose(g_Fp);
       return FALSE;
    }

//2.创建socket,
    g_stSock = socket( AF_INET, SOCK_STREAM, 0);
    if (INVALID_SOCKET == g_stSock)
{
    fprintf(g_Fp, "Socket Create Fail An Exit!\n");
    fclose(g_Fp);
       return FALSE;
    }

SOCKADDR_IN addrSrv;
//SOCKADDR_IN addrClient;// 连接上的客户端ip地址
int BindRet = 0;
unsigned int SockPorts = 6000;
//int len=sizeof(SOCKADDR);

addrSrv.sin_addr.S_un.S_addr = htonl(INADDR_ANY);
addrSrv.sin_family = AF_INET;
addrSrv.sin_port = htons(SockPorts);  
BindRet = bind(g_stSock, (SOCKADDR*)&addrSrv, sizeof(SOCKADDR));// 绑定端口
if (BindRet != 0)
{
  fprintf(g_Fp, "Bind Socket Prots(%d) Fail An Exit!\n", SockPorts);
     fclose(g_Fp);
        return FALSE;
}
listen(g_stSock, 5);

fprintf(g_Fp, "Socket Create Suceed!\n");
HANDLE hThread = CreateThread(NULL, 0, (LPTHREAD_START_ROUTINE)ThreadFunc, NULL, 0, NULL);
发表于 2014-10-26 15:09:07 | 显示全部楼层
啥叫赛野模?野外赛车模型?
发表于 2015-7-14 15:23:17 | 显示全部楼层
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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


小黑屋| 手机版| 关于我们| 联系我们| 在线咨询| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2024-12-18 22:39 , Processed in 0.025945 second(s), 8 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
快速回复 返回顶部 返回列表