欢迎来到一句话经典语录网
我要投稿 投诉建议
当前位置:一句话经典语录 > 口号 > 微机支持的串口号

微机支持的串口号

时间:2015-12-10 21:14

实现两台计算机之间串口通信的步骤

我的电脑属性--计算机名--在计算述(D)里(、随你喜欢,两台要输入不一样的)输入名字--更改--计算机名(C)里(任意、随你喜欢、两台要输入不一样的)输入名字点击隶属于下的工作组(W)(重要的一步)然后在工作组里(两台要输入一个样的)工作组的名字(比如WWWW),重启电脑后生效。

开机后进入你要共享的文件夹前,右键共享文件夹点击共享和安全(H)然后在网络共享和安全里根据提示进行操作。

直到在你要共享的文件下出现有一只手就OK了。

双击另一台电脑的网上邻居,打开后,一般即可看到你的共享文件了。

注:有的电脑设置的防火墙会不让使用共享。

你就要右键网上邻居--属性--更改Windows防火墙设置--列外--把文件和打印共享的前面的勾点击上。

目前微机中主要的串口与并口介绍(名称、特性、应用、类型等)

串口一次只能传送1b的数据,插口主要有D形9针和25针;并口用于连接打印机,早期只能传送4b的数据,现在能传送8b的数据。

有26针,采用防插反设计,取消了未使用的第26针,形成不对称的25针插口。

观察一台微型计算机的外部接口,分别指出串口,并口的位置,请问这些串口,并口的位置在哪啊

串口是9个针的梯型接口,可插手柄,并行接口是15针的,插打印机之类的,PS\\\/2接口是圆的,可以插键盘和鼠标,USB接口是长方形,可接USB接口,音频接口是很小的圆,一般有颜色,电源接口是方的,三线,显示器一般有15针或20针的梯形接口,HD视频接口是长方形,网络接口是和电话线很像的卡口接口,内可看到8线

求程序注释(dsp与微机串口通信) 谢谢

LDP#0h;将数据页指针设置为0 SETCINTM;禁止所有中断 LDP#0E1h;将数据页指针设置为225 SPLK#0003h,MCRA;配置串行口发送和 接收引脚 LDP#00E0h;将数据页指针设置为224 SPLK#0240h,SCSR1;启动SCI模块内部时钟 SPLK#07h, SCICCR;设置通信数据格式 SPLK#0003h,SCICTL1;接收、发送使能, 复位SCI SPLK#0000h,SCICTL2;禁止接收、发送中断 SPLK#0000h,SCIHBAUD;设置波特率 为38400bps SPLK#0060h,SCILBAUD;BRR=96(60h) SPLK#0023h,SCICTL1;解除SCI模块

一种利用微机串口通信的方法是只用串口中的_____________________条线。

3条线,收、发、地,其它的是握手信号,可以不用。

计算机硬件基础原理题,微机系统常见的串口和并口有哪些

“串行硬盘”与“并行硬盘” 随着技术的成熟,越来越多的主板和硬盘都开始支持SATA(串行ATA),SATA接口逐渐有取代传统的PATA(并行ATA)的趋势。

那么SATA和PATA在传输模式上有何区别,SATA相对PATA又有何优势呢

这就正是本文需要讨论的话题。

何谓并行ATA ATA其实是IDE设备的接口标准,大部分硬盘、光驱、软驱等等都使用的是ATA接口。

譬如现在绝大部分的朋友用的都是并行ATA接口的硬盘,应该对它80针排线的接口是再熟悉不过了吧

平常我们说到硬盘接口,就不得不提到什么Ultra-ATA\\\/100、Ultra-ATA\\\/133,这表示什么呢

这告诉我们该硬盘接口的最大传输速率为100MB\\\/s和133MB\\\/s,且硬盘是以并行的方式进行数据传输,所以我们也把这类硬盘称为并行ATA。

何谓串行ATA 串行ATA全称是Serial ATA,它是一种新的接口标准。

与并行ATA的主要不同就在于它的传输方式。

它和并行传输不同,它只有两对数据线,采用点对点传输,以比并行传输更高的速度将数据分组传输。

现在的串行ATA接口传输速率为150MB\\\/s,而且这个值将会迅速增长。

串行ATA和并行ATA传输的区别 举个比较夸张的例子,A、B两支队伍在比赛搬运包裹,A代表并行ATA,B代表串行ATA。

比赛开始,A派出了40个人用人力搬运包裹,而B只派出去了一辆货车来搬运。

在一个来回里他们搬运的包裹数量都相同,大家可以很清楚最后的结果,当然是用货车搬运的B队先把包裹运完,因为货车的速度比人步行的速度快得多多了。

同样,串行传输比并行传输的速率高就类似这个道理。

回到现实中来,现在的并行ATA接口使用的是16位的双向总线,在1个数据传输周期内可以传输4个字节的数据;而串行ATA使用的8位总线,每个时钟周期能传送1个字节。

这两种传输方式除了在每个时钟周期内传输速度不一样之外,在传输的模式上也有根本的区别,串行ATA数据是一个接着一个数据包进行传输,而并行ATA则是一次同时传送数个数据包,虽然表面上一个周期内并行ATA传送的数据更多,但是我们不要忘了,串行ATA的时钟频率要比并行的时钟频率高很多,也就是说,单位时间内,进行数据传输的周期数目更多,所以串行ATA的传输率高于并行ATA的传输率,并且未来还有更大的提升空间。

为什么我们要采用串行ATA接口 这个回答很简单,当然是为了获得更高的数据传输率。

随着当前设备需求的数据传输率越来越高,接口的工作频率也越来越高,并行ATA接口逐渐暴露出一些设计上的“硬伤”,其中最致命的就是并行线路的信号干扰。

由于传统并行ATA采用并行的总线传输数据,必须要求各个线路上数据同步,如果数据不能同步,就会出现反复读取数据,导致性能的下降,甚至导致读取数据不稳定。

而采用排线设计的数据线,正是数据读取无法更快的“罪魁祸首”。

由于并排的高速信号在传输时,会在每条电缆的周围产生微弱的电磁场,进而影响到其他数据线中的数据传递,还会因为线缆的长度和电压的变化而不断变化,随着总线频率的提升,磁场的强度也越来越大,信号干扰的影响也越来越明显。

从理论上说串行传输的工作频率可以无限提高,串行ATA就是通过提高工作频率来提升接口传输速率的。

因此串行ATA可以实现更高的传输速率,而并行ATA在没有有效地解决信号串扰问题之前,则很难达到这样高的传输速率。

并行ATA接口在总线频率方面受到其设计的制约,并不能一味地提升,而随着对数据传输率的要求越来越高,目前最快的并行ATA接口ATA133的频率为33MHz,这个几乎已经达到了并行接口的极限,再继续改造线路已不太现实。

所以推出新的接口势在必行。

如何用C语言控制计算机串口

基本方法是使用CreateFile来建立一个串口文件,然后用overlap的方式进行读写#define SERAIL_PORT_BUF_MAX (1024*8)typedef HRESULT (*PFN_CMD_PARSE_DATA)(HANDLE hParseApp, LPCSTR szRspCmd, int nCmdLen);class CUsbSrvApp\\\/\\\/ : public CWinApp{public:CUsbSrvApp();~CUsbSrvApp();BOOL OnSendData(const char *szBuf, int nLen);\\\/\\\/ 发送数据int ComConnect(CString strPort); \\\/\\\/ 连接COM口HANDLE OpenComPort(CString strPort, int nBaudRate, int nDataBits, int nStopBits, int nParity, int nFlowCtrlType); \\\/\\\/ 打开串口void Close(); \\\/\\\/ 关闭串口HANDLE m_hCom;BOOL m_bConnected;OVERLAPPED m_OverlappedRead;OVERLAPPED m_OverlappedWrite;CWinThread *m_pThread;PFN_CMD_PARSE_DATA m_pRspCmdFunc; \\\/\\\/ 用来处理接受数据的CALLBACKHANDLE m_hParseApp;};CUsbSrvApp::CUsbSrvApp(){\\\/\\\/ TODO: add construction code here,\\\/\\\/ Place all significant initialization in InitInstancem_bConnected = false;m_hCom = NULL;m_pRspCmdFunc = NULL;}CUsbSrvApp::~CUsbSrvApp(){}\\\/\\\/打开串口通信,并返回串口句柄HANDLE CUsbSrvApp::OpenComPort(CString strPortName, int nBaudRate, int nDataBits, int nStopBits, int nParity, int nFlowCtrlType){DCB dcb;COMMTIMEOUTS CommTimeOuts ;COMMCONFIG ComConfig;HANDLE hComPort;CString strPort;strPort.Format(\\\\\\\\\\\\\\\\.\\\\\\\\%s,strPortName); \\\/\\\/ COM口的文件名应该是 \\\\\\\\.\\\\COMXX\\\/\\\/打开窗口其实就是创建一个文件hComPort = CreateFile(strPort,GENERIC_READ | GENERIC_WRITE,FILE_SHARE_READ | FILE_SHARE_WRITE,NULL,OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL|FILE_FLAG_OVERLAPPED,NULL);if (INVALID_HANDLE_VALUE == hComPort)return INVALID_HANDLE_VALUE;\\\/\\\/ 设置一些COM口通讯参数和OVERLAPCommTimeOuts.ReadIntervalTimeout = -1;CommTimeOuts.ReadTotalTimeoutConstant = 0;CommTimeOuts.ReadTotalTimeoutMultiplier = 0;CommTimeOuts.WriteTotalTimeoutConstant = 0;CommTimeOuts.WriteTotalTimeoutMultiplier = 0x1388;SetCommTimeouts( m_hCom, &CommTimeOuts ) ;SetDefaultCommConfig(strPortName, &ComConfig, sizeof(COMMCONFIG));GetCommState(m_hCom, &dcb ) ;dcb.BaudRate = nBaudRate;dcb.ByteSize = nDataBits;dcb.StopBits = nStopBits;dcb.fParity = (NOPARITY != nParity);dcb.Parity = nParity;\\\/\\\/set the receive chardcb.EvtChar = 0x0D;switch(nFlowCtrlType){case 0: \\\/\\\/no flow controlbreak;case 1:\\\/\\\/HARD_FLOW_CTRL:dcb.fOutxCtsFlow = TRUE;dcb.fOutxDsrFlow = TRUE;dcb.fDtrControl = DTR_CONTROL_DISABLE;dcb.fDsrSensitivity = TRUE;dcb.fRtsControl = RTS_CONTROL_TOGGLE;break;case 2:\\\/\\\/SOFT_FLOW_CTRL:dcb.fOutX = TRUE;dcb.fInX = TRUE;break;}BuildCommDCB(_T(baud=115200 parity=N data=8 stop=1),&dcb);SetCommState(hComPort, &dcb ) ;SetCommMask(hComPort, 0);SetCommMask(hComPort, EV_RXCHAR|EV_CTS|EV_DSR|EV_RLSD|EV_RING);SetupComm( hComPort, SERAIL_PORT_BUF_MAX,SERAIL_PORT_BUF_MAX) ;\\\/\\\/clear read and write bufferPurgeComm( hComPort, PURGE_TXABORT | PURGE_RXABORT | PURGE_TXCLEAR | PURGE_RXCLEAR );return hComPort;}void CUsbSrvApp::Close(){if(m_bConnected){m_bConnected = false;CloseHandle(m_hCom);m_hCom = NULL;}}\\\/\\\/ 这个线程是监视串口数据,一旦有数据则读取并调用CALLBACK通知客户端UINT ReceiveComData(LPVOID pParam){CUsbSrvApp *pUsbSrv = (CUsbSrvApp *)pParam;HANDLE hComPort = pUsbSrv->m_hCom;DWORD dwEvtMask=0;DWORD dwErrorFlags;SetCommMask( hComPort, EV_RXCHAR);OVERLAPPED osRead;osRead.hEvent = CreateEvent(NULL,FALSE,FALSE,NULL);DWORD dwTransfer = 0;while(pUsbSrv->m_bConnected){ if( !WaitCommEvent( hComPort, &dwEvtMask,&osRead)){if( GetLastError()== ERROR_IO_PENDING){WaitForSingleObject(osRead.hEvent, INFINITE);if(dwEvtMask&EV_RXCHAR==EV_RXCHAR){COMSTAT ComStat={0} ; DWORD dwReadLen = 0;DWORD dwBytesRead = 0;DWORD dwTotalLen = 0;ClearCommError(hComPort, &dwErrorFlags, &ComStat );dwTotalLen = ComStat.cbInQue;dwReadLen = (SERAIL_PORT_BUF_MAX > dwTotalLen)?dwTotalLen:SERAIL_PORT_BUF_MAX;BYTE *pBuf = new BYTE[dwTotalLen+1];memset(pBuf, 0 , dwTotalLen+1);DWORD nReadBufLen=0;while(dwTotalLen>0){if(FALSE == ReadFile( hComPort, pBuf+nReadBufLen,dwReadLen, &dwBytesRead,&pUsbSrv->m_OverlappedRead)){if(GetLastError() == ERROR_IO_PENDING) {GetOverlappedResult(hComPort,&osRead, &dwTransfer, TRUE );}break;}nReadBufLen +=dwBytesRead;dwTotalLen -=dwBytesRead;dwReadLen -= dwBytesRead;dwReadLen = (SERAIL_PORT_BUF_MAX>dwReadLen)?dwReadLen:SERAIL_PORT_BUF_MAX;}if(pUsbSrv->m_pRspCmdFunc!=NULL&&nReadBufLen!=0){pUsbSrv->m_pRspCmdFunc(pUsbSrv->m_hParseApp, (char*)pBuf,nReadBufLen);}delete pBuf;ClearCommError(hComPort, &dwErrorFlags, &ComStat );int len =0;\\\/\\\/= m_retList.GetSize();}\\\/\\\/endif if(dwEvtMask&EV_RXCHAR==EV_RXCHAR)}\\\/\\\/endif if( GetLastError()== ERROR_IO_PENDING)}\\\/\\\/endif if( !WaitCommEvent( hComPort, &dwEvtMask,&o))else{if(GetLastError() == ERROR_IO_PENDING) {GetOverlappedResult(hComPort, &osRead, &dwTransfer, TRUE ); \\\/\\\/ sleep thread}}Sleep(1);} \\\/\\\/endwhile while(m_bConnected)return 0; }int CUsbSrvApp::ComConnect(CString strPort){int nBaudRate = 115200;int nDataBits = 8;int nStopBits = 1;int nParity = 0;int nFlowCtrl = 1;if (NULL != m_hCom || m_bConnected){return 0;}m_hCom = OpenComPort(strPort,nBaudRate,nDataBits,nStopBits,nParity,nFlowCtrl);if( INVALID_HANDLE_VALUE == m_hCom){m_hCom = NULL;return 0;}memset( &m_OverlappedRead, 0, sizeof( OVERLAPPED ) );memset( &m_OverlappedWrite, 0, sizeof( OVERLAPPED ) );m_OverlappedRead.hEvent = CreateEvent( NULL, TRUE, FALSE, NULL );m_OverlappedWrite.hEvent = CreateEvent( NULL, TRUE, FALSE, NULL );m_pThread = AfxBeginThread( ReceiveComData,(void*)this,THREAD_PRIORITY_NORMAL,0,CREATE_SUSPENDED ,NULL );if( NULL == m_pThread ){CloseHandle( m_hCom );m_hCom = NULL;return FALSE;}else{m_bConnected = TRUE;m_pThread->ResumeThread( );}return TRUE;}int CUsbSrvApp::OnSendData(const char *szBuf, int nLen){BOOL bWriteStat;BOOL bWrite = TRUE;DWORD dwBytesWrite = 0;DWORD dwBytesWritten = 0;int dwByteswrittenTotal = 0;if (NULL == m_hCom)return 0;int nSentTimes=0;while(dwByteswrittenTotal

声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。联系xxxxxxxx.com

Copyright©2020 一句话经典语录 www.yiyyy.com 版权所有

友情链接

心理测试 图片大全 壁纸图片