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

  • 286
  • 0
  • 约1.94万字
  • 约 48页
  • 2017-05-07 发布于山西
  • 举报
嵌入式实验四:串口传输实验

实 验 报 告 课程名称 嵌入式系统设计 实验仪器 清华同方辰源嵌入式系统实验箱 实验名称 实验四:串口传输实验 系 别 计算机学院 专 业 计算机科学与技术 班级/学号 学生姓名 实验日期 成 绩 指导教师 实验四:串口传输实验 实验问题回答 本实验引入了Send和Receive两个变量表示上传或下传数据,用状态机怎么实现? 答:switch(oledkey[0]) { case F: state=1; //Receive = 1; //Send = 0; break; case E: state=2; //Send = 1; //Receive = 0; break; switch(state) { case 0: break; case 1: recive(); break; case 2: send(); break; 了解串口通讯原理。 答:串口按位(bit)发送和接收字节,串口通信最重要的参数是波特率、数据位、停止位和奇偶校验。对于两个进行通信的端口,这些参数必须匹配。 1、51系列单片机的串口有4个模式,可分别用作串并转换、并串转换、异步串行通信(2种模式)。异步串行通信中,有1+8+1和1+8+1+1两种帧格式,多机通信是特殊的通信方式。 2、基本原理是两组移位寄存器。将并行通信转换成串行通信模式(发送部分),或反之(接收部分)。可全双工运行。 3、速度通过移位脉冲决定。具体一般通过定时器1的自动装载模式产生的溢出脉冲给出。 4、电平上采用的是CMOS逻辑。 5、以上是物理层和数据链路层的单片机串口模块的约定,其他层需要软件人员根据需要自行把握。另外,电平需要根据实际通信环境做变换,如232、485或红外等。 (3)了解在上位机(PC端)端,C程序中如何调用串口? 答:#include?Windows.h #include?stdio.h HANDLE?hCom; int?main(void) { hCom=CreateFile(TEXT(COM3),//COM1口 GENERIC_READ|GENERIC_WRITE,?//允许读和写 0,?//独占方式 NULL, OPEN_EXISTING,?//打开而不是创建 0,?//同步方式 NULL); if(hCom==(HANDLE)-1) { printf(打开COM失败!\n); return?FALSE; } else { printf(COM打开成功!\n); } SetupComm(hCom,1024,1024);?//输入缓冲区和输出缓冲区的大小都是1024 COMMTIMEOUTS?TimeOuts; //设定读超时 TimeOuts.ReadIntervalTimeout=1000; TimeOuts.ReadTotalTimeoutMultiplier=500; TimeOuts.ReadTotalTimeoutConstant=5000; //设定写超时 TimeOuts.WriteTotalTimeoutMultiplier=500; TimeOuts.WriteTotalTimeoutConstant=2000; SetCommTimeouts(hCom,TimeOuts);?//设置超时 DCB?dcb; GetCommState(hCom,dcb); dcb.BaudRate=9600;?//波特率为9600 dcb.ByteSize=8;?//每个字节有8位 dcb.Parity=NOPARITY;?//无奇偶校验位 dcb.StopBits=ONE5STOPBITS;?//两个停止位 SetCommState(hCom,dcb); DWORD?wCount;//读取的字节数 BOOL?bReadStat; while(

文档评论(0)

1亿VIP精品文档

相关文档