VS2013 串口问题求教 [问题点数:40分]

Bbs1
本版专家分:0
结帖率 0%
Bbs6
本版专家分:7675
Bbs10
本版专家分:137321
Blank
进士 2018年总版新获得的技术专家分排名前十
Blank
银牌 2019年7月 总版技术专家分月排行榜第二
2019年5月 总版技术专家分月排行榜第二
Blank
铜牌 2019年4月 总版技术专家分月排行榜第三
2019年3月 总版技术专家分月排行榜第三
Blank
红花 2019年7月 VC/MFC大版内专家分月排行榜第一
2019年6月 VC/MFC大版内专家分月排行榜第一
2019年5月 VC/MFC大版内专家分月排行榜第一
2019年4月 VC/MFC大版内专家分月排行榜第一
2019年3月 VC/MFC大版内专家分月排行榜第一
2019年1月 VC/MFC大版内专家分月排行榜第一
2018年12月 VC/MFC大版内专家分月排行榜第一
2018年11月 VC/MFC大版内专家分月排行榜第一
2018年10月 VC/MFC大版内专家分月排行榜第一
2018年9月 VC/MFC大版内专家分月排行榜第一
2018年8月 VC/MFC大版内专家分月排行榜第一
2018年5月 VC/MFC大版内专家分月排行榜第一
2018年4月 VC/MFC大版内专家分月排行榜第一
2018年3月 VC/MFC大版内专家分月排行榜第一
2018年2月 VC/MFC大版内专家分月排行榜第一
2018年1月 VC/MFC大版内专家分月排行榜第一
2017年12月 VC/MFC大版内专家分月排行榜第一
2017年11月 VC/MFC大版内专家分月排行榜第一
2017年7月 VC/MFC大版内专家分月排行榜第一
2012年7月 VC/MFC大版内专家分月排行榜第一
Bbs10
本版专家分:114994
Blank
微软MVP 2012年4月 荣获微软MVP称号
2003年4月 荣获微软MVP称号
Blank
红花 2008年2月 VB大版内专家分月排行榜第一
2003年4月 VC/MFC大版内专家分月排行榜第一
2002年11月 VC/MFC大版内专家分月排行榜第一
Blank
黄花 2011年11月 VC/MFC大版内专家分月排行榜第二
2008年3月 VB大版内专家分月排行榜第二
2008年3月 硬件/嵌入开发大版内专家分月排行榜第二
2003年4月 其他开发语言大版内专家分月排行榜第二
2003年4月 VB大版内专家分月排行榜第二
2003年3月 VB大版内专家分月排行榜第二
Blank
蓝花 2008年5月 其他开发语言大版内专家分月排行榜第三
2008年4月 其他开发语言大版内专家分月排行榜第三
2008年3月 其他开发语言大版内专家分月排行榜第三
2003年3月 VC/MFC大版内专家分月排行榜第三
2003年5月 其他开发语言大版内专家分月排行榜第三
Bbs1
本版专家分:84
Bbs7
本版专家分:15356
Blank
黄花 2014年12月 VC/MFC大版内专家分月排行榜第二
Blank
蓝花 2014年11月 VC/MFC大版内专家分月排行榜第三
Bbs10
本版专家分:114994
Blank
微软MVP 2012年4月 荣获微软MVP称号
2003年4月 荣获微软MVP称号
Blank
红花 2008年2月 VB大版内专家分月排行榜第一
2003年4月 VC/MFC大版内专家分月排行榜第一
2002年11月 VC/MFC大版内专家分月排行榜第一
Blank
黄花 2011年11月 VC/MFC大版内专家分月排行榜第二
2008年3月 VB大版内专家分月排行榜第二
2008年3月 硬件/嵌入开发大版内专家分月排行榜第二
2003年4月 其他开发语言大版内专家分月排行榜第二
2003年4月 VB大版内专家分月排行榜第二
2003年3月 VB大版内专家分月排行榜第二
Blank
蓝花 2008年5月 其他开发语言大版内专家分月排行榜第三
2008年4月 其他开发语言大版内专家分月排行榜第三
2008年3月 其他开发语言大版内专家分月排行榜第三
2003年3月 VC/MFC大版内专家分月排行榜第三
2003年5月 其他开发语言大版内专家分月排行榜第三
Bbs3
本版专家分:530
Blank
GitHub 绑定GitHub第三方账户获取
vs2013串口程序
由于整个文件上传太大大于60M,我删减了一部分,留下了主要程序,还有需要注意的是使用的是MFC编程,VS高版本的MFC需要自己下载,才可以用
求教一个串口问题
因为没有使用对话框,而且又想用ActiveX控件,所以就将MSComm控件中的那两个类文件mscomm.cpp和mscomm.h添加到我的代码中,在框架类中声明了一个控件变量叫做m_mscomm,然后在一个菜单选项里面写了这么一句代码:rn if(m_MSCOMM.get_PortOpen())rn rn m_MSCOMM.put_PortOpen(FALSE);rn rn可是编译没有<em>问题</em>,在运行的时候报了异常中断,指定的文件是winocc.cpp,请问这个是怎么回事啊?请大虾帮帮忙,不胜感激!
VS2015串口通信编程(MFC)笔记
3. 选用MSCOMM控件方式进行<em>串口</em>通信 (1). 只能打开不大于COM16的<em>串口</em>;该控件不能在其他线程中直接被调用,但可以将其操作封装到函数中被间接使用。 (2). 接收:MSCOMM控件中断事件,用于接收下位机消息。 (3). 发送:另外创建一个子线程用于控制发送流程。 m_pThread = AfxBeginThread(UpgradeThread, (LPVOID)(this), THREAD_PRIORITY_BELOW_NORMAL, 256 * 1024);//stack size = 25
vs2010串口通信
vs2010<em>串口</em>通信。
VS2010环境下的串口通信例程
VS2010环境下的一个简单的<em>串口</em>通信例程,用于GPRS数据的采集
vs++串口控件
使用地址http://www.cnblogs.com/zhuxuekui/p/3550939.html
mega128串口问题求教
请大家帮忙看下这段mega128<em>串口</em>程序有什么<em>问题</em>,ICCAVR下的,没法接收数据啊rn[code=C/C++][/code]#include rn#include rn//==================================rnvoid port_init(void)rnrn PORTA = 0xFF; rn DDRA = 0x00; rn PORTB = 0xFF; rn DDRB = 0xFF; rn PORTC = 0xFF; rn DDRC = 0x00; rn PORTD = 0xFF; rn DDRD = 0x00; rn PORTE = 0xFF; rn DDRE = 0x02; rnrn//**********************************************rnvoid uart0_init(void)rnrn UCSR0B = 0x00; rn UCSR0A = 0x02;rn UCSR0C = 0x06;rn UBRR0L = 0x67; //波特率为9600rn UBRR0H = 0x00; rn UCSR0B = 0x18;rnrn//**********************************************rnvoid init_devices(void) rnrn port_init();rn uart0_init();rn rn//**********************************************rnvoid uart0_send(unsigned char i)rnrnwhile(!(UCSR0A&(1<
串口问题求教
void CCommRDlg::OnCommMscomm1()rnrn // TODO: 在此处添加消息处理程序代码rn VARIANT m_Input1;rn COleSafeArray m_Input2;rn long length,i;rn BYTE data[1024];rn CString str;rn if(m_comm.get_CommEvent()==2)rn rn m_Input1=m_comm.get_Input();rn m_Input2=m_Input1;rn length=m_Input2.GetOneDimSize();rn for(i=0;i
求教一个串口问题
有一种很老的设备上有一个我重来未见过的15针(两排)的<em>串口</em>,请问有没有15针转换成9针的装置?
求教串口问题
我写的<em>串口</em>通讯程序与一般的迷你USB<em>串口</em>,虚拟<em>串口</em>以及<em>串口</em>卡的<em>串口</em>通讯都没有<em>问题</em>,今天用标准USB<em>串口</em>(与设备连接的一方是方型的U口,与电脑连接的是普通扁平型usb接口)进行通讯时发现数据包发送了一遍(通过监控工具发现数据发送完全),但是没有任何数据返回,同时接着发送第二遍时通过监控工具就看不到有数据发送了,应该是<em>串口</em>死掉,重启<em>串口</em>再次发送,又与上面情况一致。rn请问这是什么原因呢?麻烦大家给分析提供个解决思路,谢谢了rn代码及<em>问题</em>描述如下:rn[code=c]rnunsigned long WINAPI TSerialPort::CommThread(LPVOID Param)rnrn TSerialPort *Port = (TSerialPort *)Param;rn if (NULL == Port)rn rn ExitThread(0);rn rn rn if (INVALID_HANDLE_VALUE == Port->m_Comm)rn rn ExitThread(0);rn rn rn Port->m_ThreadAlive = true;rn rn unsigned long Event = 0;rn unsigned long CommEvent = 0;rn unsigned long Error = 0;rn COMSTAT Comstate;rn bool Result = true;rn rn if( Port->m_Comm )rn PurgeComm(Port->m_Comm, PURGE_RXCLEAR | PURGE_TXCLEAR | PURGE_RXABORT | PURGE_TXABORT);rn while(1)rn rn Result = WaitCommEvent(Port->m_Comm, &Event, &Port->m_Overlapped);rn if (Result)rn rn Result = ClearCommError(Port->m_Comm, &Error, &Comstate);rn if (Comstate.cbInQue == 0)rn rn continue;rn rn rn elsern rn switch (Error = GetLastError())rn rn case ERROR_IO_PENDING:rn rn break; rn rn case 87: rn rn break; rn rn default: rn rn Port->ProcessErrorMessage("WaitCommEvent()"); rn break; rn rn rn rn rn Event = WaitForMultipleObjects(3, Port->m_EventArray, false, INFINITE);rn switch(Event)rn rn case 0:rn Port->m_ThreadAlive = false;rn ExitThread(0);rn break;rn case 1:rn GetCommMask(Port->m_Comm, &CommEvent);rn if (CommEvent & EV_RXCHAR) //如果屏蔽掉这句,能够接收到完整的数据包;rn //但是接收完后还在这里死循环,不解。。。rn //如果不屏蔽,就在这里死循环。rn ReceiveChar(Port, Comstate);rn rn break;rn case 2:rn SendChar(Port);rn break;rn rn rn return 0;rnrn[/code]
VS2013和vs2014 无法安装,求教
VS2013和vs2014 无法安装,<em>求教</em>rn执行安装程序后显示如下图的提示,无法执行下一步安装rn[img=https://img-bbs.csdn.net/upload/201410/18/1413616193_28877.png][/img]rn[img=https://img-bbs.csdn.net/upload/201410/18/1413616202_553117.png][/img]
串口求教
大神帮看一下,我把电脑<em>串口</em>2,3脚短接了,F5下能正常的到结果,ctrl+F5就没结果了,应该是下发了,读没数据。rnrn // TODO: Add your control notification handler code herern int i,Sign;rn int D1=0,D2=0,D3=0,D4=0,D5=0,D6=0,D7=0,D8=0,D9=0,D10=0,D11=0,D12=0,D13=0,D14=0,D15=0,D16=0;rn int interlow =0,interhigh=0;rn CString strtemp1,strtemp2,strtemp3,strtemp4,strtemp5,strtemp6;rn CWnd *pWndcpu;rn CString ctr1,clear;rn CString Static3;rnrn Delay delay;rn Sign = 1; rn i = 0; rnrn clear =_T("");rn Static3 = _T("");rn unsigned char inter[6];rn inter[0] =0xFF;rn inter[1] =0xAA;rn inter[2] =0x55;rn inter[3] =0x03;rn inter[4] =0x03;rn inter[5] =0x03;rn unsigned char buffer1[6];rn DWORD wCount=0;rnrn for(i = 0; i < 6; i++)rn rn buffer1[i] = '\0';rn rnrn ((CStatic*) GetDlgItem(IDC_STATIC9))->SetWindowText(Static3);rn m_interProgerinter.SetRange(0,100);rnrnrn GetDlgItem(IDC_EDIT1)->SetWindowText(clear);rn GetDlgItem(IDC_EDIT2)->SetWindowText(clear);rn GetDlgItem(IDC_EDIT3)->SetWindowText(clear);rn GetDlgItem(IDC_EDIT4)->SetWindowText(clear);rn GetDlgItem(IDC_EDIT5)->SetWindowText(clear);rn GetDlgItem(IDC_EDIT6)->SetWindowText(clear);rn GetDlgItem(IDC_EDIT7)->SetWindowText(clear);rn GetDlgItem(IDC_EDIT8)->SetWindowText(clear);rn GetDlgItem(IDC_EDIT9)->SetWindowText(clear);rn GetDlgItem(IDC_EDIT11)->SetWindowText(clear);rn GetDlgItem(IDC_EDIT12)->SetWindowText(clear);rn GetDlgItem(IDC_EDIT13)->SetWindowText(clear);rn GetDlgItem(IDC_EDIT47)->SetWindowText(clear);rn GetDlgItem(IDC_EDIT14)->SetWindowText(clear);rn GetDlgItem(IDC_EDIT15)->SetWindowText(clear);rnrn ctrhcominter = comminterface.InitCom();rn interdelay.XSleepone(1);rn WriteFile(ctrhcominter,inter,6,&wCount,NULL);//发送数据rn interdelay.XSleepone(1);rn ReadFile(ctrhcominter,buffer1,6,&wCount,NULL);//发送数据rn ctr1 = buffer1;rn GetDlgItem(IDC_EDIT1)->SetWindowText(ctr1);rn strtemp1.Format("%02X",(BYTE)buffer1[0]);rn strtemp2.Format("%02X",(BYTE)buffer1[1]);rn strtemp3.Format("%02X",(BYTE)buffer1[2]);rn strtemp4.Format("%02X",(BYTE)buffer1[3]);rnrn strtemp5.Format("%02X",(BYTE)buffer1[4]);rn strtemp6.Format("%02X",(BYTE)buffer1[5]);rn rn sscanf(strtemp6.GetBuffer(0),"%x",&interlow);rn strtemp6.ReleaseBuffer(); rn sscanf(strtemp5.GetBuffer(0),"%x",&interhigh);rn strtemp5.ReleaseBuffer(); rnrn rn D1 = interlow & 0x01;rn D2 = interlow & 0x02;rn D3 = interlow & 0x04;rn D4 = interlow & 0x08;rn D5 = interlow & 0x10;rn D6 = interlow & 0x20;rn D7 = interlow & 0x40;rn D8 = interlow & 0x80;rnrn D9 = interhigh & 0x01;rn D10 = interhigh & 0x02;rn D11= interhigh & 0x04;rn D12 = interhigh & 0x080;rn D13 = interhigh & 0x10;rn D14 = interhigh & 0x20;rn D15 = interhigh & 0x40;rn D16= interhigh & 0x80;rnrn if(strtemp1== "FF"&& strtemp2== "AA"&& strtemp3== "55 "&& strtemp4== "03 "&& strtemp5== "FF "&& strtemp6== rnrn"FF ")rn rn // GetDlgItem(IDC_EDIT1)->SetWindowText("正常");rn GetDlgItem(IDC_EDIT2)->SetWindowText("正常");rn GetDlgItem(IDC_EDIT3)->SetWindowText("正常");rn GetDlgItem(IDC_EDIT4)->SetWindowText("正常");rn GetDlgItem(IDC_EDIT5)->SetWindowText("正常");rn GetDlgItem(IDC_EDIT6)->SetWindowText("正常");rn GetDlgItem(IDC_EDIT7)->SetWindowText("正常");rn GetDlgItem(IDC_EDIT8)->SetWindowText("正常");rn GetDlgItem(IDC_EDIT9)->SetWindowText("正常");rn GetDlgItem(IDC_EDIT11)->SetWindowText("正常");rn GetDlgItem(IDC_EDIT12)->SetWindowText("正常");rn GetDlgItem(IDC_EDIT13)->SetWindowText("正常");rn GetDlgItem(IDC_EDIT47)->SetWindowText("正常");rn GetDlgItem(IDC_EDIT14)->SetWindowText("正常");rn GetDlgItem(IDC_EDIT15)->SetWindowText("正常");rnrn rn elsern rnrn if(strtemp1== "FF"&& strtemp2== "AA"&& strtemp3== "55"&& strtemp4== "03")rn rn /* if(D1==0)rn rn GetDlgItem(IDC_EDIT1)->SetWindowText("故障");rn Static3 = Static3+"D1;";rn Sign = 0;rn rn elsern rn GetDlgItem(IDC_EDIT1)->SetWindowText("正常");rn */rnrn if(D2==0)rn rn GetDlgItem(IDC_EDIT2)->SetWindowText("故障");rn Static3 = Static3+"D2;";rn Sign = 0;rn rn elsern rn GetDlgItem(IDC_EDIT2)->SetWindowText("正常");rn rn if(D3==0)rn rn GetDlgItem(IDC_EDIT3)->SetWindowText("故障");rn Static3 = Static3+"D3;";rn Sign = 0;rn rn elsern rn GetDlgItem(IDC_EDIT3)->SetWindowText("正常");rn rn if(D4==0)rn rn GetDlgItem(IDC_EDIT4)->SetWindowText("故障");rn Static3 = Static3+"D4;";rn Sign = 0;rn rn elsern rn GetDlgItem(IDC_EDIT4)->SetWindowText("正常");rn rn if(D5==0)rn rn GetDlgItem(IDC_EDIT5)->SetWindowText("故障");rn Static3 = Static3+"D5;";rn Sign = 0;rn rn elsern rn GetDlgItem(IDC_EDIT5)->SetWindowText("正常");rn rn if(D6==0)rn rn GetDlgItem(IDC_EDIT6)->SetWindowText("故障");rn Static3 = Static3+"D6;";rn Sign = 0;rn rn elsern rn GetDlgItem(IDC_EDIT6)->SetWindowText("正常");rn rn if(D7==0)rn rn GetDlgItem(IDC_EDIT7)->SetWindowText("故障");rn Static3 = Static3+"D7;";rn Sign = 0;rn rn elsern rn GetDlgItem(IDC_EDIT7)->SetWindowText("正常");rn rn if(D8==0)rn rn GetDlgItem(IDC_EDIT8)->SetWindowText("故障");rn Static3 = Static3+"D8;";rn Sign = 0;rn rn elsern rn GetDlgItem(IDC_EDIT8)->SetWindowText("正常");rn rn if(D9==0)rn rn GetDlgItem(IDC_EDIT9)->SetWindowText("故障");rn Static3 = Static3+"D9;";rn Sign = 0;rn rn elsern rn GetDlgItem(IDC_EDIT9)->SetWindowText("正常");rn rn if(D10==0)rn rn GetDlgItem(IDC_EDIT11)->SetWindowText("故障");rn Static3 = Static3+"D10;";rn Sign = 0;rn rn elsern rn GetDlgItem(IDC_EDIT11)->SetWindowText("正常");rn rn if(D11==0)rn rn GetDlgItem(IDC_EDIT12)->SetWindowText("故障");rn Static3 = Static3+"D11;";rn Sign = 0;rn rn elsern rn GetDlgItem(IDC_EDIT12)->SetWindowText("正常");rn rn if(D12==0)rn rn GetDlgItem(IDC_EDIT13)->SetWindowText("故障");rn Static3 = Static3+"D12;";rn Sign = 0;rn rn elsern rn GetDlgItem(IDC_EDIT13)->SetWindowText("正常");rn rn if(D13==0)rn rn GetDlgItem(IDC_EDIT47)->SetWindowText("故障");rn Static3 = Static3+"D13;";rn Sign = 0;rn rn elsern rn GetDlgItem(IDC_EDIT47)->SetWindowText("正常");rn rn if(D14==0)rn rn GetDlgItem(IDC_EDIT14)->SetWindowText("故障");rn Static3 = Static3+"D14;";rn Sign = 0;rn rn elsern rn GetDlgItem(IDC_EDIT14)->SetWindowText("正常");rn rn if(D15==0)rn rn GetDlgItem(IDC_EDIT15)->SetWindowText("故障");rn Static3 = Static3+"D15;";rn Sign = 0;rn rn elsern rn GetDlgItem(IDC_EDIT15)->SetWindowText("正常");rn rn if(D16==0)rn rn GetDlgItem(IDC_EDIT16)->SetWindowText("故障");rn Static3 = Static3+"D16;";rn Sign = 0;rn rn elsern rn GetDlgItem(IDC_EDIT16)->SetWindowText("正常");rn rn rn elsern rn MessageBox("故障","检测线路",MB_OK);rn rnrn rnrnrn if(Sign == 0)rn rn Static3 = Static3+"损坏";rn pWndcpu=GetDlgItem(IDC_STATIC9);rn colourinter = RGB(255,0,0);//红色rn ((CStatic*) GetDlgItem(IDC_STATIC9))->SetWindowText(Static3);rn rn else rn rn pWndcpu=GetDlgItem(IDC_STATIC9);rn colourinter = RGB(0,255,0);//绿色 rn ((CStatic*) GetDlgItem(IDC_STATIC9))->SetWindowText("正常");rn rn m_interProgerinter.SetPos(100);rn CloseHandle(ctrhcominter);rn rnrn在F5下能正常的到结果,ctrl+F5就没结果了,好像是下发了,读不对。rnrn<em>串口</em>类,就在这论坛抄袭的。rnHANDLE cominit::InitCom() rn rn HANDLE hCom; rn hCom = CreateFile("COM1", //COM7口 rn GENERIC_READ|GENERIC_WRITE, //允许读和写 rn 0, //独占方式 rn NULL, rn OPEN_EXISTING, //打开而不是创建 rn 0, //同步方式 rn NULL); rn if(hCom == (HANDLE)-1) rn rn return NULL; rn rn SetupComm(hCom,6,6); //输入缓冲区和输出缓冲区的大小都是100 rn COMMTIMEOUTS TimeOuts; rn //设定读超时 rn TimeOuts.ReadIntervalTimeout=MAXDWORD; rn TimeOuts.ReadTotalTimeoutMultiplier=0; rn TimeOuts.ReadTotalTimeoutConstant=0; rn //在读一次输入缓冲区的内容后读操作就立即返回, rn //而不管是否读入了要求的字符。 rn //设定写超时 rn TimeOuts.WriteTotalTimeoutMultiplier=100; rn TimeOuts.WriteTotalTimeoutConstant=500; rn SetCommTimeouts(hCom,&TimeOuts); //设置超时 rnrn DCB dcb; rn GetCommState(hCom,&dcb);rn dcb.BaudRate=9600; //波特率为9600 rn dcb.ByteSize=8; //每个字节有8位 rn dcb.Parity=SPACEPARITY; //无奇偶校验位NOPARITY, rn dcb.StopBits=2; //两个停止位 rn SetCommState(hCom,&dcb); rn PurgeComm(hCom, PURGE_TXCLEAR|PURGE_RXCLEAR); rn return hCom; rnrn
C语言串口发送数据VS2013
使用C语言<em>串口</em>发送数据,即向<em>串口</em>写入数据。将要发送的数据写进一个数据,一次一次发送出去。
VS2013 c++开发的串口助手
VS2013 c++开发的<em>串口</em>助手,使用mscomm控件。欢迎下载使用。
C语言串口接收数据VS2013
使用C语言对<em>串口</em>发送来的数据进行接收,16进制显示数据,并保存到TXT中。
vs2013 + QT组件开发串口程序
VS2013 + QT组件添加QT<em>串口</em>模块    在用VS + QT 开发<em>串口</em>类应用时,为了跨平台的需要,可以不用Windows的<em>串口</em>模块,而用QT自带的封装好的<em>串口</em>模块。    使用QT<em>串口</em>模块需要添加QT的<em>串口</em>链接库Qt5SerialPortd.lib文件(Debug配置) Qt5SerialPort.lib(Release配置)    配置步骤如下:    1. 添加QT环境
vs2013 c++串口助手源码
<em>vs2013</em> c++ mfc 开发的<em>串口</em>助手源码 使用mscomm控件。欢迎大家下载
C语言新手求教vs2013基础问题
#includennint main()nn char a;n scanf_s("%c", &a);n printf(" %c\n" ,a);nn为什么不能输出a啊
求教关于检测串口问题
达人早上好。我编写一个<em>串口</em>通信程序,在选择COM口的下拉列表框中,我想加入一个选项改变的话就立刻侦测所选COM是否存在的功能。rnrn可是实际上如果第一次选择为存在的端口,下一次再次选择这个COM口,则会显示<em>串口</em>不存在,为什么呢?rnrnrnvoid CPortCommDlg::OnSelchangeCombo1() rnrn UpdateData(TRUE);rn m_Output="正在检查<em>串口</em>状态...\r\n";rn CString changeCOM;rn CString changeCOMadd;rn CString displayadd;rn m_comport.GetLBText(m_comport.GetCurSel(),changeCOM);rn int changeCOMINT;rn changeCOMINT=atoi(changeCOM);rn changeCOMadd="COM3"+changeCOM;rn m_COM.SetCommPort(changeCOMINT);rn if(m_COM.GetPortOpen())rn m_COM.SetPortOpen(FALSE);rn HANDLE m_CombohCom;rn m_CombohCom=CreateFile(rn changeCOMadd,rn GENERIC_READ|GENERIC_WRITE,rn 0,rn NULL,rn OPEN_EXISTING,rn FILE_ATTRIBUTE_NORMAL|FILE_FLAG_OVERLAPPED,rn NULLrn );rn if(m_CombohCom==INVALID_HANDLE_VALUE)rn rn if(GetLastError()==2)rn rn displayadd="<em>串口</em>号不存在!";rn rn else if(GetLastError()==5)rn rn displayadd="<em>串口</em>号被占用!";rn rn rn elsern rn displayadd="<em>串口</em>初始化成功!"; rn rn CloseHandle(m_CombohCom);rn m_COM.SetCommPort(changeCOMINT);rn if(m_COM.GetPortOpen())rn m_COM.SetPortOpen(FALSE);rnrn m_Output+=displayadd;rn Sleep(1000);rn UpdateData(FALSE);rnrn
新手求教:VB串口问题
在做一个<em>串口</em>通讯的exe,PC端先循环发送握手信号&H20,一旦检测到握手成功,就发送命令信号&H2,然后再进行下一步操作。<em>问题</em>是: rn 在发送命令信号&H2时,根据打印的信息,下位机接收到的仍然是握手信号&H20,为什么会这样? rn 后来尝试在检测到握手成功后清空发送缓冲和接收缓冲,再发送命令信号,结果得不到改观; rn 而后又尝试在检测到握手成功后清空发送缓冲和接收缓冲、关闭<em>串口</em>,再打开<em>串口</em>,再执行清空发送缓冲和接收缓冲,再发送命令信号,结果仍得 rn 不到改观。代码片断如下: rn Do rn MSComm1.OutBufferCount = 0 rn MSComm1.InBufferCount = 0 rn sendbyte (HS_CODE) '&H20 rn If IsRxDataReady(1, 0) = True Then ' rn ReDim returnData(1) rn returnData = ReadRxData(10) rn If returnData(0) Then 'Handshak is OK ? rn Exit Do rn End If rn End If rn Loop rnrn MSComm1.OutBufferCount = 0 'clean buffer rn MSComm1.InBufferCount = 0 rn MSComm1.PortOpen = False 'close com port rnrn OpenCommPort 'Open com port rn MSComm1.OutBufferCount = 0 'clean buffer rn MSComm1.InBufferCount = 0 rn Do rn MSComm1.OutBufferCount = 0 rn MSComm1.InBufferCount = 0 rn sendbyte (HS_COMMAND) '&H2 rn If IsRxDataReady(1, 0) = True Then rn ReDim returnData(1) rn returnData = ReadRxData(1) rn If returnData(0) = CCHR Then 'Command is OK ? rn Exit Do rn End If rn End If rn Loop rnrn各位VB前辈,多多指教,谢谢 rn如果可以的话,可以QQ指导:36039261,或E-mail:declan.lu@hotmail.com rnrn因为刚注册,分不多 rn请赐教,不胜感激
求教串口API发送问题
最近在用VC6.0写一个<em>串口</em>DLL,本人以前做单片机的,头一次写MFC程序,研究了几天,大部分功能算是有了,但是有个writefile的<em>问题</em>令我十分头疼。rnrn调用写函数的时候,写数据长度大于14的情况下,每次都是成功14个,剩下的就没发出去,返回成功发送数是14,这种情况有人遇见没?rnrn[code=c]rnint WINAPI WriteData(HANDLE hComm,char *cData,unsigned long ulLength,unsigned long * BytesWritten)rnrn ComInfoList *p;rn BOOL bStat;rnrn p = CheckList(pHead,hComm);rn if(p == NULL)rn rn *BytesWritten = 0;rn return SEND_DATA_FAIL;rn rnrn if(p->hReader == NULL)rn rn *BytesWritten = 0;rn return SEND_DATA_FAIL;rn rnrn if(p->myoverlapped.hEvent == NULL)rn rn *BytesWritten = 0;rn return SEND_DATA_FAIL;rn rnrn if(!WriteFile(p->hComm,cData,ulLength,BytesWritten,&p->myoverlapped))rn rn if(GetLastError() == ERROR_IO_PENDING)rn rn bStat = WaitForSingleObject(p->myoverlapped.hEvent,INFINITE);rn switch(bStat)rn rn case WAIT_OBJECT_0:rn if(!GetOverlappedResult(p->hComm,&p->myoverlapped,BytesWritten,FALSE))rn rn return SEND_DATA_FAIL;rn rn break;rn default:rn return SEND_DATA_FAIL;rn break;rn rn rn elsern rn return SEND_DATA_FAIL;rn rn rnrn return 0;rnrn[/code]
***求教一个串口发送数据的问题!!
用的mscomm控件。目的是发送一些short型的数(两字节)给<em>串口</em>,每次发8位,先发低八位,然后发高八位,如此循环发送。rn我本来是想这样的rn得到short data后rnbyte lowdata[1]=0x00ff & data;rnbyte highdata[2]=(0xff00 & data )>>8;rnmscomm->output=lowdata;rnmscomm->output=highdata;rn但是好像不行rn有个<em>问题</em>,mscomm->output=type方法,type是不是只能是AnsiString类型?我该怎样做才正确呢?rnrn
求教异步串口读写的问题
将一个之前写的wince<em>串口</em>读写程序移植到xp平台时,发现收正常,发数据的时候经常出现卡死的情况,后来查找了些资料,需要改为异步<em>串口</em>才行。但是改成异步之后,收发都不能进行了,改了点之后出现以下<em>问题</em>:rn[code=c]DWORD ChControlDlg::DataSend(const BYTE *buf , int length)rnrn UpdateData(true);rn if (m_hComm==INVALID_HANDLE_VALUE)rn rn return 0;rn rn BOOL fWriteState;rn DWORD dwBytesWritten;rnrn rn OVERLAPPED m_osWrite;rn memset(&m_osWrite,0,sizeof(OVERLAPPED));rn m_osWrite.hEvent=CreateEvent(NULL,TRUE,FALSE,NULL);rn COMSTAT ComStat; rn DWORD dwErrorFlags;rn ClearCommError(m_hComm,&dwErrorFlags,&ComStat);rn BOOL bWriteStat;rn DWORD wCount = 100;rn //bWriteStat = WriteFile(hCom, m_send, m_send.GetLength(), &wCount, &m_osWrite);//发送数据rn fWriteState=WriteFile(m_hComm,buf,length*sizeof(char),&dwBytesWritten,&m_osWrite);//此处,buf和length都可以正常读取,但是dwBytesWritten值始终为0,返回值fWriteState也为0.但是实际情况是在接收端已经正常显示收到了数据,这是为什么?哪里出错了么?rn if(!fWriteState)rn rn if(GetLastError()==ERROR_IO_PENDING)rn rn SetEvent(m_osWrite.hEvent);rn WaitForSingleObject(m_osWrite.hEvent,1000);rn rn rnrn return dwBytesWritten;rnrnDWORD ChControlDlg::ReadPortThread(LPVOID lpParameter)rnrn ChControlDlg* m_pSerial;rn m_pSerial=(ChControlDlg*)lpParameter;rn //我在此处设置了断点后,程序到此暂停,发端一直在发,现在可以接收到数据可以显示。继续运行完整以后暂停显示。如果不设断点,接受区什么反应都没rn BOOL fReadState;rn DWORD dwLength;rnrn COMSTAT ComStat;rn DWORD dwErrorFlags;rn OVERLAPPED m_osRead;rn memset(&m_osRead,0,sizeof(OVERLAPPED));rn m_osRead.hEvent=CreateEvent(NULL,TRUE,FALSE,NULL);rnrn ClearCommError(m_pSerial->m_hComm,&dwErrorFlags,&ComStat);rnrn m_pSerial->m_nBufferSize=min(m_pSerial->m_nBufferSize,(DWORD)ComStat.cbInQue);rnrn if (!m_pSerial->m_nBufferSize)rn rn return FALSE;rn rnrn char* buf=new char[m_pSerial->m_nBufferSize];rnrn while(m_pSerial->m_hComm!=INVALID_HANDLE_VALUE)rn rn fReadState=ReadFile(m_pSerial->m_hComm,buf,m_pSerial->m_nBufferSize,&dwLength,&m_osRead);rn if(!fReadState)rn rn //AfxMessageBox(_T("无法从<em>串口</em>读取数据!"));rn if (GetLastError()==ERROR_IO_PENDING)rn rn WaitForSingleObject(m_osRead.hEvent,2000);rn PurgeComm(m_pSerial->m_hComm, PURGE_TXABORT|rn PURGE_RXABORT|PURGE_TXCLEAR|PURGE_RXCLEAR);rn return m_pSerial->m_nBufferSize;rnrn rn return 0;rn rn elsern rn if(dwLength!=0)rn rn //回送数据rn if(m_pSerial->m_lpDataArriveProc!=NULL)rn rn m_pSerial->m_lpDataArriveProc(buf,dwLength,m_pSerial->m_dwUserData);//这个是做了一个消息传递,然后就处理数据并显示rn rn rn rn rn PurgeComm(m_pSerial->m_hComm, PURGE_TXABORT|rn PURGE_RXABORT|PURGE_TXCLEAR|PURGE_RXCLEAR);rn// return dwBytesRead;rnrnrn delete[] buf;rn return 0;rn[/code]
求教串口回显问题
有个<em>问题</em>,请教哈大家rnPrivate Sub cmdautosend_Click()rnIf blnautosendflag Thenrnfrmmain.ctrTimer.Enabled = FalsernIf Not blnautosendflag Thenrnfrmmain.ctrMSComm.PortOpen = FalsernEnd Ifrnfrmmain.cmdautosend.Caption = "自动发送"rnElsernIf Not frmmain.ctrMSComm.PortOpen Thenrnfrmmain.ctrMSComm.CommPort = 1rnfrmmain.ctrMSComm.Settings = strsetrnfrmmain.ctrMSComm.PortOpen = TruernEnd Ifrnfrmmain.ctrTimer.Interval = intTimernfrmmain.ctrTimer.Enabled = Truernfrmmain.cmdautosend.Caption = "停止发送"rnEnd Ifrnblnautosendflag = Not blnautosendflagrnrnEnd SubrnrnPrivate Sub Cmdmanualsend_Click()rnIf Not frmmain.ctrMSComm.PortOpen Thenrnfrmmain.ctrMSComm.CommPort = 1rnfrmmain.ctrMSComm.Settings = strsetrnfrmmain.ctrMSComm.PortOpen = TruernEnd IfrnCall ctrTimer_TimerrnIf Not blnautosendflag Thenrnfrmmain.ctrMSComm.PortOpen = FalsernEnd IfrnEnd SubrnrnPrivate Sub Cmdreceive_Click()rnIf blnReceiveflag Thenrn If Not blnautosendflag And Not blnreceiceflag Thenrn rn frmmain.Cmdreceive.Caption = "开始接收"rn End Ifrn Elsern If Not frmmain.ctrMSComm.PortOpen Thenrn frmmain.ctrMSComm.CommPort = 1rn frmmain.ctrMSComm.Settings = strsetrn frmmain.ctrMSComm.PortOpen = Truern End Ifrnfrmmain.ctrMSComm.InputLen = 0rnfrmmain.ctrMSComm.InputMode = 0rnrnfrmmain.ctrMSComm.InBufferCount = 0rnfrmmain.ctrMSComm.RThreshold = 1rn frmmain.Cmdreceive.Caption = " 停止接收"rn End Ifrn blnReceiveflag = Not blnReceiveflagrn rnEnd SubrnrnPrivate Sub ctrMSComm_OnComm()rnDim byteinput() As ByternDim intinputlen As IntegerrnSelect Case frmmain.ctrMSComm.CommEventrnCase comEvReceivernrnIf blnReceiveflag Thenrn If Not frmmain.ctrMSComm.PortOpen Thenrn frmmain.ctrMSComm.CommPort = intportrn frmmain.ctrMSComm.Settings = strsetrn frmmain.ctrMSComm.PortOpen = Truern End Ifrnfrmmain.ctrMSComm.InputMode = comInputModeBinaryrnintinputlen = frmmain.ctrMSComm.InBufferCountrnReDim bytinput(intinputlen)rnDim strreceivetext As Stringrnstrreceivetext = frmmain.ctrMSComm.InputrnA$ = Left$(strreceivetext, 1)rnB$ = Right$(strreceivetext, 5)rnVal ("B$")rnSelect Case A$rnCase Is = "T"rnfrmmain.TxtT.Text = ""rnfrmmain.TxtT.Text = "B$"rnIf B > 28 And B < 10 Thenrnfrmmain.TxtT.ForeColor = &HFF&rnrnfrmmain.MMControl1.Silent = TruernElsernfrmmain.TxtT.ForeColor = &H0&rnEnd IfrnCase Is = "H"rnfrmmain.TxtH.Text = ""rnfrmmain.TxtH.Text = B$rnfrmmain.MMControl1.Silent = TruernCase Is = "V"rnfrmmain.TxtV.Text = ""rnfrmmain.TxtV.Text = B$rnCase Elsernfrmmain.TXTBZ.Text = B$rn frmmain.MMControl1.Silent = TruernEnd SelectrnrnIf Not blnReceiveflag And Not blnautosendflag ThenrnrnEnd IfrnEnd IfrnEnd SelectrnEnd SubrnrnPrivate Sub ctrTimer_Timer()rnstrsendtext = frmmain.Txtsend.Textrnfrmmain.ctrMSComm.Output = strsendtextrnrnEnd SubrnrnPrivate Sub Form_Load()rnblnautosendflag = FalsernblnReceiveflag = Falsernintreceivelen = 0rnintOutmode = 0rnrnintport = 1rnintTime = 1000rnstrset = "1200,n,8,1"rnfrmmain.ctrMSComm.InBufferSize = 1024rnfrmmain.ctrMSComm.OutBufferSize = 512rnrnIf Not frmmain.ctrMSComm.PortOpen Thenrnfrmmain.ctrMSComm.CommPort = intportrnfrmmain.ctrMSComm.Settings = strsetrnfrmmain.ctrMSComm.PortOpen = TruernEnd Ifrnfrmmain.ctrMSComm.PortOpen = FalsernrnrnEnd Subrnrnrnrn这是我写的一个将单片机采集的传感器数据用<em>串口</em>传回PC,并显示在不同的文本框内的程序,在显示的时候一直没数据,用<em>串口</em>调试助手是对的.哪位大虾能帮忙解决哈,不胜感激!
求教一个串口类的问题
我现在在写一个通过COM口发送手机的程序,里面需要打开和读写<em>串口</em>,我用了网上下的一个类,主要如下:rnclass CommPort rn public string PortNum; rn public int BaudRate;rn public byte ByteSize;rn public byte Parity; // 0-4=no,odd,even,mark,space rn public byte StopBits; // 0,1,2 = 1, 1.5, 2 rn public int ReadTimeout;rn rn private int hComm = -1; rn private bool m_bOpened = false;rn public bool Openedrn rn get return m_bOpened;rn rn rn //win32 api constantsrn private const uint GENERIC_READ = 0x80000000;rn private const uint GENERIC_WRITE = 0x40000000;rn private const int OPEN_EXISTING = 3; rn private const int INVALID_HANDLE_VALUE = -1;rn rn [StructLayout(LayoutKind.Sequential)]rn public struct DCB rn //taken from c struct in platform sdk rn public int DCBlength; // sizeof(DCB) rn public int BaudRate; rn public int fParity; rn public int fOutxCtsFlow; rn public int fOutxDsrFlow; rn public int fDtrControl; rn public int fDsrSensitivity; rn public int fTXContinueOnXoff;rn public int fOutX; rn public int fInX; rn public int fErrorChar; rn public int fNull; rn public int fRtsControl; rn public int fAbortOnError; rn public int fDummy2; rn public uint flags;rn public ushort wReserved; rn public ushort XonLim; rn public ushort XoffLim;rn public byte ByteSize; rn public byte Parity; rn public byte StopBits; rn public char XonChar; rn public char XoffChar; rn public char ErrorChar;rn public char EofChar; rn public char EvtChar; rn public ushort wReserved1;rn rnrn [StructLayout(LayoutKind.Sequential)]rn private struct COMMTIMEOUTS rn public int ReadIntervalTimeout; rn public int ReadTotalTimeoutMultiplier; rn public int ReadTotalTimeoutConstant; rn public int WriteTotalTimeoutMultiplier; rn public int WriteTotalTimeoutConstant; rn rnrn [StructLayout(LayoutKind.Sequential)] rn private struct OVERLAPPED rn public int Internal; rn public int InternalHigh; rn public int Offset; rn public int OffsetHigh; rn public int hEvent; rn rn rn [DllImport("kernel32.dll")]rn private static extern int CreateFile(rn string lpFileName, // 要打开的<em>串口</em>名称rn uint dwDesiredAccess, // 指定<em>串口</em>的访问方式,一般设置为可读可写方式rn int dwShareMode, // 指定<em>串口</em>的共享模式,<em>串口</em>不能共享,所以设置为0rn int lpSecurityAttributes, // 设置<em>串口</em>的安全属性,WIN9X下不支持,应设为NULLrn int dwCreationDisposition, // 对于<em>串口</em>通信,创建方式只能为OPEN_EXISTINGrn int dwFlagsAndAttributes, // 指定<em>串口</em>属性与标志,设置为FILE_FLAG_OVERLAPPED(重叠I/O操作),指定<em>串口</em>以异步方式通信rn int hTemplateFile // 对于<em>串口</em>通信必须设置为NULLrn );rn [DllImport("kernel32.dll")]rn private static extern bool GetCommState(rn int hFile, //通信设备句柄rn ref DCB lpDCB // 设备控制块DCBrn ); rn [DllImport("kernel32.dll")]rn private static extern bool BuildCommDCB(rn string lpDef, // 设备控制字符串rn ref DCB lpDCB // 设备控制块rn );rn [DllImport("kernel32.dll")]rn private static extern bool SetCommState(rn int hFile, // 通信设备句柄rn ref DCB lpDCB // 设备控制块rn );rn [DllImport("kernel32.dll")]rn private static extern bool GetCommTimeouts(rn int hFile, // 通信设备句柄 handle to comm devicern ref COMMTIMEOUTS lpCommTimeouts // 超时时间 time-out valuesrn ); rn [DllImport("kernel32.dll")] rn private static extern bool SetCommTimeouts(rn int hFile, // 通信设备句柄 handle to comm devicern ref COMMTIMEOUTS lpCommTimeouts // 超时时间 time-out valuesrn );rn [DllImport("kernel32.dll")]rn private static extern bool ReadFile(rn int hFile, // 通信设备句柄 handle to filern byte[] lpBuffer, // 数据缓冲区 data bufferrn int nNumberOfBytesToRead, // 多少字节等待读取 number of bytes to readrn ref int lpNumberOfBytesRead, // 读取多少字节 number of bytes readrn ref OVERLAPPED lpOverlapped // 溢出缓冲区 overlapped bufferrn );rn [DllImport("kernel32.dll")] rn private static extern bool WriteFile(rn int hFile, // 通信设备句柄 handle to filern byte[] lpBuffer, // 数据缓冲区 data bufferrn int nNumberOfBytesToWrite, // 多少字节等待写入 number of bytes to writern ref int lpNumberOfBytesWritten, // 已经写入多少字节 number of bytes writtenrn ref OVERLAPPED lpOverlapped // 溢出缓冲区 overlapped bufferrn ); rn public bool Open()rn rn rn DCB dcbCommPort = new DCB();rn COMMTIMEOUTS ctoCommPort = new COMMTIMEOUTS(); rn hComm = CreateFile(PortNum ,GENERIC_READ | GENERIC_WRITE,0, 0,OPEN_EXISTING,0,0);rn rn if(hComm == INVALID_HANDLE_VALUE) rn rn m_bOpened = false;rn return false;rn rn rn // 设置通信超时时间 SET THE COMM TIMEOUTS.rn GetCommTimeouts(hComm,ref ctoCommPort);rn ctoCommPort.ReadTotalTimeoutConstant = ReadTimeout;rn ctoCommPort.ReadTotalTimeoutMultiplier = 0;rn ctoCommPort.WriteTotalTimeoutMultiplier = 0;rn ctoCommPort.WriteTotalTimeoutConstant = 0; rn SetCommTimeouts(hComm,ref ctoCommPort);rn rn // 设置<em>串口</em> SET BAUD RATE, PARITY, WORD SIZE, AND STOP BITS.rn GetCommState(hComm, ref dcbCommPort);rn dcbCommPort.BaudRate=BaudRate;rn rn dcbCommPort.flags=0;rn //dcb.fBinary=1;rn dcbCommPort.flags|=1;rn if (Parity>0)rn rn //dcb.fParity=1rn dcbCommPort.flags|=2;rn rn dcbCommPort.Parity=Parity;rn dcbCommPort.ByteSize=ByteSize;rn dcbCommPort.StopBits=StopBits;rn if (!SetCommState(hComm, ref dcbCommPort))rn rn m_bOpened = false;rn return false;rn rn m_bOpened = true;rn return true;rn rn public byte[] Read(int NumBytes) rn byte[] BufBytes;rn byte[] OutBytes;rn BufBytes = new byte[NumBytes];rn if (hComm!=INVALID_HANDLE_VALUE) rn OVERLAPPED ovlCommPort = new OVERLAPPED();rn int BytesRead=0;rn ReadFile(hComm,BufBytes,NumBytes,ref BytesRead,ref ovlCommPort);rn OutBytes = new byte[BytesRead];rn Array.Copy(BufBytes,OutBytes,BytesRead);rn rn else rn m_bOpened = false;rn OutBytes = new byte[0];rn rn return OutBytes;rn rn rn public void Write(byte[] WriteBytes) rn if (hComm!=INVALID_HANDLE_VALUE) rn OVERLAPPED ovlCommPort = new OVERLAPPED();rn int BytesWritten = 0;rn WriteFile(hComm,WriteBytes,WriteBytes.Length,ref BytesWritten,ref ovlCommPort);rn rn else rn m_bOpened = false;rn rn rn rnrn class HexCon rn public static string ByteToString(byte[] InBytes) rn string StringOut="";rn foreach (byte InByte in InBytes) rn StringOut=StringOut + String.Format("0:X2 ",InByte);rn rn return StringOut; rn rn public static byte[] StringToByte(string InString) rn string[] ByteStrings;rn ByteStrings = InString.Split(" ".ToCharArray());rn byte[] ByteOut;rn ByteOut = new byte[ByteStrings.Length-1];rn for (int i = 0;i==ByteStrings.Length-1;i++) rn ByteOut[i] = Convert.ToByte(("0x" + ByteStrings[i]));rn rn return ByteOut;rn rn rnrnrn 可是当我用这个类Open()函数打开<em>串口</em>COM1后,用Write()函数写AT命令给<em>串口</em>,用Read()函数读<em>串口</em>却收不到任何东西(OK或者ERROR)。但是我用超级终端打开COM1口后(关闭超级终端),再用类中的Open()函数去打开<em>串口</em>COM1,这个时候写AT命令,就能收到回复了,就可以发短消息了。rn 我不知道是不是这个类写的有<em>问题</em>,还望各位大虾帮帮忙啊,解决一下。
求教串口通信问题串口助手
在调试单片机与PC机通信的时候,发现我在51中以奇校验方式通过<em>串口</em>发送数据的时候(借助PSW,ACC软件实现)在<em>串口</em>助手上无论以奇校验还是偶校验方式都能收到完整数据,这让我很疑惑,偶校验应该啥也接受不到,直接摒弃数据才对。rn 所以我做了一下实验:rn 下了个VSPD虚拟<em>串口</em>,开两个<em>串口</em>助手,一个以奇校验发数据,一个以偶校验收,结果,还是全都能收!rn 我感觉很奇怪,有如下猜测:rn 1.我的单片机模式设置有<em>问题</em>——对此,我附上代码,我相信应该没啥错,因为实在是没什么好错的,就几个寄存器。rn 2.单片机与PC机的通信中,PC根本不理会发送方式——但如果真是这样,那么,<em>串口</em>助手问什么会开发出奇偶校验的功能。rn 3.虚拟<em>串口</em>的<em>问题</em>,是数据传递出现<em>问题</em>——可是,我是先单片机直接与<em>串口</em>助手相连都出<em>问题</em>才用的这个,应该不会,我还用keil和<em>串口</em>助手做实验,从<em>串口</em>助手发数据给keil,结果,发现rb8一直为零,似乎不受发送方的tb8的影响rn 。。。。。。(学一下VC编<em>串口</em>的源代码似乎很费时间,不允许,有没有那个大虾做过)rn 没辙了,求助。
求教vs2013滚动条怎么用
新手刚刚接触,想做出来一个mfc基于对话框的简易程序,实现在一个界面内插入很多个编辑框输入数据,因为要添加很多编辑框在一页,对话框里面放不下,所以想实现通过竖直滚动条下拉来实现。但是网上查了两天了,有的直接说使用什么控件还是函数什么的,但是新手看不懂不会用,很尴尬,有一个教程通过scrollbar属性设置为true,然后添加了很多程序,实现了滚动条的上下移动,但是不知道怎么在资源视图里的dialog里面添加界面外的编辑框,求指导一下,或者知道类似教程的发一下我在自己摸索一下
求教:u305运行vs2013
本人做软件开发的,这款本子能运行<em>vs2013</em>吗
vs2013问题
错误 2 error LNK2005: "void * __cdecl operator new[](unsigned int)" (??_U@YAPAXI@Z) 已经在 libcpmt.lib(newaop.obj) 中定义 C:\Users\sojaf\Desktop\小课题new\LightPlotter\MFCApplication1\MFCApplication1\uafxcw.lib(afxmem.obj) MFCApplication1rn
VS2013问题
[img=https://img-bbs.csdn.net/upload/201611/22/1479813469_148149.png][/img]rn在VS2013中,进行生成时,总会出现这样的情况。rn求问如何解决???
vs2013问题
[url=http://www.shengxianyuan.com/Storage/master/gallery/201507/20150723093812_8281.jpg][/url]rnrn<em>vs2013</em>总是出现点打开的选项卡多出一个相同的,无限出现,如图
VS2013的问题
[img=https://img-bbs.csdn.net/upload/201812/09/1544333592_346302.jpg][/img]rnrn也许是上次设置了符号服务器什么弄的,现在调试程序动不动就进入如上界面,但是cs文件名不一定是这个,貌似他是想进入微软的dll内部去,但是又没有pdb文件,或者版本不对,现在除了从装有没有办法回到以前设置,就是不进入不提示这个界面?[img=https://forum.csdn.net/PointForum/ui/scripts/csdn/Plugin/003/monkey/2.gif][/img]
串口程序求教
我的一个程序要用for循环执行一系列动作,循环内用switch语句执行,case1要向<em>串口</em>发指令让硬件动作,要<em>串口</em>动作执行完以后再执行case2的,但是发送<em>串口</em>指令以后还没等动作执行完,case2就动了,读状态的oncomm()函数不知道咋样调用才能直道状态执行完后在出发case2?Rthreshold设的是1,应该发了<em>串口</em>指令后就直接触发oncomm()呀?
串口指令求教
用16进制计算发送指令(校验码):校验码=(设备地址0X01)XOR(命令) XOR(数据0X00)rnrn发送格式:rn设备地址(01-15)命令(0x00查状态、0x01停止、0x03起闸、0x05落闸、0x09查计数、0x0F清计数)数据(00)校验码rnrn以1号机为例:起闸指令 01-03-00-02(字节之间无空格)rn落闸指令 01-05-00-04(字节之间无空格)rnrn[color=#FF0000]起闸指令 01-03-00-02 (01是机器码,03是起闸命令 这个我能看懂,后边的00 02是什么意思,同理落闸指令后边的00 04又是什么意思,如果是1号机停止指令应该怎么写)没搞过<em>串口</em>,还请指教[/color]
【初学者求教串口设置
对方点表需求如下rn[code=HTML]rn波特率:19200 rn数据位:8位 rn停止位:1位 rn校验位:偶校验rn[/code]rnrnrn研究了一下 前三个大概应该如下设置rn[code=C#]rn SerialPort sp = new SerialPort();rn sp.BaudRate = 9600;rn sp.DataBits = 8;rn sp.StopBits = 1;rn[/code]rn但最后一个不确定,偶校验应该设置成什么值?rn[code=C#]rnsp.Parity = ???;rn[/code]rn希望高手指点,万分感激!!!!!
求教串口异常问题
开发板在别人机器的SecureCRT上输出正常rn但是在我机器上 什么显示都没有 用dnw也是没有显示 波特率什么都都配置过rnrn我机器<em>串口</em>正常rn我用在网上找到的测试方法 测试正常(2.3短接 在超级终端 写字符 字符会回显)rn用一个<em>串口</em>设备测试 也能收发正常(这个<em>串口</em>设备连接的波特率是4800)rnrn<em>求教</em>有人遇到过这种情况么?
stm32串口程序求教
stm32<em>串口</em>程序: 用<em>串口</em>助手发送一个到stm32<em>串口</em>1,与十六进制数组rn比较:a[] = 0xad,0x2,0x6,0x3F,0x4Brn如果相同 ,将另一个数组发送出去,b[] = 0xad,0x2,0x6,0x3F,0x4B,0x43,0x43,0xa3,0xc3,0xb3,0x43;rn要代码 ,要求中断实现,不要理论,回答请贴代码 ,我是菜鸟。。
求教rs485串口高手!!
各位大虾<em>求教</em>rs485的<em>问题</em>,现在我有一个pc机的rs485<em>串口</em>,有个外设通过<em>串口</em>线,向rs485发送14位的数据,我需要做一个接受程序,可是我没用过rs485不知道该怎么写初始化和数据接受,能一次接受14位的数据吗?还是要定义成8位的,每次接受8位数据,分2次接受。我想用c语言写的,请问各位谁有rs485通信的源代码,给我发一份把,谢谢!!rnEmail:yangxin_2000yx@mail.china.com
求教 linux下串口编程问题
需要在linux下读数据,并作加减乘除 再写回rn急 求各位帮忙
vs2013 vs2013
非常不错的Ide........................................
vs2013 cSerialPort类 异步串口连续收发
<em>vs2013</em> cSerialPort类 异步<em>串口</em>连续收发
C# VS2013 收串口数据 线程安全
C# VS2013 收<em>串口</em>数据 线程安全 十六进制 ASC都有 ;旧版本的源代码会在<em>串口</em>收数据时报错 说线程<em>问题</em> 这里解决了
c语言串口收发数据VS2013
最近师兄师姐在做GPS定姿的项目,需要把天线解算的结果从电脑<em>串口</em>发送出去,对于VS和C语言小白的我承担了把数据从<em>串口</em>发送出去的任务。网上<em>串口</em>通讯的例子倒是不少,在发送数据方面,下的功夫倒也不是很多,主要是老师还让我把数据接收下来校验发送的对不对,于是开始了调试代码的不归路,现在把我的过程记录下来,代码供大家参考。首先是把数据发送出去,发送数据协议是自己定义的,一个数据头2个字节,20个字节数据位,
VC++ SerialPort类 串口调试程序vs2013工程
visualstudio2013下的vc++ SerialPort类win32控制台应用程序工程文件
基于C#的串口调试工具(VS2013可运行)
C#<em>串口</em>调试工具,可发送和接收<em>串口</em>数据,并对接收到的数据进行解码分析,能够对波特率、数据位、校验位等进行选择,还能对发送和接收数据类型进行选择。三种不同的接收源码。VS2013可直接运行。
紧急求教!关于串口高速通信的问题
我正在用BCB做一个通过<em>串口</em>高速通信的程序,发送完一帧信息后需要改变校验状态,等待几毫秒(典型值4ms)就要接收回送信息,结果发现有的芯片组的电脑上运行正常(Intel BX),有的电脑上运行接收不到数据(VIA、Intel 810)!而且Windows2000下运行比WindowsXP下效果也好很多。以上是用的Pcomm.dll做的<em>串口</em>访问,如果用API的话<em>串口</em>的校验状态老容易设置出错。rn请问这个到底是什么原因?怎么解决?如有消息请发到信箱:hp104@sohu.com、hp104@163.comrn急!rn谢谢!
关于COM串口问题。新手求教
请问COM里多长时间取一次<em>串口</em>数据是怎么设定的。rn如果取回来的是一串数据,包含2个数据。怎么让它分别存入2个位置。
求教串口发送结构数据的问题
我想实现双机<em>串口</em>发送多数据类型的结构的程序,正在测试,能否实现尚未知晓,欢迎大家来讨论,能解决者送分
求教java comm串口类的问题
最近做东西需要用到java来操作windows下的<em>串口</em>rn于是在网上找到了这么一篇文章[url=http://www.cnblogs.com/jiandanfy/archive/2009/03/23/1419373.html][/url]rnrn将comm配置好之后,使用了文章给的一个例程测试rn[code=java]import java.io.*;rnimport java.util.*;rnimport javax.comm.*;rnrnpublic class SimpleWrite rn static Enumeration portList;rn static CommPortIdentifier portId;rn static String messageString = "Hello, world!\n";rn static SerialPort serialPort;rn static OutputStream outputStream;rnrn public static void main(String[] args) rn portList = CommPortIdentifier.getPortIdentifiers();rnrn while (portList.hasMoreElements()) rn portId = (CommPortIdentifier) portList.nextElement();rn if (portId.getPortType() == CommPortIdentifier.PORT_SERIAL) rn // if (portId.getName().equals("COM1")) rn if (portId.getName().equals("/dev/term/a")) rn try rn serialPort = (SerialPort)rn portId.open("SimpleWriteApp", 2000);rn catch (PortInUseException e) rn try rn outputStream = serialPort.getOutputStream();rn catch (IOException e) rn try rn serialPort.setSerialPortParams(9600,rn SerialPort.DATABITS_8,rn SerialPort.STOPBITS_1,rn SerialPort.PARITY_NONE);rn catch (UnsupportedCommOperationException e) rn try rn outputStream.write(messageString.getBytes());rn catch (IOException e) rn rn rn rn rnrn[/code]rnrnjavac SimpleWrite.java 没有<em>问题</em>rnrn可是java SimpleWrite的时候就会出现这样的错误rnrnD:\>java SimpleWriternException in thread "main" java.lang.NoClassDefFoundError: javax/comm/PortInUseErnxceptionrn at java.lang.Class.getDeclaredMethods0(Native Method)rn at java.lang.Class.privateGetDeclaredMethods(Unknown Source)rn at java.lang.Class.getMethod0(Unknown Source)rn at java.lang.Class.getMethod(Unknown Source)rn at sun.launcher.LauncherHelper.getMainMethod(Unknown Source)rn at sun.launcher.LauncherHelper.checkAndLoadMain(Unknown Source)rnCaused by: java.lang.ClassNotFoundException: javax.comm.PortInUseExceptionrn at java.net.URLClassLoader$1.run(Unknown Source)rn at java.net.URLClassLoader$1.run(Unknown Source)rn at java.security.AccessController.doPrivileged(Native Method)rn at java.net.URLClassLoader.findClass(Unknown Source)rn at java.lang.ClassLoader.loadClass(Unknown Source)rn at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)rn at java.lang.ClassLoader.loadClass(Unknown Source)rn ... 6 morern新手用java <em>串口</em>,求做过有关<em>问题</em>的高手们解答!拜谢!!rnrn
求教一个问题,stm32,安卓手机,蓝牙串口
如果安卓手机通过蓝牙<em>串口</em>发送数据给32,可以通过中断,如果32通过蓝牙发送数据给手机,应该怎样做??难道在APP里写一个不断接受数据流的语句,等待32 发送的数据吗??
100求教串口发送字符串长度问题
本人vb初级水平,请教高手:rn 我在用<em>串口</em>发送数据是,对方机器只能接收前8个字符,请问应该如何修改!rn 我在论坛里找到了相关<em>问题</em>,但是回帖讲的太过简单,对于我这种低级水平,实在是不懂,所以请高人帮我稍稍讲的详细些,谢谢了!rn 下面是我接收数据的部分程序,请各位看一下:rn tempbyte = MSComm1.Inputrn rn For i = LBound(tempbyte) To UBound(tempbyte) '循环从下限到上限rn If i = 0 Thenrnrn tempstr = Chr(tempbyte(i))rnrn Elsernrn tempstr = tempstr & Chr(tempbyte(i))rn End Ifrn rn Next irnrn
新手求教stm32 串口中断的问题
stm32的初学者rnrn做了一下<em>串口</em>收发的实验rnrnrn主函数代码如下:rn[img=https://img-bbs.csdn.net/upload/201803/27/1522143335_516089.png][/img]rnrn开启了接收中断rn中断函数如下:rn[img=https://img-bbs.csdn.net/upload/201803/27/1522143433_92070.png][/img]rnrn实验目的:rn通过发送一个字符到开发板,然后在发送回来;rn中断里想实现的是 接收完成后,LED灯闪烁一下rnrn下载到开发板里rn实现现象是:发送一个字符a,<em>串口</em>调试助手不停的接收到aaaaaaaaaaaaaaaaaa……rnLED灯没有闪烁。rnrn感觉没有进入中断函数rn请问一下 rn是哪里出现了<em>问题</em>rn
stm32f103串口接收字符串的奇怪问题求教
1.WIFI板块+秉火STM32MINI板rn[img=https://img-bbs.csdn.net/upload/201607/25/1469436317_876694.jpg][/img]rn2.通过APP控制WIFI板块<em>串口</em>输出“ONA”,“ONB”,“ONF”,MINI板接收,控制电平转换以控制电机正转,反转,停止rn 现在<em>问题</em>是程序烧好了,发送端(WIFI<em>串口</em>输出)也没<em>问题</em>了,但是不知道程序<em>问题</em>出在哪?rn3.附上程序:rn#include "stm32f10x_lib.h"rn#include "stdio.h"rn#include "stm32f10x_it.h"rnvoid RCC_Configuration(void);rnvoid GPIO_Configuration(void);rnvoid NVIC_Configuration(void);rnvoid USART_Configuration(void);rnvoid delay_nms(u16 time);rnvoid TIM4_Configuration(void);rnvoid SendCom_Juge(void);rnvoid TIM3_Configuration(void);rnrnchar instruct[5],j; rnu8 Recv_Comp; rnu16 Rev=4000;//转速rn/*******************************************************************************rn* 函数名 : mainrn* 函数描述 : Main 函数rn*******************************************************************************/rnint main(void)rnrnRCC_Configuration(); rnGPIO_Configuration(); rnNVIC_Configuration(); rnUSART_Configuration();rnTIM4_Configuration(); rnTIM3_Configuration(); rnwhile(1)rn rn delay_nms(30);rn SendCom_Juge();rnrn rnrnvoid delay_nms(u16 time)rn rn u16 i=0; rn while(time--)rn rn i=12000; //自己定义rn while(i--) ; rn rnrnrn/*******************************************************************************rn* 函数名 : NVIC_Configurationrn*******************************************************************************/rnvoid NVIC_Configuration(void)rn rn NVIC_InitTypeDef NVIC_InitStructure; rn #ifdef VECT_TAB_RAM rn NVIC_SetVectorTable(NVIC_VectTab_RAM, 0x0);/* Set the Vector Table base location at 0x20000000 */ rn #else /* VECT_TAB_FLASH */ /* Set the Vector Table base location at 0x08000000 */ rn NVIC_SetVectorTable(NVIC_VectTab_FLASH, 0x0); rn #endifrn NVIC_InitStructure.NVIC_IRQChannel = USART2_IRQChannel ; //通道设置为<em>串口</em>1中断 rn NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0; //中断占先等级0rn NVIC_InitStructure.NVIC_IRQChannelSubPriority = 1; //中断响应优先级0,赋予高的优先级rn NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE; //打开中断rn NVIC_Init(&NVIC_InitStructure); rn NVIC_InitStructure.NVIC_IRQChannel = TIM4_IRQChannel; /*TIM3中断*/rn NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0; /*先占优先级0级*/rn NVIC_InitStructure.NVIC_IRQChannelSubPriority = 2; /*从优先级3级*/rn NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE; /*IRQ通道被使能*/rn NVIC_Init(&NVIC_InitStructure);rnrnrn/*******************************************************************************rn* 函数名 : USART_Configurationrn*******************************************************************************/rnvoid USART_Configuration(void)rnrn USART_InitTypeDef USART_InitStructure;rn USART_InitStructure.USART_BaudRate = 9600;rn USART_InitStructure.USART_WordLength = USART_WordLength_8b;rn USART_InitStructure.USART_StopBits = USART_StopBits_1;rn USART_InitStructure.USART_Parity = USART_Parity_No ;rn USART_InitStructure.USART_HardwareFlowControl = USART_HardwareFlowControl_None;rn USART_InitStructure.USART_Mode = USART_Mode_Rx | USART_Mode_Tx;rn USART_Init(USART2 , &USART_InitStructure);rn USART_Cmd(USART2 , ENABLE);rn USART_ITConfig(USART2,USART_IT_RXNE,ENABLE); //一定要开启<em>串口</em>接收中断rn USART_ClearFlag(USART2,USART_FLAG_TC); //发送完成标志位 rnrn/*******************************************************************************rn* 函数名 : RCC_Configurationrn* 函数描述 : 设置系统各部分时钟rn*******************************************************************************/rnvoid RCC_Configuration(void)rnrn ErrorStatus HSEStartUpStatus; /* 定义枚举类型变量 HSEStartUpStatus */rn RCC_DeInit(); /* 复位系统时钟设置*/rn RCC_HSEConfig(RCC_HSE_ON); /* 开启HSE*/rn HSEStartUpStatus = RCC_WaitForHSEStartUp(); /* 等待HSE起振并稳定*/rn if(HSEStartUpStatus == SUCCESS) /* 判断HSE起是否振成功,是则进入if()内部 */rn rn RCC_HCLKConfig(RCC_SYSCLK_Div1); /* 选择HCLK(AHB)时钟源为SYSCLK 1分频 */rn RCC_PCLK2Config(RCC_HCLK_Div1); /* 选择PCLK2时钟源为 HCLK(AHB) 1分频 */rn RCC_PCLK1Config(RCC_HCLK_Div2); /* 选择PCLK1时钟源为 HCLK(AHB) 2分频 */rn FLASH_SetLatency(FLASH_Latency_2); /* 设置FLASH延时周期数为2 */rn FLASH_PrefetchBufferCmd(FLASH_PrefetchBuffer_Enable); /* 使能FLASH预取缓存 */rn RCC_PLLConfig(RCC_PLLSource_HSE_Div1, RCC_PLLMul_9); /* 选择锁相环(PLL)时钟源为HSE 1分频,倍频数为9,则PLL输出频率为 8MHz * 9 = 72MHz */rn RCC_PLLCmd(ENABLE); /* 使能PLL */ rn while(RCC_GetFlagStatus(RCC_FLAG_PLLRDY) == RESET); /* 等待PLL输出稳定 */rn RCC_SYSCLKConfig(RCC_SYSCLKSource_PLLCLK); /* 选择SYSCLK时钟源为PLL */rn while(RCC_GetSYSCLKSource() != 0x08); /* 等待PLL成为SYSCLK时钟源 */rn rn /* 打开APB2总线上的GPIOA时钟*/rn RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA | RCC_APB2Periph_GPIOB, ENABLE);rn RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM4|RCC_APB1Periph_TIM3|RCC_APB1Periph_USART2 , ENABLE ); //rnrnrnrn/*******************************************************************************rn* 函数名 : GPIO_Configurationrn* 函数描述 : 设置各GPIO端口功能rn*******************************************************************************/rnvoid GPIO_Configuration(void)rnrn GPIO_InitTypeDef GPIO_InitStructure;rnrnrn GPIO_InitStructure.GPIO_Pin = GPIO_Pin_2; /* 设置USART2的Tx脚(PA.2)为第二功能推挽输出模式 */rn GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;rn GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;rn GPIO_Init(GPIOA , &GPIO_InitStructure);rn GPIO_InitStructure.GPIO_Pin = GPIO_Pin_3; /* 设置USART2的Rx脚(PA.3)为浮空输入脚 */rn GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;rn GPIO_Init(GPIOA , &GPIO_InitStructure); rn GPIO_InitStructure.GPIO_Pin = GPIO_Pin_4 | GPIO_Pin_5;//推挽输出rn GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;rn GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;rn GPIO_Init(GPIOA , &GPIO_InitStructure);rn rn GPIO_InitStructure.GPIO_Pin = GPIO_Pin_7;//脉冲rn GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;rn GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;;rn GPIO_Init(GPIOA , &GPIO_InitStructure);rn rn rnrnvoid TIM3_Configuration(void)rnrn TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure;/* 定义 TIM_TimeBase 初始化结构体 TIM_TimeBaseStructure */rn TIM_OCInitTypeDef TIM_OCInitStructure; /* 定义 TIM_OCInit 初始化结构体 TIM_OCInitStructure */ rn TIM_TimeBaseStructure.TIM_Period = 4600; //15KHZ 计数重载值rn TIM_TimeBaseStructure.TIM_Prescaler = 0;// 预分频值为(0+ 1 = 1)rn TIM_TimeBaseStructure.TIM_ClockDivision = 0; //时钟分割0rn TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up;//向上计数模式 rn TIM_TimeBaseInit(TIM3 , &TIM_TimeBaseStructure);rn TIM_OCInitStructure.TIM_OCMode = TIM_OCMode_PWM1; // 工作模式为 PWM 输出模式rn TIM_OCInitStructure.TIM_OutputState = TIM_OutputState_Enable; rn TIM_OCInitStructure.TIM_OCPolarity = TIM_OCPolarity_High;rn TIM_OCInitStructure.TIM_Pulse = Rev;//rn TIM_OC2Init(TIM3, &TIM_OCInitStructure);rn TIM_OC2PreloadConfig(TIM3 , TIM_OCPreload_Enable); /* 使能预装载寄存器 */rn TIM_ARRPreloadConfig(TIM3, ENABLE);rn TIM_Cmd(TIM3 , ENABLE); /* 启动 TIM 计数 */rnrnrnint fputc(int ch, FILE *f)rnrn USART_SendData(USART2, (u8) ch);rn while(USART_GetFlagStatus(USART2, USART_FLAG_TC) == RESET);rn return ch;rnrnvoid TIM4_Configuration(void)rnrn TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure;rn TIM_TimeBaseStructure.TIM_Period = 4;rn TIM_TimeBaseStructure.TIM_Prescaler = 7199;rn TIM_TimeBaseStructure.TIM_ClockDivision = 0;rn TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up;rn TIM_TimeBaseInit(TIM4, &TIM_TimeBaseStructure);rn TIM_ClearFlag(TIM4, TIM_FLAG_Update);rn TIM_ARRPreloadConfig(TIM4, DISABLE); rn TIM_ITConfig(TIM4,TIM_IT_Update,ENABLE);rnrnrnvoid SendCom_Juge(void)rnrn if(Recv_Comp==1) rn rn rn Recv_Comp=0;rn j=0;rn rn if((instruct[0] == 'O') && (instruct[1] == 'N')&& (instruct[2] == 'A'))rn rn GPIO_SetBits(GPIOA,GPIO_Pin_4);rn GPIO_ResetBits(GPIOA,GPIO_Pin_5);rn rn if((instruct[0] == 'O') && (instruct[1] == 'N')&& (instruct[2] == 'B'))rn rn GPIO_ResetBits(GPIOA,GPIO_Pin_4);rn GPIO_SetBits(GPIOA,GPIO_Pin_5); rn rn if((instruct[0] == 'O') && (instruct[1] == 'N')&& (instruct[2] == 'F'))rn rn GPIO_SetBits(GPIOA,GPIO_Pin_4);rn GPIO_SetBits(GPIOA,GPIO_Pin_5);rn rn rn rn rnrn
关于串口的一个简单问题求教大侠
我们可以通过主机<em>串口</em>和开发板<em>串口</em>相连,来看到开发板启动运行时的信息,那么如果我们把2台电脑,A电脑和B电脑的<em>串口</em>相连,在A电脑的超级终端上能看到B电脑启动时的信息吗?
关于计算机串口问题求教各位高手!
<em>求教</em>各位高手,计算机<em>串口</em>的RST引脚能否通过计算机进行置1或清零,如果能,要怎样编程序才能实现呢?有没有相关的例程呢?望各位不吝赐教!
求教NEC的V25系列单片机的串口问题
那位大侠讲解一下NEC的D70320L-8的<em>串口</em>工作流程?以及SCMn和STICn的作用?
求教wince 5.0 扩展16550串口问题
找了一些资料,但还是有点不明白,rnhttp://topic.csdn.net/u/20090319/17/48afc467-5061-476c-ac41-5a0f8fdd4622.html这位仁兄也问了差不多的<em>问题</em>rnrnrn方法是不是主要将%_WINCEROOT%\Public\Common\Oak\Drivers\Serial\COM16550目录复制到我的bsp目录下,然后修改source文件,添加注册表就可以了?rnrn还有一个不明白的地方是注册表里面是设置了中断号和基地址比如: rn"Irq"=dword:40rn"IOBase"=dword:7F005C00rn那关于用到的gpio中断引脚的设置和片选信号基地址的映射是在哪个地方设置的?我看COM16550.c文件也是很简单的几行而已
stm32f103串口收发字符串的奇怪问题求教
我在程序里面对<em>串口</em>1和<em>串口</em>2做了一样的配置,中断处理函数也完全一样,一收到发给二,二收到发给一。现在<em>串口</em>2发给<em>串口</em>1,<em>串口</em>1显示的字符串是对的,<em>串口</em>1发给<em>串口</em>2,<em>串口</em>2显示的字符串是错的,而且每次还不一样。代码如下:rn//<em>串口</em>配置rnUSART_InitStructure.USART_BaudRate = 115200; //波特率rn USART_InitStructure.USART_WordLength = USART_WordLength_8b; //数据位rn USART_InitStructure.USART_StopBits = USART_StopBits_1; //停止位rn USART_InitStructure.USART_Parity = USART_Parity_No; //奇偶校验rn USART_InitStructure.USART_HardwareFlowControl = USART_HardwareFlowControl_None; //数据流控制rn USART_InitStructure.USART_Mode = USART_Mode_Rx | USART_Mode_Tx; //模式rnrn // 开启GPIO时钟 rn RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1 | RCC_APB2Periph_GPIOA, ENABLE);rn RCC_APB1PeriphClockCmd(RCC_APB1Periph_USART2 , ENABLE);rnrn //Configure USART Tx as alternate function push-pull rn GPIO_InitStructure.GPIO_Pin = GPIO_Pin_9 | GPIO_Pin_2;rn GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;rn GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;rn GPIO_Init(GPIOA, &GPIO_InitStructure); rn rn rn // Configure USART Rx as input floating rn GPIO_InitStructure.GPIO_Pin = GPIO_Pin_10 | GPIO_Pin_3;rn GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;rn GPIO_Init(GPIOA, &GPIO_InitStructure);rnrn //Uart1rn USART_Init(USART1, &USART_InitStructure); rn USART_ITConfig(USART1, USART_IT_RXNE, ENABLE);rn USART_Cmd(USART1, ENABLE);rn NVIC_InitStructure.NVIC_IRQChannel = USART1_IRQn;rn NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 3;rn NVIC_InitStructure.NVIC_IRQChannelSubPriority=0;rn NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE; rn NVIC_Init(&NVIC_InitStructure); rnrnrn //Uart2rn USART_Init(USART2, &USART_InitStructure);rn USART_ITConfig(USART2, USART_IT_RXNE, ENABLE);rn USART_Cmd(USART2, ENABLE);rn NVIC_InitStructure.NVIC_IRQChannel = USART2_IRQn;rn NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 3;rn NVIC_InitStructure.NVIC_IRQChannelSubPriority=0;rn NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE; rn NVIC_Init(&NVIC_InitStructure); rnrnrn中断处理:rnvoid USART1_IRQHandler(void)rnrn if(USART_GetITStatus(USART1, USART_IT_RXNE) != RESET)rn rn rn USART_SendData(USART2, USART_ReceiveData(USART1));rn rn rnrnrnvoid USART2_IRQHandler(void)rnrn if(USART_GetITStatus(USART2, USART_IT_RXNE) != RESET)rn rn rn USART_SendData(USART1, USART_ReceiveData(USART2));rn rn rn
高分求教串口事件问题,急
借着这里的人气,问一个关于<em>串口</em>的<em>问题</em>rn本人写的一个<em>串口</em>程序,在一个线程中,先用WaitCommEvent等待数据到达,然后用ReadFile取出数据,根据数据内容作一些相关动作。现在<em>问题</em>是,如果没有数据到达,则程序就在WaitCommEvent处阻塞了,但我想达到的效果是,如果过一段时间(比如1秒)没有数据来,我就人为地让它实现其它一些功能。我曾设置了COMMTIMEOUTS 超时,但不管怎么设,好象都没起作用。请教高手,我该如何做?
新手求教vs2005异步串口接收问题
我把<em>串口</em>设定和读接收代码一起贴了出来,显的有点多,其实是可以一眼扫过去的。发送<em>问题</em>不是很大,就是添加了ontimer处理函数之后,发了一定时间之后,就出现了什么unhandled excpetion什么的。请教下接收吧。OnBnClickedSerialconnect是个控件关联函数,我点了之后初始化端口和开辟监听线程,<em>问题</em>来了,发送端设置的1s一次固定发,然后我点这个控件之后,点一次收一次,假如隔5s钟再点,就会把这5s钟收到的数据一起显示出来,不点他就没反应,郁闷,找了很久也没找到原因哦。求大神解惑。rn[code=c]typedef void (*LPDataArriveProc)(char *data,int length,DWORD userdata);rnLPDataArriveProc m_lpDataArriveProc;rnvoid ChControlDlg::OnBnClickedSerialconnect()rnrn // TODO: Add your control notification handler code herern Open=SerialConnect(OnDataArrive,(DWORD)this);rn m_hReadThread=CreateThread(NULL,0,ReadPortThread,this,0,NULL);rnrnvoid ChControlDlg::OnDataArrive(char *data,int length,DWORD userdata)rnrn ChControlDlg* pWnd=(ChControlDlg*)userdata;rn ::SendMessage(pWnd->m_hWnd,WM_NEW_DATA_ARRIVE,(WPARAM)data,(LPARAM)length);rnrnrnBOOL ChControlDlg::SerialConnect(LPDataArriveProc proc,DWORD userdata)rnrn m_lpDataArriveProc=proc;rn m_dwUserData=userdata;rnrnrn COMMTIMEOUTS DataComTimeOuts;rn TCHAR szDataPort[15];rnrnrn if(m_hComm==INVALID_HANDLE_VALUE)rn rnrnrn // wsprintf(szDataPort,_T("COM%d"),1);rnrn m_hComm=CreateFile("COM1",GENERIC_WRITE | GENERIC_READ,0,NULL,OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL|FILE_FLAG_OVERLAPPED,NULL);rn if(m_hComm==INVALID_HANDLE_VALUE )rn rn AfxMessageBox(_T("无法打开数据端口!请检查是否已被占用。"));rn return FALSE; rn rn SetupComm(m_hComm,1024,1024);rnrn rn GetCommTimeouts(m_hComm,&DataComTimeOuts); rn DataComTimeOuts.ReadIntervalTimeout=1000;rn DataComTimeOuts.ReadTotalTimeoutMultiplier=500;rn DataComTimeOuts.ReadTotalTimeoutConstant=2000;rn DataComTimeOuts.WriteTotalTimeoutMultiplier=500;rn DataComTimeOuts.WriteTotalTimeoutConstant=2000; rn if(!SetCommTimeouts(m_hComm,&DataComTimeOuts))rn rn AfxMessageBox(_T("无法设置超时参数!"));rn PurgeComm(m_hComm,PURGE_TXCLEAR|PURGE_RXCLEAR);rn SetCommMask(m_hComma,0); rn CloseHandle(m_hComm);rn m_hComm=INVALID_HANDLE_VALUE;rn return FALSE;rn rnrn DCB datadcb;rn GetCommState(m_hComm,&datadcb);rn //datadcb.DCBlength=sizeof(datadcb);rn datadcb.BaudRate=9600;rn //datadcb.fParity=FALSE;rn //datadcb.fNull=FALSE;rn datadcb.StopBits=ONESTOPBIT;rn datadcb.Parity=NOPARITY;rn datadcb.ByteSize=8;rn //datadcb.fBinary=TRUE;rnrn SetCommMask(m_hComm,EV_RXCHAR);rnrnrnrn if (!SetCommState(m_hComm,&datadcb))rn rn AfxMessageBox(_T("无法按当前参数配置收发端口,请检查参数!"));rn PurgeComm(m_hComm,PURGE_TXCLEAR|PURGE_RXCLEAR);rn //SetCommMask(m_hComm,0); rn CloseHandle(m_hComm);rn m_hComm=INVALID_HANDLE_VALUE;rn return FALSE;rn rnrn PurgeComm(m_hComm,PURGE_TXCLEAR|PURGE_RXCLEAR); rn return TRUE;rn rn return FALSE;rnrnrnDWORD ChControlDlg::ReadPortThread(LPVOID lpParameter)rnrn ChControlDlg* m_pSerial;rn m_pSerial=(ChControlDlg*)lpParameter;rnrn char buf[1024];rn BOOL fReadState;rn DWORD dwLength;rn m_nBufferSize=1024; //缓冲大小rnrn COMSTAT ComStat;rn DWORD dwErrorFlags;rn OVERLAPPED m_osRead;rn memset(&m_osRead,0,sizeof(OVERLAPPED));rn m_osRead.hEvent=CreateEvent(NULL,TRUE,FALSE,NULL);rnrn ClearCommError(m_hComm,&dwErrorFlags,&ComStat);rnrn m_nBufferSize=min(m_nBufferSize,(DWORD)ComStat.cbInQue);rnrn if (!m_nBufferSize)rn rn return FALSE;rn rnrn rn rnrn// while(m_hComm!=INVALID_HANDLE_VALUE)rn rn fReadState=ReadFile(m_hComm,buf,m_nBufferSize,&dwLength,&m_osRead);rn rn if(!fReadState)rn rn //AfxMessageBox(_T("无法从<em>串口</em>读取数据!"));rn rn if (GetLastError()==ERROR_IO_PENDING)rn rn WaitForSingleObject(m_osRead.hEvent,2000);rn PurgeComm(m_hComm, PURGE_TXABORT|rn PURGE_RXABORT|PURGE_TXCLEAR|PURGE_RXCLEAR);rn if(dwLength!=0)rn rn //回送数据rn if(m_pSerial->m_lpDataArriveProc!=NULL)rn rn m_pSerial->m_lpDataArriveProc(buf,dwLength,m_pSerial->m_dwUserData);rnrn rn rn return dwLength;rnrn rn return 0;rn rn rn rn PurgeComm(m_hComm, PURGE_TXABORT|rn PURGE_RXABORT|PURGE_TXCLEAR|PURGE_RXCLEAR);rn if(dwLength!=0)rn rn //回送数据rn if(m_pSerial->m_lpDataArriveProc!=NULL)rn rn m_pSerial->m_lpDataArriveProc(buf,dwLength,m_pSerial->m_dwUserData);rnrn rn rn return dwLength;rnrn rn// delete[] buf;rn return 0;rnrnLRESULT ChControlDlg::OnDataArrivedMsg(WPARAM wParam,LPARAM lParam)rnrn int length=(int)lParam;rn unsigned char *data=(unsigned char*)wParam;rnrnrn CString strCap;rn CString THex;rnrnrn int i,m=0;rnrn if(length!=0)rn rnrn m_strDataReceived=CString(data).Left(length);rn m_strReceive+=m_strDataReceived;rn m_strDataReceived=_T("");rn SetDlgItemText(IDC_RECEIVE,m_strReceive);rn rn rnrn// RxNumber+=length;rn// m_rxnumber=RxNumber;rn UpdateData(FALSE);rnrn return TRUE;rn[/code]
USB转串口问题求教各位大侠
我想实现的目的是LPC11C14单片机与S3C2410开发板通过USB转<em>串口</em>交互数据,LPC11C14USB转<em>串口</em>接到PC机上能收发数据,但是接到S3C2410USB转<em>串口</em>就不可以收发了,S3C2410上有ttyUSB0<em>串口</em>了也能打开了 但是就是没数据,请各位帮分析下原因,感激不尽了!
求教WriteFile函数写串口时间长问题
我在自己的机器上写DLL,和MODEN联接写数据正常,rn但是为什么在别的机器上写<em>串口</em>时间很长,是MODEN池来的,rn要4-5秒,每次最多写263字节。rnrn我的DLL时间设置为:rn timeOver.ReadIntervalTimeout=1;rn timeOver.ReadTotalTimeoutMultiplier=1;rn timeOver.ReadTotalTimeoutConstant=1;rn timeOver.WriteTotalTimeoutMultiplier=0;rn timeOver.WriteTotalTimeoutConstant=0;rn SetCommTimeouts(hd_comm,&timeOver);rnrn 一个线程负责接收数据,另一个线程负责写rnint Writelne=WriteFile(hd_comm,m_lrc,nWrite,&nByteWrite,NULL);rnrn急等rn
worldy 在不 串口接收数据求教问题
http://bbs.csdn.net/topics/390466694这是上次实现发送的功能的帖子,现在要实现接收数据啊,这是用<em>串口</em>调试工具测试收到的16进制的数据 : 81 00 88 00 4D 20 A1 07 00 02 02 02 01 01 01 9E 86 01 00 9E 86 01 00 9D 86 01 00 46 A1 07 00 25 A1 07 00 38 A1 07 00 00 00 00 00 CA D4 01 00 80 A9 03 00 00 00 00 00 CA D4 01 00 80 A9 03 00 3B A1 07 00 0C A1 07 00 15 A1 07 00 5C E3 16 00 38 00 00 00 00 00 00 00 00 00 00 00 38 00 00 00 3C A1 07 00 1B A1 07 00 29 A1 07 00 80 E3 16 00 A0 86 01 00 9D 86 01 00 9C 86 01 00 9E 86 01 00 00 00 00 00 00 00 00 00 60,想实现以10进制的数据显示出来,前五个字节不用处理,其中20 A1 07 00(低位在前)=500010(十进制) ,02=2,02=2,02=2,01=1,01=1,01=1,9E 86 01 00 =99998,.....后边的都是这样四个字节代表一个数据,最后一位是校验码,给个解决思路啊!谢谢
dll中使用串口问题求教
求高手指点!rnrn我在一个dll(动态连接库)程序中,我使用vc的Mscom控件进行<em>串口</em>通讯,在一个对话框中加入该控件图标,rn在dll的导出函数中,调用对话框:rn__declspec(dllexport) int Test()rnAFX_MANAGE_STATE(AfxGetStaticModuleState());rnCComTest ComTestDlg;rnComTestDlg.DoModal();rnreturn 1;rnrn在另一个应用程序中,调用该导出函数,但是对话筐没有显示出来,调试发现是Mscom控件的<em>问题</em>, rn不将控件图标拖入对话框,对话框可以显示出来,但一加入就显示不出来,我测试了一下,rn对话框的Domodal()函数返回的是-1,表示对话框没有创建成功,不明白是什么原因;rn同样的程序,不使用dll形式,采用一般的sdi或对话框程序,运行没有<em>问题</em>;rn (2)另外,按照另一种方法:不将控件图标拖入对话框,在resource symbol 中定义IDC_MSCOMM1,rn然后在对话框的OnCreate()函数中按控件生成的方法产生控件:rnint CComTest::OnCreate(LPCREATESTRUCT lpCreateStruct) rnrn if (CDialog::OnCreate(lpCreateStruct) == -1)rn return -1;rnm_myComm.Create(NULL,0,CRect(0,0,0,0),this,IDC_MSCOMM1);//(@)rnrn return 0;rnrn在应用程序中调用dll的导出函数Test()后,程序死掉,不知原因;注销(@)句后,rn对话框又出来了,但不能进行<em>串口</em>通讯;rn同样的程序,不使用dll形式,采用一般的sdi或对话框程序,运行没有<em>问题</em>;rn请问:Mscom控件不可以在dll中使用吗?如果可以,应该怎样做啊?rn求高手指点,小弟的邮箱是jiadong_jiang@sohu.com,非常愿意和您交朋友rn
求教一个关于截获串口数据收发的问题
请教各位高手,小弟现手头有一个管理软件,她通过<em>串口</em>与被管理设备通信。rn现我想将其改为通过ip网与被管理设备通信。这就需要截获<em>串口</em>数据的收发,rn将其发出的数据以ip包转发给远端的设备网关,而远端设备网关回来的数据rn我又必须仿真成<em>串口</em>接收到数据通知给管理软件。rnrn这好像和诸如API钩子或驱动程序有关,各位高人如有这方面的经验能否指点一二。rnrn多谢了
c# 串口操作相关问题求教
//单开线程进行:<em>串口</em>读数据 并添加添加到队列sqdata rnwhile(true)rn Thread.sleep(30);rn byte[] RecieveData = new byte[sp.BytesToRead];rn sp.Read(RecieveData, 0, RecieveData.Length); //<em>串口</em>读数据rn int lenth = RecieveData.Length;rn if (lenth >= 160)rn rn // recvdata.AddRange(RecieveData);rn lock (sqdata)rn rn sqdata.Enqueue(RecieveData);rn rn rn rnrn另开一线程 间隔30ms 进行如下操作,rn byte[] ttemp = null; rn lock (sqdata)rn rn t1 = sqdata.Count;rn if (t1 > 0)rn rn ttemp = sqdata.Dequeue();rn rn rnsqata是队列:<em>串口</em>循环读的数并添加到队列, 为什么 我单步 ttemp数组 就有数,一直接运行,ttemp数组就一直没数 。rn直接运行,ttemp一直没有数据rn
高分求教串口发送简单问题
编程遇到这样的<em>问题</em>,就是<em>串口</em>发送数据时,先发一个帧,发出去之后,接着再发送第二个帧,两帧格式不一样。这个应该怎么控制。程序应该设置个等待时间,还是怎么去做。rnrn<em>求教</em>!谢谢
win32 api 串口接收问题 求教
重叠IO打开<em>串口</em>,<em>串口</em>接收一个字节,设置了缓冲区,怎样实现缓冲区有数据后<em>串口</em>就接收?我是菜鸟,请各位不吝赐教。
求教!c#winform的SerialPort串口控件的传值问题
各位大神,小弟近日在以前编写好的winform做上位机,添加serialport控件接收数据 ,由于小弟是新手,从网上查到一些serialport的代码,能在新建的winform项目上接收到下位机发送过来的数据,下位机<em>串口</em>是没有<em>问题</em>的,但把代码复制到要用的winform上就出<em>问题</em>了rn serialport_datareceived接收到的数据保存在 String S 上, 然后在textbox 中显示 S rnrn 调试的时候 看到有数据出现在textbox中,但非常快只有0.5秒左右textbox 上又变成一片空白,后来我在String S的赋值语句下写了MessageBox.Show(s) ,调试的时候能看到正确的值出现在MessageBox上 ,点击了确定后又弹出一个MessageBox ,上面什么都没显示,就是说 正确的值成功赋给过String S 但后来又变空了,不知到是什么情况rnrn一模一样的代码复制在另一个新建的winform上却能成功显示,由于winform项目太大就不一一贴出来,或者大神们留下您们的QQ号我把源码全部发过去,希望大神们能够帮帮我,十分感谢,现在贴有serialport子页面的代码,最后面的那三个函数是serialport的代码,代码如下rn[code=csharp] using System;rnusing System.Collections.Generic;rnusing System.ComponentModel;rnusing System.Data;rnusing System.Drawing;rnusing System.Linq;rnusing System.Text;rnusing System.Windows.Forms;rnusing bll;rnusing model;rnusing System.IO.Ports;rnrnnamespace 固定资产管理rnrn public partial class rktj : Formrn rn public rktj()rn rn InitializeComponent();rn rn rn rn Validator yz = new Validator();rn Classrktj rk = new Classrktj();rn rkb r = new rkb();rn int num;rnrn private void rktj_Load(object sender, EventArgs e)rn rn Classzhuye zy = new Classzhuye();rn zy.a(this);rn rk.DataBindingCmbZcm(cmbzcm);rn rk.DataBindingCmbcfbm(cmbbm);rn InitMySerialPort("COM3"); rn rn rnrn private void cmbzcm_Leave(object sender, EventArgs e)rn rn r.zcbh = int.Parse(cmbzcm.SelectedValue.ToString());rn rk.DataBindingCmbZcxh(cmbxh, r);rn rnrn private void button1_Click(object sender, EventArgs e)rn rn if(!yz.IsNumber(txbsl.Text))rn rn MessageBox.Show("数量输入有误");rn return;rn rn r.zcbh = int.Parse(cmbzcm.SelectedValue.ToString());rn r.zcm = cmbzcm.Text;rn r.sl = int.Parse(txbsl.Text);rn r.xh = cmbxh.SelectedValue.ToString();rn r.rkr = dlshuju.dlzh;rn r.cfbm = cmbbm.SelectedValue.ToString();rn rk.Insertrktj(r);rn rk.DataBindingDataGridView(dgvrk, num, r);rn MessageBox.Show(r.id);rn num++;rn rnrn private void InitMySerialPort(String portName)rn rn if (mySerialPort != null)rn rn mySerialPort.PortName = portName;//端口号,这里可以电脑已经连接的COM口,如COM1;rn mySerialPort.DataBits = 8;//设置每个字节的数据位,在这里我设置为8位,可以为7位rn mySerialPort.DiscardNull = false;rn mySerialPort.DtrEnable = true;rn mySerialPort.Handshake = Handshake.None;rn mySerialPort.Parity = Parity.None;rn mySerialPort.ParityReplace = Convert.ToByte("63");rn mySerialPort.RtsEnable = true;rn mySerialPort.StopBits = StopBits.One;rn rn if (!mySerialPort.IsOpen)rn rn mySerialPort.Open();//打开端口,进行监控rn rn mySerialPort.DataReceived += new SerialDataReceivedEventHandler(serialPort_DataReceived);//这个事件为最关键点,一旦端口 收到信号,就会触发该事件,这个事件就是真正读取信号,以便做接下的业务。rn rnrn public void serialPort_DataReceived(object sender, SerialDataReceivedEventArgs e)rn rn System.Threading.Thread.Sleep(100);rn string s = "";rn int count = mySerialPort.BytesToRead;rnrn byte[] data = new byte[count];rn mySerialPort.Read(data, 0, count);rn s += byteToHexStr(data);rn MessageBox.Show(s);rn if (this.InvokeRequired)//由于是非创建线程访问textBox1,所以要使用代理句柄。要不然会抛异常,这点需要特别注意rn rn this.Invoke(new MethodInvoker(delegate this.textBox1.Text = s; ));rn rn elsern rn this.textBox1.Text = s;rn rn rn public static string byteToHexStr(byte[] bytes)rn rn string returnStr = "";rn if (bytes != null)rn rn for (int i = 0; i < bytes.Length; i++)rn rn returnStr += bytes[i].ToString("X2");rn rn rn return returnStr;rn rn rn rn[/code]
[求教]多文档中串口读取问题
自定义了一个在View类中添加一个WM_COMMNOTIFY消息来接收<em>串口</em>消息,但是接受不到,<em>求教</em>,急!rnps:在单文档程序中一样的方法,可行rn单文档与多文档有什么不同吗?我是初学者,高手能不能给我例子,谢谢!
VS2013下串口数据char型转COleVariant问题
在<em>串口</em>需要发送一串字符数组buf[]时,COleVariant(buf)强制转换失效(在vc6.0环境中是允许的)。在VS2013环境下需要借助CByteArray类型进行中间的装换,实现代码如下: 首先定义:CByteArray m_array ; 将char型数组中的数值赋值到 m_array中   for (int i = 0; i m_array[i] = sbuf[i]; 
求教有没有用来学习VS2013的MFC的资料?
RT越入门越初级越好
win7,vs2013 update 5 编译错误,求教
//win7, <em>vs2013</em> update 5rnstruct aarnrn void foo(int) rn;rnrnstruct bb : public aarnrn void foo(const char*) rn void test()rn rn foo(1); //C2664 cannot convert argument 1 from 'int' to 'const char *'rn rn;rn
VS2013 LNK2001的问题(VS2013 MPI MATLAB)
<em>问题</em>是这样的:rn我从网上找到了一份源码,一个老外写的,有c++以及c++和MATLAB混编的部分,我现在就想运行他的程序,看看结果。如图:rn[img=https://img-bbs.csdn.net/upload/201508/13/1439428627_610685.png][/img]rn这个程序根据老外的readme理解,有三个生成exe文件的工程,分别是dsp,mdsp和ldsp,dsp和mdsp不依赖MPI,编译,生成和运行都没有<em>问题</em>,但是Ldsp是depend on MPI的,产生了一些<em>问题</em>。rn编译时没<em>问题</em>,但是连接有错误,起初我以为是因为没有附加MPI的目录导致连接<em>问题</em>。rn后来我发现是libDHMultM工程生成一个libDHMultM.lib文件,然后在这个lib文件里面的MPI有<em>问题</em>。rn我装的是MPICH2。rn我现在才接触c++,好多<em>问题</em>不是很明白,望高人指点。
不知道怎么用vs2013,特来求教
一开始学c语言的时候老师让我们用code blocks 。但是都说vs是主流,可是自己又不会用,还找不到这种教程。所以想问一下怎么用vs,最好能给一下网盘的链接。谢谢了!
为什么在VS2013会运行不了,怎么回事,求教
单链表:rn#includern#includern#includernrn#define Status intrn#define OK 1rn#define ERROR 0rn#define ElemType intrntypedef struct Nodernrn ElemType data;rn struct Node *next;rnLinkList;rnrnLinkList InitList(LinkList *L)rnrn L = (LinkList*)malloc(sizeof(LinkList));rn //L->data = 0;rn L->next = NULL;rnrn return *L;rnrnrnLinkList insert_1(LinkList *L, ElemType e)rnrn LinkList *p,*q;rn p = (LinkList *)malloc(sizeof(LinkList));rn q = L;rn if (q->next != NULL)rn q = q->next;rn p->data = e;rn p->next = NULL;rn q->next = p;rnrn return *L;rnrnrnvoid display(LinkList *L)rnrn LinkList *p;rn p = L->next;rn while (p != NULL)rn rn printf("\n");rn printf("%d", p->data);rn p = p->next;rn rnrnrnint main()rnrn LinkList LNode;rn InitList(&LNode);rn insert_1(&LNode, 2);rn insert_1(&LNode, 3);rn display(&LNode);rn
VS2013
[img=https://img-bbs.csdn.net/upload/201312/10/1386646796_858696.jpg][/img]rn在VS2013中,如果没有_s就会报错...提示This function or variable may be unsafe. Consider using strcpy_s insteadrn但是如果加上_s就会出现上面的错误rn新手,不懂这是为啥,有没有懂得人?帮忙解决一下[img=https://forum.csdn.net/PointForum/ui/scripts/csdn/Plugin/001/face/54.gif][/img]
vs2013
使用<em>vs2013</em> sqllite 制作的网址记录器,参考了一些别人的资料,多谢
新手求教VS2013的MFC中CMainFrame::OnCreate中的问题
[color=#FF0000]在CMainFrame::OnCreate中用:GetMenu()->GetSubMenu(0)->CheckMenuItem(5,MF_BYPOSTION | MF_GRAYED)为何无法灰化菜单项啊!SetMenu(NULL)也不能去除菜单栏[/color]
新手求教——有关VS2013 WP8升级到WP8.1的问题
[size=24px]如何将已经装好的VS2013中Windows phone 8 升级到Windows phone8.1。rn就是创建一个应用是Windows phone8的应用,如何转换成Windows phone8.1的应用!![/size]
求教串口EV_RXCHAR捕捉不到
下面的代码是线程函数,专门用于处理各种状态rn这段代码在进程EXE下工作的很好rn可是在DLL中,却总是捕捉不到EV_RXCHAR rnrn见鬼了 rn[code=C/C++]rnrn if(!::SetCommMask(_hCommHandle, _dwMaskEvent))rn rn char szBuffer[256];rn _snprintf(szBuffer, 255, "%s(%d) : COM%d Call WINAPI SetCommMask(%x, %x) Fail, thread work invalid! GetLastError() = %d;",rn __FILE__, __LINE__, _dwPort, _hCommHandle, _dwMaskEvent, GetLastError());rn MessageBox(NULL, szBuffer, "Class cnComm", MB_OK);rn return 1;rn rn rn COMSTAT Stat;rn DWORD dwError;rn rn for(DWORD dwLength, dwMask = 0; _fRunFlag && IsOpen(); dwMask = 0)rn rn if(!::WaitCommEvent(_hCommHandle, &dwMask, &_WaitOverlapped))rn rn if(::GetLastError() == ERROR_IO_PENDING)// asynchronousrn ::GetOverlappedResult(_hCommHandle, &_WaitOverlapped, &dwLength, TRUE);rn elsern continue;rn rn rn if(dwMask == 0)rn continue;rn rn switch(dwMask)rn rn case EV_RXCHAR :rn WriteLog("EV_RXCHAR\r\n") ;;//这个该死状态的总是捕捉不到rnrn ::ClearCommError(_hCommHandle, &dwError, &Stat);rn if(Stat.cbInQue >= _dwNotifyNum)rn OnReceive();rn break;rn rn case EV_TXEMPTY :rn WriteLog("EV_TXEMPTY\r\n") rn OnTXEmpty();rn break;rn rn case EV_CTS :rn WriteLog("EV_CTS\r\n") ;rn OnCTS();rn break;rn rn case EV_DSR :rn WriteLog("EV_DSR\r\n") ;rn OnDSR(); rn break;rn rn case EV_RING :rn OnRing();rn break;rn rn case EV_RLSD :rn OnRLSD();rn break;rn rn case EV_BREAK:rn OnBreak();rn break;rn rn case EV_ERR :rn WriteLog("EV_ERR\r\n") ;rn OnError();rn break;rn rn //casern //forrn return 0;rn [/code]rnrn
急急:求教小灵通串口开发
本人是做管理软件的,不过目前公司与电信达成合作要开发第三方的自带机业务,交给了我,而我本人对小灵通的开发一点也没接触过。硬着头皮了解了三天,总算了解一些关于小灵通的东东,但真正的开发还是不了解啊。想请教:rn1、如何通过<em>串口</em>向小灵通发送指令?如读串号等rn2、如何通过<em>串口</em>分析小灵通返回的信息?rnrn我目前的理解水平是:rn1、软件我只能用DELPHI或VB什么的开发,不知如何下手。rn2、如果用一些控件,如MSCOMM32,只是一些常用的方法,向小灵通发送的格式应该是怎么样的?rn3、向小灵通写信息怎么写呢?怎么带参数呢?rnrn求您了,求您了,求您了,求您了,求您了,求您了,求您了,求您了,求您了rnrn邦邦rnQQ:22625605rnMSN:seanbangbang@hotmail.comrn手机:13851863306
求教小灵通串口开发
本人是做管理软件的,不过目前公司与电信达成合作要开发第三方的自带机业务,交给了我,而我本人对小灵通的开发一点也没接触过。硬着头皮了解了三天,总算了解一些关于小灵通的东东,但真正的开发还是不了解啊。想请教:rn1、如何通过<em>串口</em>向小灵通发送指令?如读串号等rn2、如何通过<em>串口</em>分析小灵通返回的信息?rnrn我目前的理解水平是:rn1、软件我只能用DELPHI或VB什么的开发,不知如何下手。rn2、如果用一些控件,如MSCOMM32,只是一些常用的方法,向小灵通发送的格式应该是怎么样的?rn3、向小灵通写信息怎么写呢?怎么带参数呢?rnrn求您了,求您了,求您了,求您了,求您了,求您了,求您了,求您了,求您了rnrn邦邦rnQQ:22625605rnMSN:seanbangbang@hotmail.comrn手机:13851863306
java上传下载经典代码下载
java上传下载经典代码,特别针对中文做了处理。作者牛安心 相关下载链接:[url=//download.csdn.net/download/niuanxin/239425?utm_source=bbsseo]//download.csdn.net/download/niuanxin/239425?utm_source=bbsseo[/url]
远程监控控制电脑软件下载
网络人远程监控软件实现远程隐藏监控,远程隐藏控制不被对方发现。你可以远程控制对方的电脑而不被对方发现,纯绿色无毒无马的安全软件。简单易用,详情可以到网络人官网了解 相关下载链接:[url=//download.csdn.net/download/wwwmhf123/3987899?utm_source=bbsseo]//download.csdn.net/download/wwwmhf123/3987899?utm_source=bbsseo[/url]
notification下载
notification 相关下载链接:[url=//download.csdn.net/download/loovejava/4011472?utm_source=bbsseo]//download.csdn.net/download/loovejava/4011472?utm_source=bbsseo[/url]
我们是很有底线的