嵌入式实验四:串口传输实验

嵌入式实验四:串口传输实验

ID:32682538

大小:192.24 KB

页数:37页

时间:2019-02-14

嵌入式实验四:串口传输实验_第1页
嵌入式实验四:串口传输实验_第2页
嵌入式实验四:串口传输实验_第3页
嵌入式实验四:串口传输实验_第4页
嵌入式实验四:串口传输实验_第5页
资源描述:

《嵌入式实验四:串口传输实验》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、实验报告课程名称嵌入式系统设计实验仪器清华同方辰源嵌入式系统实验箱实验名称实验四:串口传输实验系别计算机学院专业计算机科学与技术班级/学号学生姓名实验日期成绩指导教师实验四:串口传输实验一、实验问题回答(1)本实验引入了Send和Receive两个变量表示上传或下传数据,用状态机怎么实现?答:switch(oledkey[0])caseF:state=l;//Receive=1;//Send=0;break;caseE:state=2;//Send=1;//Receive=0;break;switch(state){case0:break;case1:recive

2、();break;case2:send();break;(2)了解串口通讯原理。答:串口按位(bit)发送和接收字节,串口通信最重要的参数是波特率、数据位、停止位和奇偶校验。对于两个进行通信的端口,这些参数必须匹配。1、51系列单片机的串口有4个模式,可分别用作串并转换、并串转换、异步串行通信(2种模式)。异步串行通信中,有1+8+1和1+8+1+1两种帧格式,多机通信是特殊的通信方式。2、基木原理是两组移位寄存器。将并行通信转换成串行通信模式(发送部分),或反之(接收部分)。可全双工运行。3、速度通过移位脉冲决定。具体一般通过定时器1的自动装载模式产生的溢出脉冲

3、给出。4、电平上采用的是CMOS逻辑。5、以上是物理层和数据链路层的单片机串口模块的约定,其他层需要软件人员根据需要自行把握。另外,电平需要根据实际通信环境做变换,如232、485或红外等。(3)了解在上位机(PC端)端,C程序中如何调用串口?答:#include#includeHANDLEhCom;intmain(void){hCom=CreateFile(TEXT(HCOM3H),//COM1口GENERIC_READ

4、GENERIC_WRITE,//允许读和写0,//独占方式NULL,OPEN_EXISTING,〃打开

5、而不是创建0,//同步方式NULL);if(hCom==(HANDLE)-l){printff打开COM失败!“);returnFALSE;)else{printf(HCOM打开成功!u);}SetupComm(hCom,1024,1024);〃输入缓冲区和输出缓冲区的大小都是1024COMMTIMEOUTSTimeOuts;〃设定读超时TimeOuts.ReadIntenzalTimeout=1000;TimeOuts.ReadTotalTimeoutMultiplier=500;TimeOuts.ReadTotalTimeoutConstant=500

6、0;〃设定写超时TimeOuts.WriteTotalTimeoutMultiplier=500;TimeOuts.WriteTotalTimeoutConstant=2000;SetCommTimeouts(hCom,&TimeOuts);〃设置超时DCBdeb;GetCommState(hCom,&dcb);dcb.BaudRate=9600;//波特率为9600dcb.ByteSize=&〃每个字节有8位dcb.Parity=NOPARITY;〃无奇偶校验位dcb.StopBits=ONE5STOPBITS;//两个停止位SetCommState(hCom,

7、&dcb);DWORDwCount;//读取的字节数BOOLbReadStat;while(l){PurgeComm(hCom,PURGE_TXCLEAR

8、PURGE_RXCLEAR);//清空缓冲区charstr[9]={0};printf(”%s”,str);bReadStat=ReadFile(hCom,str,9,&vvCount,NULL);if(!bReadStat){printif读串口失败!”);returnFALSE;}else{str[8]=':printf(”%s”,str);}Sleep(lOO);(2)了解在上位机(PC端)端

9、,JAVA程序中如何调用串口?答:publicstaticvoidprocess(){try{EnumerationportList=CommPortIdentifier.getPortIdentifiers();while(portList.hasMoreElements()){CommPortldentifierportld=(CommPortIdentifier)portList.nextElement();讦(portId.getPortType()==CoiTimPortIdentifier.PORT_SERIAL)//如果端口类型是串口则判断名称bre

10、ak;}e

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。