2022年博创嵌入式培训PPT嵌入式Linux下的通信应用.pptVIP

2022年博创嵌入式培训PPT嵌入式Linux下的通信应用.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多

第七章嵌入式Linux下的通信应用;主要内容:

一、串口简介

二、串口编程;随着计算机系统的应用和微机网络的发展,通信功能显得越来越重要。串口作为计算机一种常用的接口,具有连接线少、通信简单的优点,因此得到广泛应用。特别是在嵌入式系统的开发和应用中,经常需要使用宿主机实现目标机的调试及现场数据的采集和控制,从而通过串口线连接宿主机和目标机,达到通信的目的。

现在的PC机一般有两个串行口:COM1和COM2,我们可以选择任何一个进行连接,然后在操作系统上面进行正确的配置。Windows操作系统和Linux操作系统都能够很好地支持串口,特别是在Linux环境下可以对串口通信简单地进行编程,下面就来介绍串口编程。;在Linux系统环境下的所有设备都提供了相应的设备文件供用户访问,设备文件都位于/dev目录下。COM1和COM2对应的文件分别为/dev目录下的ttyS0和ttyS1,我们可以通过打开并读写这两个文件来对串口进行操作。使用open()函数打开串口的例子如下:

intfd;

/*以读写方式打开串口*/

fd=open(/dev/ttyS0,O_RDWR);

if(-1==fd){

/*不能打开串口一*/

perror(提示错误!);

}

;Termios的结构如下:

Structtermios{

tcflag_tc_iflag;//输入模式

tcflag_tc_oiflag;//输出模式

tcflag_tc_cflag;/控制模式

tcflag_tc_lflag;//局部模式

cc_tc_cc[NCCS];//特殊控制字符

}

在上面的结构体成员中,c_cflag是最常用的,它用于控制串口的波特率、奇偶校验、停止位等。

在c_cflag成员中,选项CLOCAL和CREAD是必须的,即本地和接收使能。例如,下面的代码将波特率设为115200、数据位为8位、偶校验并且停止位为1位:

options.c_cflag|=B115200|CLOCAL|CREAD|CS8|PARENB;

options.c_cflag=~PARODD;

options.c_cflag=CSTOPB;;所有对串口的操作都是通过结构体termios和几个函数实现的,其中最常用的两个函数是tcgetattr()和tcsetattr()。在一般情况下,程序通过tcgetattr()函数获取设备当前的设置,然后修改这些设置,最后用tcsetattr()使这些设置生效。我们也可以用tcgetattr()函数保存设备的配置,最后在程序结束前用函数tcsetattr()恢复设备的配置。

常用的操作结构体termios的函数如下:

inttcgetattr(intfd,structtermios*t)

该函数用于获得文件描述符fd所表示设备的当前设置值,并将此设置值写入指针t内。若成功,函数返回0,否则返回-1。

inttcsetattr(intfd,intoptions,structtermios*t)

tcsetattr()函数用来将termios结构指针t内的设置值赋给当前用文件描述符fd表示的设备终端。参数options决定什么时候改变生效;intcfsetispeed(structtermios*t,speed_tspeed);

intcfsetospeed(structtermios*t,speed_tspeed)

上面的两个函数分别用来设置设备的输入和输出速度,通过结构体t分别将设备的输入输出速度设为speed。它们只是设置了termios结构体的速度,若要修改设备的速度还需要调用tcsetattr()函数。

intcfgetispeed(structtermios*t);

intcfgetospeed(structtermios*t);

上面两个函数分别用来获得设备的输入和输出速度。

inttcflush(intfd,intqueue);

丢弃写入要引用的对象,其中参数fd为要处理的串口。;主要内容:

一、网络通信

二、Socket简介

三、网络编程;随着网络的发展,需要解决网络间不同主机进程间的相互通信问题。为此,首先要解决网络上不同进程的标识问题。在同一主机上,采用唯一的进程号(processID)来标识不同的进程,但是对于网络上的不同主机,可以用相同的进程号来

文档评论(0)

192****8358 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档