- 1、本文档共8页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
基于Virtools和串口通信的界面交互性的设计与实现
———————————————————————————————— 作者:
———————————————————————————————— 日期:
1 引言
用户界面设计是屏幕产品的重要组成局部,它为人机交互构建了一个沟通环境。其中交互性设 计是用户界面设计中的重要内容之一。交互设计的目的是让用户能够简单方便地使用产品,任何产 品功能的实现都是通过人机交互完成的。现以 单片机为核心的嵌入式应用中界面交互性设计为例具 体介绍其实现方法。
2 总体设计方案
总体设计方案如图 1 所示
3 串口通信设计与实现
串口通信是指外设和计算机间,通过数据 信号线、地线、控制线等,按位进展传输数据的一种 通信方式。这种通信方式使用的 数据线少。本文的串口通信设计包括下位机端的串口 通信模块和上 位机端的串口通信模块。
3.1 下位机的串口通信模块
下位机的串口通信模块通过串口完成与上位机的通信,在接到上位机数据请求后将采集的数据 信息发送给上位机。 在设计中首先设定 定时器 T1 为串口波特率 发生器,设定波特率为19200bps;上位机发送数据 请求后触发下位机串口中断,为了能够快速的响应上位机的请求,减少上位机的等待,将串口中断 的优先级设置为最高;下位时机优先调用通信模块响应该中断,通信模块首先判断请求消息是否正 确,在确定是正确的请求消息后,从缓冲区中取出数据,封装成一条消息M 消息码R〔如M01R〕, 通过串口发送给上位机。通信模块具备一定过滤及容错能力。
下面重点介绍一下串口通信模块的处理方式。
串口通信模块采用中断处理方式,每完整地接收到一个字符或发送完一个字符都会触发该中断, 进入到相应的中断处理函数中。中断处理函数涉及到接收和发送两个局部,因此在中断处理函数开 始的局部就判断是接收引发的中断,还是发送引发的中断。如果是接收中断,在接收中断中每接收 一个字符都要判断,确定是否为上位机发送过来的请求消息,如果不是放弃当前接收到的内容,从 头开场接收;如果是,那么响应上位机的数据请求,将接收态改为发送态,然后向上位机发送通信缓 冲区中的第一个字符,每发送一个字符会产生中断,在下次中断中再发送下一字符,按此过程直到 发送完毕。
3.2 上位机的串口通信模块
上位机的串口通信模块通过串口向下位机发送请求信息,处理下位机返回的数据信息,并将其 发送给处理这些信息的行为模组。这一过程是循环执行的。该程序是与下位机协同工作的唯一 接口, 是联系界面和下位机的桥梁。它的处理流程如图2 所示。
图 2 上位机串口通信模块处理流程图
上位机的串口通信程序是通过调用 Windows 提供的有关串口操作的API 函数完成的。首先创立 了根底串口类_base_com,在其中实现根本信息配置、翻开、关闭串口等根底功能。为了实现异步发 送和异步接收,在_base_com 类的根底上派生出异步串口通信类_sync_com 完成异步的数据传输。
基类_base_com 的声明如下。
class _base_com //虚基类根本串口接口
{
protected:
vola TIle int _ \o PORT PORT; //串口号
volatile HANDLE _com_handle;//串口句柄
DCB _dcb; //波特率,停顿位,等
int _in_buf, _out_buf; // 缓冲区
COM MTIMEOUTS _co; // 超时时间
//虚函数,用于不同方式的串口翻开
virtual bool open_ \o PORT PORT() = 0;
void init(); //初始化
public:
_base_com()
{
init();
}
virtual ~_base_com();
/*根本参数设置*/
//设置串口参数:波特率,停顿位,等
inline bool set_para();
//支持设置字符串 9600, 8, n, 1
bool set_dcb(char *set_ STr);
//设置内置构造串口参数:波特率,停顿位
bool set_dcb(int BaudRate, int ByteSize = 8, int Parity = NOPARITY, int StopBits =
ONESTOPBIT);
//设置缓冲区大小
inline bool set_buf(int in_buf, int out_buf);
//翻开串口缺省 9600, 8, n
您可能关注的文档
- 基于vc++软件设计的开题报告例.doc
- 基于verhulst模型的加权移动数据耦合的研究.docx
- 基于veriloghdl的车载dvd位控子程序.doc
- 基于veriloghdl的异步fifo设计与实现.doc
- 基于vhdl的多路彩灯控制论文.doc
- 基于vhdl的语音数字钟的设计.doc
- 基于virtex的快速目标捕获与实时稳像.doc
- 基于vlan技术的校园局域网建设.doc
- 基于wave和wimax融合的车载无线通信网络研究.doc
- 基于webgis旅游信息系统设计.doc
- 原电池电动势的测定实验报告.pdf
- 与业主、设计、总包、监理和他承包人的配合措施.pdf
- 公司管理流程.pptx
- 2024_2025学年新教材高中地理第1章地球的运动素养综合训练新人教版选择性必修1.doc
- 2024_2025学年新教材高中地理第3章大气的运动第1节常见天气系统第1课时锋与天气分层作业新人教版选择性必修1.doc
- 2024_2025学年新教材高中地理第1章地球的运动第2节地球运动的地理意义第4课时正午太阳高度的变化四季更替和五带划分分层作业课件新人教版选择性必修1.pptx
- 2024_2025学年新教材高中地理第2章地表形态的塑造第2节构造地貌的形成第1课时地质构造与地貌课件新人教版选择性必修1.pptx
- 2024_2025学年新教材高中地理第1章地球的运动问题研究人类是否需要人造月亮课件新人教版选择性必修1.pptx
- 五片小雪花课件.pdf
- 2024_2025学年新教材高中地理第3章大气的运动第2节气压带和风带第1课时气压带和风带的形成分层作业课件新人教版选择性必修1.pptx
文档评论(0)