“开云app官方网站入口”Linux下ARM和单片机的串口通信设计
概要:讲解Linux环境下串口通信的设计方法和步骤,并讲解了ARM9微处理器s3c2440在Linux下和C8051Fxxx系列单片机展开串行通信的设计方法,得出了硬件相连和通信程序流程图。该方法可信、简单,限于于大多数LinuxARM和单片机串口通信的场合。 关键词:Linux;ARM;单片机;串口通信 0章节 数据采集系统中由于单片机侧重于掌控,数据处理能力较强,对收集的数据展开运算处置较为繁复,如果通过串口与上位机通信,利用上位机强劲的数据处理能力和友好关系的掌控界面临数据展开处置和表明则可以提升设计效率。
串口通信以其非常简单的硬件相连,成熟期的通信协议,沦为上下位机之间通信的选用。重制了Linux操作系统的s3c2440可以在Linux环境下操作者串口,减少了串口操作者的可玩性,可以使开发者集中精力研发大规模的应用程序,而不用在操作者底层设计上花费时间。 1硬件相连 s3c2440是三星公司生产的基于ARM9核的处理器,使用3.3V电压供电;C8051Fxxx系列单片机是美国CYGNAL公司发售的与8051相容的高性能高速单片机,使用3.3V电压供电。
两者供电电压完全相同,所以展开串行口通信时不必须展开电平切换。硬件相连使用最常用的TXD,RXD,GND三线相连方式。留意使用交叉相连方式,即TXDRXD,RXDTXD. 2Linux下串口通信 2.1Linux下串口设备描述 s3c2440上重制了Linux2.6.32操作系统,读取了s3c2440的串口驱动程序,通过Linux获取的串口操作者函数和文件操作者函数把对串口的操作者等同于文件操作者,减少了串口的操作者可玩性,提升了效率。
在程序中设备和文件都是通过文件描述符来操作者的,文件描述符在Linux内核中是一个非负整数。Linux设备文件都存放在/dev目录下,串口也不值得注意,在/dev中可以寻找串口对应的设备文件,本文对应的串口1的设备文件路径是/dev/ttySAC1. 2.2Linux下串口通信程序设计 串口通信必须设置一些参数,如波特率、数据位、暂停位,输入输出方式等。这些参数都不存在于Linux获取的termios结构中,该结构是Linux系统用作查找和操作者各个终端的一个标准接口,定义在头文件ter-mios.h中,如下右图: STructtermios{tcflag_tc_iflag;/*输出标志*/tcflag_tc_oflag;/*输入标志*/tcflag_tc_cflag/*掌控标志*/tcflag_tc_lflag/*本地标志*/cc_tc_cc[NCCS];/*掌控特性*/};Linux串口通信步骤可分成以下三步,操作者流程如图1右图。
▲图1 第一步:关上串口调用open()函数关上串口设备文件,若错误则回到-1,顺利则回到文件句柄。 #defineUART1/dev/ttySAC1intfd;fd=open(UART1,O_RDWR)/*以格式化可用方式关上串口设备*/ 第二步:设置串口属性函数tcsetattr()可以设置串口的结构属性,tcgetatt()可以获得串口的结构属性。在termios结构中,?=s?最重要的是c_cflag,用户通过对其展开赋值可以构建串口波特率、数据位、暂停位、奇偶校验位等参数的设置。
c_cc数组中的两个变量VMIN和VTIME辨别否回到输出,c_cc[VTIME]原作字节输出时间计时器,c_cc[VMIN]原作符合加载功能的低于接管字节数。这两个变量的值要原作合理,才能确保串口的通信成功率。
intset_attr(intfd){structtermiosnewtio,oldtio;tcgetattr(fd,oldtio);cfsetispeed(newtio,B9600);/*设置读书波特率为9600*/cfsetospeed(newtio,B9600);/*设置写出波特率为9600*/memset(newtio,0,sizeof(newtio));newtio.c_cflag=CS8|CREAD;/*设置数据位为8位并且使能接管*/newtio.c_cflag=~PARENB;/*不展开奇偶校验*/newtio.c_cflag=~CSTOPB;/*1位暂停位*/newtio.c_cc[VMIN]=1;/*当接管到一个字节数据就加载*/newtio.c_cc[VTIME]=0;/*不用于计时器*/tcflush(fd,TCIOFLUSH);/*刷清输入输出缓冲区*/tcsetattr(fd,TCSANOW,newtio)/*使设置的终端属性立刻生效*/} 第三步:串口读取,串口重开设置完了通信参数后,就可以用标准的文件读取命令read()和write()操作者串口了。最后在解散之前,用close()函数重开串口。
本文关键词:“,开云,app,官方网站,入口,”,Linux,下,ARM,和,开云app官方网站入口
本文来源:开云app官方网站入口-www.shinwaymach.com
同类文章排行
- iPad 绘画工具 Procreate 更新 5.0,想要画画的你不要错过
- 史上最魔法的真实系战争游戏——《战争雷霆》
- 再走长征路,心中有信仰,脚下有力量_时事政治_中公教育网
- 万圣节将至 让这几款恐怖游戏带你进入情绪!
- 《寒蝉鸣泣之时 罪灭篇》将于6月15日登陆Steam_开云app官方网站入
- 【开云app官方网站入口】念好“三字真经” 晋城市全力推进“思
- 四川大学2006年在职攻读风景园林硕士专业学位招生简章
- 李先军:从颐和园到奥运公园看景观石的历史变迁
- 格斗天才 一战成名 《拳皇97OL》评测
- 安顺:全力推进国家新型城镇化试点
最新资讯文章
- Steam发行商周末 P社全家桶打折策略爱好者必备
- 《真三国无双8》公布鲍三娘人设图 关二爷的儿媳妇
- 潜行动作游戏《荒神》将推出全新的DLC整合版
- 《石质碎片》众筹取得成功 将于今年内登陆多平台
- 《寒蝉鸣泣之时 罪灭篇》将于6月15日登陆Steam_开云app官方网站入
- Gartnerfuglen工作室设计移动渔屋【开云app官方网站入口】
- 荷兰IPV/Delft建筑事务所设计的环形自行车天桥|开云app官方网站入
- 德国水上漂浮的障碍挑战赛道设计-开云app官方网站入口
- 四川农业大学2007年在职风景园林硕士招生简章_开云app官方网站
- 时政热点:以“人民为中心”不应只挂在墙上_时事政治_中公教育
- 公职人员辱骂记者 只是“个人行为”?_时事政治_中公教育网‘开
- 《飙酷车神》最新资料片“Calling All Units”上线
- 爆料大神:《质量效应》支线任务与地平线类似
- 国务院关于取消和调整一批行政审批项目等事项的决定
- 重叠设计法让版式更流行
- 备战2020高考,除了3500词,你还需要这份社会时政类词汇合集
- 国考笔试、面试都通过了 但大学期间被记过处分 会影响政审吗
- [青海]讲政治 守规矩当好全面从严治党的“领头羊”:开云app官
- “三亚纸贵”是事业单位改革梗的涂鸦_时事政治_中公教育网‘
- 古墓丽影崛起PC版发售日期公布 月底一同去摸金