社区
单片机/工控
帖子详情
编写上位机软件和51通讯
she_xiang
2012-12-25 10:44:14
请教下各位高手,我想写一个上位机和51通讯的软件,用什么语言比较好?是C++,还是VB。我自己会C语言,C++也了解点。
...全文
479
17
打赏
收藏
编写上位机软件和51通讯
请教下各位高手,我想写一个上位机和51通讯的软件,用什么语言比较好?是C++,还是VB。我自己会C语言,C++也了解点。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
17 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
keith_cheung
2013-01-03
打赏
举报
回复
就用 MFC 写类似人家串口助手之类,网上大把例子。 想必你也会抄的,呵呵。
woshi_ziyu
2012-12-31
打赏
举报
回复
引用 15 楼 she_xiang 的回复:
谢谢各位了,我C++了,
请及时结贴
she_xiang
2012-12-31
打赏
举报
回复
谢谢各位了,我C++了,
Simality
2012-12-30
打赏
举报
回复
我拿VB入门的,MFC后来用过。
特高压坏男孩
2012-12-30
打赏
举报
回复
用MFC和VB比较简单,好入门
aydf1
2012-12-27
打赏
举报
回复
那就用C++呗。。做个简单的上位机,简单实现串口通信,网口通讯。
mleige
2012-12-27
打赏
举报
回复
VB几个控件就行了,挺简单。
天冰天降
2012-12-27
打赏
举报
回复
看楼主自述,还是VB
yisiyou
2012-12-27
打赏
举报
回复
用MFC,我用过
lr2131
2012-12-27
打赏
举报
回复
哪种方式都可以的时候,那你就选你自己最熟悉的方法嘛,这么简单的问题。要感觉用C/C++不知道怎么下手,我之前有个帖子里面有代码,另外你也可以上网下个串口调试助手什么的,以备测试你自己的代码,好用就行。 http://bbs.csdn.net/topics/390308547
痴才
2012-12-27
打赏
举报
回复
老大 给点分吧! 你会C的话。。怎么做都行, 但我劝你用C#。。 串口通信 C#上手 比较快 方便! C++ 也行 我给你贴上点C++的代码。。 做个创建个对话框应用程序。 我给你贴些 代码 有可能 用上。。。 void CSerialPortDlg::OnBnClickedButtonConnect() { // TODO: 在此添加控件通知处理程序代码 DWORD IDThread; OpenCom(_T("COM2"),9600,8,1,0); hdcomThread=CreateThread((LPSECURITY_ATTRIBUTES)NULL, 0, (LPTHREAD_START_ROUTINE)ReadData, AfxGetMainWnd()->m_hWnd,0, &IDThread);//创建线程接收数据 } void CSerialPortDlg::OnBnClickedButtonSend() { // TODO: 在此添加控件通知处理程序代码 DWORD Rlength; char sendbuf[512]=""; //memset(sendbuf UpdateData(true); for(int i=0;i<SendData.GetLength();i++) { sendbuf[i]=SendData[i]; } WriteFile(hdcom,sendbuf,(char)SendData.GetLength(),&Rlength,&ComOver); ComError=GetLastError(); } BOOL CSerialPortDlg::OpenCom(LPCTSTR Port, int BaudRate, int DataBits, int StopBits, int Parity) { DCB dcb; COMMTIMEOUTS CommTimeOuts; hdcom=CreateFile(Port,GENERIC_READ | GENERIC_WRITE, 0, NULL, OPEN_EXISTING, FILE_FLAG_OVERLAPPED, NULL); //打开串口 if(hdcom==INVALID_HANDLE_VALUE) { AfxMessageBox(_T("!串口不存在或已被占用")); return FALSE; } else { GetCommState(hdcom,&dcb); dcb.BaudRate=BaudRate; dcb.ByteSize=DataBits; dcb.StopBits=StopBits; dcb.Parity=Parity; SetCommState(hdcom,&dcb); SetupComm(hdcom,2048,2048); SetCommMask(hdcom,EV_RXCHAR|EV_TXEMPTY); GetCommTimeouts(hdcom, &CommTimeOuts); CommTimeOuts.ReadIntervalTimeout=10; SetCommTimeouts(hdcom, &CommTimeOuts); return true; } } DWORD WINAPI ReadData(HWND hWnd)//主窗口句柄 { /*CSerialPortDlg *pMy=(CSerialPortDlg *)hWnd; pMy->ComError; pMy->ComStat; pMy->ReadFlag; pMy->ComOver; pMy->ComEvent;*/ char str[512]=""; DWORD wCount; //读取的字节数 DWORD wCount01; memset(&ComOver,0,sizeof(OVERLAPPED)); ComOver.hEvent=CreateEvent(NULL,TRUE,FALSE,NULL); while(1) { Sleep(2); ComEvent=0; WaitCommEvent(hdcom,&ComEvent,&ComOver); if((ComEvent&EV_RXCHAR)==EV_RXCHAR)//缓冲区中有数据到达 { ClearCommError(hdcom,&ComError,&ComStat); wCount=ComStat.cbInQue;////输入缓冲区有多少数据? if(wCount>0) { ReadFlag=ReadFile(hdcom,&str,8,&wCount01,&ComOver); str[wCount01]='\0'; if(!ReadFlag) { if(GetLastError()==ERROR_IO_PENDING) { while(!GetOverlappedResult(hdcom,&ComOver,&wCount01,TRUE )) { ComError=GetLastError(); if(ComError==ERROR_IO_PENDING)continue; //缓冲区数据没有读完,继续 } } } } ::PostMessage(hWnd,COM_RECVDATA,(unsigned int)str,wCount);//发送自定义消息给主线程,通知有数据到 ComEvent=0; } if(hdcom == INVALID_HANDLE_VALUE) break; } return TRUE; } //接受 LRESULT CSerialPortDlg::DataRecv(WPARAM wParam, LPARAM lParam) { CString recvStr((char *)wParam); RecvData += recvStr; UpdateData(false); return true; }
该用户很帅
2012-12-25
打赏
举报
回复
delphi simple
zhaozilan_ly
2012-12-25
打赏
举报
回复
那就用C++呗。。做个简单的上位机,简单实现串口通信,网口通讯。
woshi_ziyu
2012-12-25
打赏
举报
回复
使用自己最熟悉的方式
O丸子爹O
2012-12-25
打赏
举报
回复
还是用MFC吧,但是那里面的串口空间不那么好用。 关于串口通讯可以参阅龚建伟的书。 此书值得推荐。
caojue28
2012-12-25
打赏
举报
回复
VB里的串口控件也相当好用
mailzss
2012-12-25
打赏
举报
回复
MFC,里面有个串口控件,很容易的,网上一大把。
基于C#
上位机
开发的
51
下位机实现贪吃蛇和俄罗斯方块
通过C#
编写
的
上位机
完成
51
单片机的硬件下位机实现贪吃蛇和俄罗斯方块等游戏的开发。很不错。
单片机串口
通讯
上位机
编写
C#
用C#
编写
的
上位机
源码,功能可以接收单片机通过串口发来的数据,也可以回发过去,可以显示清除保存数据。调试完毕的工程源码
MFC
上位机
与STM32下位机
通讯
精讲
本课程主要介绍C++类库MFC
上位机
与STM32单片机的RS232、RS422、RS485、USB、LWIP以太网、CAN等接口进行稳定通信。课程主要从MFC和STM32基础开始,以
编写
上位机
以及下位机为主,非常注重实践。
基于STM32 及 MCS-
51
(80
51
) 单片机的 VOFA+ 串口
上位机
软件
的通信协议驱动
简介 这是为 MCS-
51
(80
51
) 系列单片机及其兼容性单片机
编写
的 VOFA+ 串口
上位机
软件
的通信协议驱动,能够支持数据通道的无限扩展,目前实现了对 JustFloat 协议的发送支持 使用方法 先申请数据通道结构 struct Vofa_Channel Vofa_CH0 = {0}; 绑定串口发送单字节数据的接口 Vofa_Init(UART1_SendOneChar); 将数据通道加入到发送队列当中 Vofa_AddChannel(&Vofa_CH0); 使用 Vofa_SetChannelData() 设定通道数据 Vofa_SetChannelData(&Vofa_CH0, sin(testData)); 使用 Vofa_JustFloatSendAllChannelData() 一次发送全部通道数据
C#
上位机
智能家居界面程序,下位机
51
单片机串口
通讯
C#界面
编写
学习,
51
单片机学习
单片机/工控
27,374
社区成员
28,770
社区内容
发帖
与我相关
我的任务
单片机/工控
硬件/嵌入开发 单片机/工控
复制链接
扫一扫
分享
社区描述
硬件/嵌入开发 单片机/工控
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章