完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
本帖最后由 cwfwh 于 2016-7-31 15:58 编辑 前面已经介绍过编译一个完整的应用程序,链接:https://bbs.elecfans.com/jishu_921002_1_1.html 。 以及编译一个UDP通讯应用程序,链接:https://bbs.elecfans.com/jishu_921007_1_1.html 。 今天在此基础上编译一个串口通讯应用程序,完成串口数据的接收与发送。 实现的功能: 完成串口数据的接收。收到数据后将其发出,同时,将接收到的数据在串口终端打印出来。实现将GPSGGA数据报文通过串口收发。 1 Linux系统下串口编程 Linux对所有设备的访问是通过设备文件来进行的,串口也是这样,为了访问串口,只需打开其设备文件即可操作串口设备。在linux系统下面,每一个串口设备都有设备文件与其关联,设备文件位于系统的/dev目录下面。如linux下的/ttyS0,/ttyS1分别表示的是串口1和串口2 。 2 程序代码 篇幅有限,这里显示部分代码 。 串口端口打开: ret = OpenComPort(n_com_port, 115200, 8, "1", 'N'); if (ret < 0) { fprintf(stderr, "Error: Opening Com Port %dn", n_com_port); return ret; }else{ printf("Open Com Port %d Success, Now going to read portn", n_com_port); } while(1) { bzero(buf_tty, sizeof(buf_tty)); len_tty = ReadComPort(buf_tty, 255); //读操作 if (len_tty < 0) { printf("Error: Read Com Portn"); break; } if (len_tty == 0) { write(STDOUT_FILENO, ".", sizeof(".")); continue; } printf("Recv: %d bytes, [%s]n", len_tty, buf_tty); len_tty = WriteComPort(buf_tty, len_tty); WriteComPort(" recved:", sizeof(" recved:")); //写操作 if (len_tty < 0) { printf("Error: WriteComPort Errorn"); } 3 程序编译 使用的交叉编译器是: ARM-linux-gnueabihf-gcc 。//之前介绍过 这里用Makefile来编译,代码构架如下图: 只需进入文件目录,执行 # make ,便生成test_uart可执行文件 。如下图 : 4 程序测试 生成的“test_uart”可执行文件 拷贝到EVB-T335开发板中,执行 # ./test_uart 。 测试见下图: 执行 # ./test_uart 完后截图: 串口调试助手发送数据:“Hello Bbs.elecfans! ” ,同时将收到的报文也打印出来 、 在串口调试终端打印收到的报文 :“Hello Bbs.elecfans! ” 。 5 GPS数据GGA的收发 串口调试助手发送数据:“$GPGGA,111609.14,5001.27,N,3613.06,E,3,08,0.0,10.2,M,0.0,M,0.0,0000*70rn ” ,同时将收到的报文也打印出来 。 GPSGGA 数据报文: 在串口调试终端打印收到的报文 :“$GPGGA,111609.14,5001.27,N,3613.06,E,3,08,0.0,10.2,M,0.0,M,0.0,0000*70rn” |
|
相关推荐
4 个讨论
|
|
OpenComPort这个是宏定义还是对open函数的调用?
|
|
|
|
|
|
只有小组成员才能发言,加入小组>>
【盈鹏飞RK3399安卓主板 XPC-3399Pro免费试用】+烧写出厂固件
10319 浏览 0 评论
【盈鹏飞EVB-T335开发板试用体验】debian系统烧写
3347 浏览 1 评论
【盈鹏飞I.MX6UL工控开发板试用体验】linux can 测试
3226 浏览 0 评论
301浏览 0评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-18 09:41 , Processed in 0.537594 second(s), Total 48, Slave 40 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号