通行证 | 帐号: 密码: 注册 | 登录
网站地图
范文同学网


自动化 模具 机械 电子 通信 动画 英语范文 工程管理 金融范文 旅游管理 工业工程 生物工程 给排水范文 西门子PLC 历史学 三菱PLC
单片机 财务 会计 法律 行政 物理 物流范文 电子商务 制药工程 包装工程 土木工程 材料科学 汉语言范文 欧姆龙PLC 电压表 松下PLC
计算机 化工 数电 工商 食品 德语 国贸范文 人力资源 教育管理 交通工程 市场营销 印刷工程 机电一体化 数控范文 变电站 文化产业

  • 网站首页|
  • 文档范文|
  • 人工降重|
  • 职称文章发表|
  • 合作期刊|
  • 范文下载|
  • 计算机范文|
  • 外文翻译|
  • 免费范文|
  • 原创范文|
  • 开题报告

联系方式

当前位置:范文同学网 -> 免费范文 -> 电子专业 -> 温度监控系统的设计(六)
自动化文档范文| 电子机电范文| 测控技术范文| 通信专业范文| 电气工程范文| 通信工程范文| 电子信息工程范文| 免费自动化范文| 免费电子范文| 免费电气范文| 通信范文
·电气自动化原创文章范文 ·学前教育专业原创文章范文 ·国际经济贸易原创文章范文 ·药学专业原创文章范文 ·英语专业原创文章范文 ·公共事业管理原创文章范文
·金融专业原创文章范文 ·广播电视编导原创文章范文 ·电子商务专业原创文章范文 ·法律专业原创文章范文 ·工商管理原创文章范文 ·汉语言文学原创文章范文
·人力资源管理原创文章范文 ·摄影专业原创文章范文 ·心理学专业原创文章范文 ·教育管理原创文章范文 ·市场营销原创文章范文 ·计算机专业原创文章范文
·物流管理专业原创文章范文 ·小学教育专业原创文章范文 ·行政管理专业原创文章范文 ·土木工程管理原创文章范文 ·财务会计专业原创文章范文 ·信息管理信息系统原创范文
·新闻学专业原创文章范文 ·眼视光技术原创文章范文 ·播音与主持原创文章范文 ·广告学专业原创文章范文 ·表演专业原创文章范文 ·动画专业原创文章范文
·视觉传达设计原创文章范文 ·数控技术专业原创文章范文 ·录音艺术原创文章范文 ·光机电应用技术原创范文 ·机电一体化原创文章范文 ·印刷技术专业原创文章范文
·动漫设计与制作原创范文 ·软件技术专业原创文章范文 ·书法学专业原创文章范文 ·应用电子技术原创文章范文 ·电子信息工程技术原创范文 ·机械专业原创文章范文
·酒店管理专业原创文章范文 ·旅游管理专业原创文章范文 ·文化产业管理专业原创范文 ·体育教育专业原创文章范文 ·通信工程专业原创文章范文 ·护理专业原创文章范文

本专业推荐:带proteus仿真程序的文档设计范文  原创文档范文点击进入 → 自动化单片机相关的原创文档范文

温度监控系统的设计(六)

本文ID:LW5813 ¥
,数据位,奇偶校验停止位的信息包含于一个DCB结构中,而超时方面的信息则包含于COMMTIMEOUTS结构中, 一般在用CreateFile 打开串行口后,可以调用GetCommState 函数来获取串行口的初始配置。要修改串行口的配置应该先修改DCB结构,然后再调用SetCommState函数用指定的DCB结构来设置串行口。例如: DCB dcb; GetCommStat..
,数据位,奇偶校验停止位的信息包含于一个DCB结构中,而超时方面的信息则包含于COMMTIMEOUTS结构中,
一般在用CreateFile 打开串行口后,可以调用GetCommState 函数来获取串行口的初始配置。要修改串行口的配置应该先修改DCB结构,然后再调用SetCommState函数用指定的DCB结构来设置串行口。例如:
DCB dcb;
GetCommState(mHandle, &dcb) //读取DCB结构
……………………
……………………
dcb.BaudRate=9600 // 设置波特率为9600b/s
dcb.ByteSize=8; // 每个字符有8位
dcb.Parity=NOPARITY; // 无校验
dcb.StopBits=ONESTOPBIT; // 一个停止位
SetCommState(hCom, &dcb) // 保存至DCB结构使设置值生效
调用SetupComm 函数可以设置串行口的输入和输出缓冲区的大小。如果通信的速率较高则应该设置较大的缓冲区。例如:
…………………………
…………………………
SetupComm( mHandle , 1024*2, 1024*2 ) //输入输出缓冲区的大小均为2K
…………………………
…………………………
在用ReadFile 和WriteFile 读写串行口时,需要考虑超时问题。如果在指定的时间内没有读出或写入指定数量的字符,那么ReadFile 或WriteFile 的操作就会结束。要查询当前的超时设置应调用GetCommTimeouts 函数。该函数会填充一个COMMTIMEOUTS 结构调用SetCommTimeouts 可以用某一个COMMTIMEOUTS结构的内容来设置超时。
…………………………
…………………………

TimeOuts. ReadIntervalTimeout=0 //读间隔超时
TimeOuts.ReadTotalTimeoutMultiplier=10 //读时间系数
TimeOuts.ReadTotalTimeoutConstant=100 //读时间常量
TimeOuts.WriteTotalTimeoutMultiplier=10 //写时间系数
TimeOuts.WriteTotalTimeoutConstant=100 //写时间常数
SetCommTimeouts(hCom, &TimeOuts); // 保存设置值生效
………………………………
………………………………
………………………………
COMMTIMEOUTS结构的成员都以毫秒为单位。总超时的计算公式是:
总超时=时间系数×要求读/写的字符数+ 时间常数
异步方式读写串行口时虽然ReadFile()和WriteFile() 在完成操作以前就可能返回但超时仍然是起作用的。这种情况下,超时规定的是操作的完成时间而不是ReadFile()和WriteFile()的返回时间。
(3)读写串口
 初始化工作完成以后便可以根据通信协议合理安排读/写函数ReadFile()和WriteFile()以读写各种握手信息和数据信息等。其中何时读取单片机发送过来的数据信息及应答信息是重要的。此时采取的是事件驱动法,即:设置通信资源上的事件掩码为EV_RXCHAR 。当接收到一个字符并放入缓冲区后即通知应用程序例。
//PC发送一组命令至单片机
WriteFile(mHandle, //串口句柄
pDataBuff, //存放数据缓种区
iLen, //所写数据的长度
pdwWritten, //已写长度操作前应置为0
lpOverlapped) //异步方式
//设置通信事件掩码
DWORD dwMask=EV_RXCHAR;
SetCommMask(m_hFile,dwMask)) //设置通信事件掩码
//等待通信事件的发生
OVERLAPPED os ;
memset( &os, 0, sizeof( OVERLAPPED ) ) ;
os.hEvent=CreateEvent(NULL TRUE FALSE NULL)
if(!WaitCommEvent(m_hFile, &dwEvtMask, &os)) // 重叠操作
if(GetLastError()==ERROR_IO_PENDING)
{
// 无限等待重叠操作结果
GetOverlappedResult(mHandle, &os, &dwTrans, true);
//事件已发生安排读操作
ReadFile(mHandle, //串口句柄
pDataBuff, //存放数据缓种区
iLen, //所读数据的长度
pdwRead, //实际所读长度
lpOverlapped) //异步方式
}
 在上例中,我们无限等待通信事件的发生。如果通信事件一直没有发生则系统将不会继续执行。在实际程序设计中我们可以设置一时限,超过此时限通信事件未到则执行相应错误处理此时,只需将GetOverlappedResult函数替换为WaitForSingleObject函数此函数的声明形式如下:
WaitForSingleObject(
HANDLE hEvent, //事件句柄
unsigned long mTimeOuts //超时设置
)
(4) 关闭串口
 通信完毕调用CloseHandle() 函数关闭串口例如
CloseHandle(mHandle); //关闭mHandle为打开串口时返回的句柄
6.4 单片机软件设计
 我们知道影响数据转输产生错误的因素有:转输线分布参数上下位机间的波特率误差现场干扰等。而针对近程小批量数据的通信,下位机的波特率误差性是影响可靠通信的最主要因素。所以在单片机软件的设计时应重点考虑并设置好波特率。
6.4.1波特率
(1)波特率误差来源分析
 ①单片机的振荡电路是由晶体及电容C1 和C2 构成。晶振频率主要由晶体的因有频率决定,同时也与电容C1、C2及外界温度有一定的关系。另外,晶体频率的标称值与实际值也不可能完全一致。
 ②波特率最大允许误差分析
 在异步串行通信方式1中单片机以16倍波特率的采样速率对接收数据(RXD)不断采样,一旦检测到由1到0的负跳变,16分频计数器立刻复位,使之满度翻转的时刻恰好与输入位的边沿对准。16分频计数器把每个接收位的时间分为16 份,在中间三位即7 ,8 ,9 ,状态时位检测器对RXD 端的值采样,并以3取2的表决方式确定所接收的数据位。由此可见,当波特率的误差使得在接收某位数据位时,采样点离该位的中点半位间隔时将会对该位采样两次。即:欲使接收的第N位为正确位时,须满足下式成立:
所允许的波特率误差N > 0.54
故当所传输的一帧数据为10 位时,所允许的最大的波特率允许误差为5 %对于其它常用的8位,9位,11位,一帧的串行传输,其最大的波特率允许误差分别为6.25%,5.56%, 和4.5%。
 ③减小波特率误差的措施
 我们知道使用离散度小的晶振是

首页 上一页 3 4 5 6 7 8 9 下一页 尾页 6/11/11

温度监控系统的设计(六)相关范文
温度监控系统的设计
多路无线温度检测显示范文任务书
上一篇:电子相关课题仿真及程序 下一篇:免费文档范文--同步电机模型的MAT..
点击查看关于 免费 文档范文 温度 监控系统 设计 的相关范文题目 【返回顶部】
精彩推荐
电气工程自动化原创范文  电子商务原创文章范文
人力资源专业原创文章范文 土木工程原创文章范文
工商管理专业原创范文    药学专业原创范文
汉语言文学专业原创范文  会计专业原创文章范文
计算机技术原创文章范文  金融学原创文章范文
法学专业原创文章范文   市场营销专业原创范文
信息管理专业原创文章范文 学前教育专业原创范文
公共事业管理专业原创范文 英语专业原创范文
教育管理专业原创范文   行政管理专业原创范文
热门范文
四人竞赛抢答器{有完整原理图]
免费文档范文--电动车无刷直流电动机控..
基于单片机的自动音乐播放器的设计
基于80C51的温湿度控制系统.
免费文档范文--基于单片机的IC卡读写器..
DS18B20数字温度计的设计
免费文档范文--基于单片机的温度监测系统
单片机心电信号数据采集系统的设计
免费文档范文--火灾自动报警系统设计
免费文档范文--超声波测距汽车倒车防撞..

关于我们 | 联系方式 | 范文说明 | 网站地图 | 免费获取 | 钻石会员 | 硕士文章范文


范文同学网提供文档范文,原创文章范文,网站永久域名www.lunwentongxue.com ,lunwentongxue-范文同学网拼音首字母组合

本站部分文章来自网友投稿上传,如发现侵犯了您的版权,请联系指出,本站及时确认并删除  E-mail: 17304545@qq.com

Copyright@ 2009-2024 范文同学网 版权所有