- 易迪拓培训,专注于微波、射频、天线设计工程师的培养
***
2)握手信号控制。
该函数引入递归调用的方式,很好的解决了以往串口通信过程中,在握手信号方面选择发送指定特定字符(例如"样")所带来的误传送问题,大大提高了串口通信的成功率。
void wait(char ch)
{
if(ReceiveChar(COM232)==ch)return;//确定对方已经成功接受或者发送,就返回空
else
{
SendChar(ch);//把接受或者发送出去的字符重新发送;
wait(ch); //递归调用,直到对方确定接受或者发送成功为止;
)
)
3)向串行口发送一个字符
该函数的思想是先申请占有中断,后进行发送数据通信;
int SendChar(unsigned char Char)
{
do
{
printf("send waiting>>>>>>>>> "):
//在屏幕上提示用户正在等待中断进行。
}while((inportb(comportaddr+5)&0x20)==O);//检查发送端数据线是否准备好
outportb(comportaddr,Char://发送数据到缓冲区
return(Char);//返回发送完成的字符
}
4)从串行口接受一个字符
该函数的思想是先取得中断控制,后面进行接收数据通信;
int ReceiveChar(int port)
{
do{
printf("receive waiting>>>>>>>> ");
∥在屏幕上提示用户正在等待中断进行。
}
while((inportb(eomportaddr+5)&0x01)==0);//检查接收端数据线是否准备好
return(inportb(pONt);//从接收数据缓冲区取数据
}
3 实例
在企业产品测试平台和嵌入式控制系统之间,约定通信双方的协议相同,首先嵌入式EMB主控机通过串El把控制消息发送给产品测试平台,让产品测试平台根据发送来的指令进行相关操作:同时在产品测试平台上的测试结果信息,测试每个单项目的相关信息也通过串口传输数据到嵌入式EMB主控机;嵌入式EMB主控机把测试相关的有效信息进行整理后,通过网络上传到Server,Server把企业所有生产线的嵌入式EMB主控机发送来的信息进行整理和分析,在企业资源管理系统ERP上共享,让企业的高级管理人员实时监视企业生产的进行情况,大大提高企业的办公效率,其整体工作原理图如图3所示。
图3企业生产整体工作原理图
4 结论
本文所阐述的RS232串口通信软件,在具体实践中结合功能需要,综合考虑复杂程度、灵活性等因素,选择了合适的方法,实现了串口通信过程,同时在产品测试平台和嵌入式控制系统之间,该软件得到了充分的应用,有效地提升了企业的生产工作效率。
作者:葛磊蛟 毛一之 李歧 高婧嫱 来源:《河北工业大学学报》
我推荐大家读
轻松参与
VS
表达立场
这是垃圾文章
上一篇:爱立信:专注用户体验
打造多网协同
下一篇:一种改进型UML在嵌入式系统中的应用