- 1、本文档共25页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Linux下串口编程遇到接收数据错误和原因
Linux下串口编程遇到接收数据错误和原因
Linux涓嬩覆鍙g法绋嬮亣鍒扮殑鎺ユ敹鏁告嵁閷鍙婂師鍥?
杩戞棩鍦ㄨ皟璇曚覆鍙g殑鏃跺€欏彂鐜帮紝鍙︿竴璁惧鍚戞垜ARM鏉跨殑涓插彛鍙戦€?x0d锛屾垜鎺ユ敹涔嬪悗鍙樻垚浜?x0a锛岃繖鏄棶棰樹竴锛?鍙﹀褰撳鏂瑰悜鎴戝彂閫佷竴涓叉暟鎹紝濡傛灉鍏朵腑鏈?x11锛岄偅涔堟垜鎬绘槸婕忔敹姝ゆ暟锛岃繖鏄棶棰樹簩銆?
鐢变簬闂鑾悕鍏跺锛屼互涓烘槸绗旇鏈殑USB杞?32绾跨紗鐨勯棶棰橈紝鎹紝闂渚濇棫銆?浠ヤ负鏄鏂硅澶囩殑闂锛岄噰鐢ㄤ覆鍙h皟璇曞姪鎵嬫ā鎷熼€氳璁惧鍜孉RM鏉块€氳锛岄棶棰樹緷鏃с€?鏃犲鎵嶅幓鏌ョ湅璧勬枡锛屾渶缁堝緱浠ヨВ鍐筹紝鐜版€荤粨濡備笅锛?
1.涓插彛鎿嶄綔闇€瑕佺殑澶存枃浠?
#include stdio.h //鏍囧噯杈撳叆杈撳嚭瀹氫箟
#include stdlib.h //鏍囧噯鍑芥暟搴撳畾涔?#include unistd.h //Unix鏍囧噯鍑芥暟瀹氫箟
#include sys/types.h
#include sys/stat.h
#include fcntl.h //鏂囦欢鎺у埗瀹氫箟
#include termios.h //POSIX涓柇鎺у埗瀹氫箟
#include errno.h //閿欒鍙峰畾涔?
2.鎵撳紑涓插彛
涓插彛浣嶄簬/dev涓紝鍙綔涓烘爣鍑嗘枃浠剁殑褰㈠紡鎵撳紑锛屽叾涓細
涓插彛1 /dev/ttyS0
涓插彛2 /dev/ttyS1
浠g爜濡備笅锛?
int fd;
fd = open(鈥?dev/ttyS0鈥? O_RDWR);
if(fd == -1)
{
Perror(鈥滀覆鍙?鎵撳紑澶辫触锛佲€?;
}
//else
//fcntl(fd, F_SETFL, FNDELAY);
闄や簡浣跨敤O_RDWR鏍囧織涔嬪锛岄€氬父杩樹細浣跨敤O_NOCTTY涓嶰_NDELAY杩欎袱涓爣蹇椼€?O_NOCTTY锛氬憡璇塙nix杩欎釜绋嬪簭涓嶆兂鎴愪负鈥滄帶鍒剁粓绔€濇帶鍒剁殑绋嬪簭锛屼笉璇存槑杩欎釜鏍囧織鐨勮瘽锛屼换浣曡緭鍏ラ兘浼氬奖鍝嶄綘鐨勭▼搴忋€?O_NDELAY锛氬憡璇塙nix杩欎釜绋嬪簭涓嶅叧蹇僁CD淇″彿绾跨姸鎬侊紝鍗冲叾浠栫鍙f槸鍚﹁繍琛岋紝涓嶈鏄庤繖涓爣蹇楃殑璇濓紝璇ョ▼搴忓氨浼氬湪DCD淇″彿绾夸负浣庣數骞虫椂鍋滄銆?
3.璁剧疆娉㈢壒鐜?
鏈€鍩烘湰鐨勪覆鍙h缃寘鎷尝鐗圭巼銆佹牎楠屼綅涓庡仠姝綅璁剧疆锛屼笖涓插彛璁剧疆涓昏浣跨敤termios.h澶存枃浠朵腑瀹氫箟鐨則ermios缁撴瀯锛屽涓嬶細
struct termios
{
tcflag_t c_iflag; //杈撳叆妯″紡鏍囧織
tcflag_t c_oflag; //杈撳嚭妯″紡鏍囧織
tcflag_t c_cflag; //鎺у埗妯″紡鏍囧織
tcflag_t c_lflag; //鏈湴妯″紡鏍囧織
cc_t c_line; //line discipline
cc_t c_cc[NCC]; //control characters
}
浠g爜濡備笅锛?int speed_arr[] = { B38400, B19200, B9600, B4800, B2400, B1200, B300, B38400, B19200, B9600, B4800, B2400, B1200, B300, };
int name_arr[] = {38400, 19200, 9600, 4800, 2400, 1200, 300, 38400, 19200, 9600, 4800, 2400, 1200, 300, };
void SetSpeed(int fd, int speed)
{
int i;
struct termios Opt; //瀹氫箟termios缁撴瀯
if(tcgetattr(fd, Opt) != 0)
{
perror(鈥渢cgetattr fd鈥?;
return;
}
for(i = 0; i sizeof(speed_arr) / sizeof(int); i++)
{
if(speed == name_arr[i])
{
tcflush(fd, TCIOFLUSH);
cfsetispeed(Opt, speed_arr[i]);
cfsetospeed(Opt, speed_arr[i]);
if(tcsetattr(fd, TCSANOW, Opt) != 0)
{
perror(鈥渢csetattr fd鈥?;
return;
}
tcflush(fd, TCIOFLUSH);
}
}
}
娉ㄦ剰tcsetattr鍑芥暟涓娇鐢ㄧ殑鏍囧織锛?TCSANOW锛氱珛鍗虫墽琛岃€屼笉绛夊緟鏁版嵁鍙戦
您可能关注的文档
- 《药用植物学和生药学》期末考试试卷(A卷).doc
- 《西方经济学》案例教学调查和思考.doc
- 《西格玛与声》攻略.doc
- 《让子弹飞》中历史隐喻.doc
- 《让简历在15秒内吸引招聘者》 还不会写简历同学可以借鉴.doc
- 《语文课程标准》有关目标与要求.doc
- 《窗边小豆豆》读书笔记.doc
- 《谏逐客书》原文和赏析.doc
- 《神圣家族》和马克思哲学思想.doc
- 《远方家》大型系列特别节目《沿海行》下载地址.doc
- 基于人工智能教育平台的移动应用开发,探讨跨平台兼容性影响因素及优化策略教学研究课题报告.docx
- 高中生物实验:城市热岛效应对城市生态系统服务功能的影响机制教学研究课题报告.docx
- 信息技术行业信息安全法律法规研究及政策建议教学研究课题报告.docx
- 人工智能视角下区域教育评价改革:利益相关者互动与政策支持研究教学研究课题报告.docx
- 6 《垃圾填埋场渗滤液处理与土地资源化利用研究》教学研究课题报告.docx
- 小学音乐与美术教师跨学科协作模式构建:人工智能技术助力教学创新教学研究课题报告.docx
- 《航空航天3D打印技术对航空器装配工艺的创新与效率提升》教学研究课题报告.docx
- 教育扶贫精准化策略研究:人工智能技术在区域教育中的应用与创新教学研究课题报告.docx
- 《区块链技术在电子政务电子档案管理中的数据完整性保障与优化》教学研究课题报告.docx
- 《中医护理情志疗法对癌症患者心理状态和生活质量提升的长期追踪研究》教学研究课题报告.docx
文档评论(0)