18183游戏网 - 专注分享最好的电脑系统软件!免费安全下载 18183游戏网首页 | Win7激活工具 | 热门专题
18183游戏网> > 系统教程 > 系统安装教程 >

Linux系统中设置串口属性的基本流程

更新时间:2026-08-21 21:46:36 | 编辑:青果 | 信息来源:互联网

  Linux下的串口设置包含波特率、数据位数量、停止位数量等的设置,串口设置主要是设置struct termios结构体成员值,下面小编就给大家详细介绍下Linux下的串口设置吧。

  用户常见的数据通信的基本方式可分为并行通信和串行通信。

  并行通信是指利用多条数据传输线将一个资料的各位同时传送。特点是传输速度快,适用于短距离通信,但要求传输速度较高的应用场合。

  串行通信是指利用一条传输线将资料一位位的顺序传送。特点是通信线路简单,利用简单的线缆就可以实现通信,减低成本,适用于远距离通信,但传输速度慢的应用场合。常用的串口有RS-232-C接口(全称是“数据终端设备(DTE)和数据通讯设备(DCE)之间串行二进制数据交换接口技术标准”)。

  UART控制器:可以工作在Interrupt(中断)模式或者DMA(直接内存访问)模式。据有16字节的FIFO(先入先出寄存器),支持最高波特率可达到230。4Kbps。

  UART操作:资料发送、资料接收、产生中断、产生波特率、Loopback模式、红外模式及自动流控制模式。

  串口设置包括:波特率、起始位数量、数据位数量、停止位数量和流控协议。在此可以配置波特率为115200、起始位为1b、数据位8b、停止位1b和无流控制协议。

  串口一、串口二对应设备名依次是“/dev/ttyS0”、“/dev/ttyS1”。

  在Linux下对串口的读写可以使用简单的“read”、“write”函数完成,不同的是需要对串口的其它参数另作设置。

  6.4.2 串口设置详情

  串口设置主要是设置struct termios结构体成员值:

  #include《termios.h》

  Struct termio

  {

  unsigned short c_iflag; /*输入模式标志*/

  unsigned short c_oflag; /*输出模式标志*/

  unsigned short c_cflag; /*控制模式标志*/

  unsigned short c_lfag; /*本地模式标志*/

  unsigned short c_line; /*line discipline*/

  unsigned short c_cc[NCC]; /*control characters*/

  };

  通过对c_cflag的赋值,可以设置波特率、字符大小、数据位、停止位、奇偶校验位和硬件流控等。

  设置串口属性基本流程

  1. 保存原先串口配置

  为了安全起见和以后调试程序方便,可先保存原先串口的配置,使用函数tcgetattr(fd,&oldtio)。该函数得到与fd指向对象的相关参数,并将它们保存于lodtio引用的termios结构中。该函数可以测试配置是否正确、该串口是否可用等。调试成功,函数返回0,失败,函数返回-1.

  if(tcgetattr(fd,&oldtio)!=0)

  {

  perror(“SetupSerial 1”);

  return -1;

  }

  2. 激活选项有CLOCAL和CREAD

  CLOCAL和CREAD分别用于本地连接和接受使能,通过位掩码的方式激活这两个选项。

  Newtio.c_cflag |= CLOCAL | CREAD;

  3. 设置波特率

  设置波特率的函数主要有cfsetispeed和cfsetospeed。

  cfsetispeed(&newtio,B115200);

  cfsetospeed(&newtio,B115200);

  一般地用户需要将输入输出函数的波特率设置成一样的。这几个函数在成功时返回0,失败-1。

  4. 设置字符大小

  没有现成可用函数,需要位掩码。一般先去除数据位中的位掩码,再重新按要求设置。

  options.c_cflag &= ~CSIZE; /*mask the character size bits*/

  options.c_cflag |= CS8;

  5. 设置奇偶校验位

  先激活c_cflag中的校验位使能标志PARENB和是否要进行偶校验,同时还要激活c_iflag中的奇偶校验使能。如使能奇校验时,代码如下:

  newtio.c_cflag |= PARENB;

  newtio.c_cflag |=PARODD;

  newtio.c_iflag |= (INPCK | ISTRIP);

  而使能偶校验代码为:

  newtio.c_iflag |= (INPCK | ISTRIP);

  newtio.c_cflag |= PARENB;

  newtio.c_cflag &= ~PAROOD;

  6. 设置停止位

  通过激活c_cflag中的CSTOPB而实现的。若停止位为1,则清除CSTOPB,若停止位为0,则激活CSTOPB。下面是停止位为1时的代码:

  newtio.c_cflag &= ~CSTOPB;

  7. 设置最少字符和等待时间

  在对接收字符和等待时间没有特别要求的情况下,可以将其设置为0:

  newtio.c_cc[VTIME] =0;

  newtio.c_cc[VMIN]=0;

  8. 处理要写入的引用对象

  在串口重新设置之后,在之前要写入的引用对象要重新处理,可调用函数tcflush(fd,queue_selector)来处理要写入引用的对象。对于为传输的数据,或收到但未读取的数据,其处理方法取决于queue_selector的值。

  Queue_selector可能取值:

  TCIFLUSH:刷新收到的数据但不读

  TCOFLUSH:刷新写入的数据但不传送

  TCIOLFLUSH:同时刷新收到的数据但不读,并且刷新写入的数据但不传送

  本例采用一:

  tcflush(fd, TCIFLUSH)


返回顶部


18183游戏网发布的系统镜像及软件均来至互联网,仅供学习和研究使用,不得用于任何商业用途并请在下载后24小时内删除,如果满意请联系版权方购买。
如果您发现本站侵害了您的版权,请立即联系我们,本站将第一时间进行相关处理。投诉邮箱1524578900@qq.com
版权声明|联系我们 Copyright © 18183游戏网 All Rights Reserved 鲁ICP备2021038877号-4

3.8803
基本信息
SQL
$_GET
$_POST
$_COOKIE
包含文件
自动加载
  1. 模型: /www/wwwroot/www.pjwan.com/lecms/model/
  2. 视图: /www/wwwroot/www.pjwan.com/view/ww7/xt_show.htm
  3. 控制器: /www/wwwroot/www.pjwan.com/lecms/control/show_control.class.php
  4. 日志目录: /www/wwwroot/www.pjwan.com/log/
  5. 当前页面: /www/wwwroot/www.pjwan.com/index.php
  6. 当前时间: 2026-08-21 21:46:32
  7. 当前网协: 216.73.216.186
  8. 请求路径: /anzhuang/31279.html
  9. 运行时间: 3.8803
  10. 内存开销: 1.32 MB
  1. #0 [time:0.0003s] SELECT * FROM le_runtime WHERE k='cfg' LIMIT 1
  2. #1 [time:0.0002s] SELECT * FROM le_runtime WHERE k='website_group_18183_pjwan_com' LIMIT 1
  3. #2 [time:0.0005s] SELECT * FROM le_runtime WHERE k='cate_68' LIMIT 1
  4. #3 [time:0.0004s] SELECT * FROM le_cms_article WHERE id=31279 LIMIT 1
  5. #4 [time:0.0004s] SELECT * FROM le_user WHERE uid=2 LIMIT 1
  6. #5 [time:0.0003s] SELECT * FROM le_cms_article_data WHERE id=31279 LIMIT 1
  7. #6 [time:0.0002s] SELECT * FROM le_cms_article_views WHERE id=31279 LIMIT 1
  8. #7 [time:0.0003s] UPDATE LOW_PRIORITY le_cms_article_views SET views=views+1 WHERE id=31279 LIMIT 1
  9. #8 [time:0.0002s] SELECT id FROM le_cms_article WHERE id<31279 ORDER BY id DESC LIMIT 0,1
  10. #9 [time:0.0002s] SELECT * FROM le_cms_article WHERE id=31278
  11. #10 [time:0.0002s] SELECT id FROM le_cms_article WHERE id>31279 ORDER BY id ASC LIMIT 0,1
  12. #11 [time:0.0002s] SELECT * FROM le_cms_article WHERE id=31280
  13. #12 [time:0.0002s] SELECT * FROM le_kv WHERE k='navigate' LIMIT 1
  14. #13 [time:0.0003s] SELECT tagid,id FROM le_cms_article_tag_data WHERE tagid=4166 ORDER BY id DESC LIMIT 0,11
  15. #14 [time:0.0003s] SELECT * FROM le_cms_article_tag_data WHERE tagid=4166 AND id=56184 OR tagid=4166 AND id=54811 OR tagid=4166 AND id=45627 OR tagid=4166 AND id=31279 OR tagid=4166 AND id=23287 OR tagid=4166 AND id=22095 OR tagid=4166 AND id=13019 OR tagid=4166 AND id=7571
  16. #15 [time:0.0005s] SELECT * FROM le_cms_article WHERE id=56184 OR id=54811 OR id=45627 OR id=23287 OR id=22095 OR id=13019 OR id=7571
  17. #16 [time:0.0003s] SELECT cid FROM le_category ORDER BY orderby ASC ,cid ASC
  18. #17 [time:0.0016s] SELECT * FROM le_category WHERE cid=1 OR cid=2 OR cid=3 OR cid=4 OR cid=5 OR cid=6 OR cid=7 OR cid=8 OR cid=9 OR cid=10 OR cid=11 OR cid=12 OR cid=13 OR cid=14 OR cid=15 OR cid=16 OR cid=17 OR cid=18 OR cid=19 OR cid=20 OR cid=21 OR cid=22 OR cid=23 OR cid=24 OR cid=25 OR cid=26 OR cid=27 OR cid=28 OR cid=29 OR cid=30 OR cid=31 OR cid=32 OR cid=33 OR cid=34 OR cid=35 OR cid=36 OR cid=37 OR cid=38 OR cid=39 OR cid=40 OR cid=41 OR cid=42 OR cid=43 OR cid=44 OR cid=45 OR cid=46 OR cid=47 OR cid=48 OR cid=49 OR cid=50 OR cid=51 OR cid=52 OR cid=53 OR cid=54 OR cid=55 OR cid=56 OR cid=57 OR cid=58 OR cid=59 OR cid=60 OR cid=61 OR cid=62 OR cid=63 OR cid=64 OR cid=65 OR cid=66 OR cid=67 OR cid=68 OR cid=69 OR cid=70 OR cid=71 OR cid=72 OR cid=73 OR cid=74 OR cid=75 OR cid=76 OR cid=77 OR cid=78 OR cid=79 OR cid=80 OR cid=81 OR cid=82 OR cid=83 OR cid=84 OR cid=85 OR cid=86 OR cid=87 OR cid=88 OR cid=89 OR cid=90 OR cid=91 OR cid=92 OR cid=93 OR cid=94 OR cid=95 OR cid=96 OR cid=97 OR cid=98 OR cid=99 OR cid=100 OR cid=101 OR cid=102 OR cid=103 OR cid=104 OR cid=105 OR cid=106 OR cid=107 OR cid=108 OR cid=109 OR cid=110 OR cid=111 OR cid=112 OR cid=113 OR cid=114 OR cid=115 OR cid=116 OR cid=117 OR cid=118 OR cid=119 OR cid=120 OR cid=121 OR cid=122 OR cid=123 OR cid=124 OR cid=125 OR cid=126 OR cid=127 OR cid=128
  19. #18 [time:0.0002s] SELECT id FROM le_cms_article_views WHERE cid=68 ORDER BY views DESC LIMIT 0,10
  20. #19 [time:0.0003s] SELECT * FROM le_cms_article_views WHERE id=79663 OR id=5640 OR id=79660 OR id=77944 OR id=79665 OR id=79023 OR id=77952 OR id=79648 OR id=79666 OR id=79653
  21. #20 [time:0.0005s] SELECT * FROM le_cms_article WHERE id=79663 OR id=5640 OR id=79660 OR id=77944 OR id=79665 OR id=79023 OR id=77952 OR id=79648 OR id=79666 OR id=79653
  22. #21 [time:0.0002s] SELECT * FROM le_runtime WHERE k='cate_85' LIMIT 1
  23. #22 [time:0.0005s] SELECT id FROM le_cms_win WHERE (cid=86 OR cid=87 OR cid=88 OR cid=89 OR cid=90 OR cid=91 OR cid=92 OR cid=93 OR cid=94 OR cid=95 OR cid=96 OR cid=97 OR cid=98 OR cid=99 OR cid=100) ORDER BY id DESC LIMIT 0,10
  24. #23 [time:0.0006s] SELECT * FROM le_cms_win WHERE id=1027 OR id=1026 OR id=1025 OR id=1024 OR id=1023 OR id=1022 OR id=1021 OR id=1020 OR id=1019 OR id=1018
  25. #24 [time:0.0002s] SELECT * FROM le_runtime WHERE k='cate_64' LIMIT 1
  26. #25 [time:0.0004s] SELECT id FROM le_cms_article WHERE (cid=65 OR cid=66 OR cid=67 OR cid=68 OR cid=125 OR cid=126 OR cid=127 OR cid=128) ORDER BY id DESC LIMIT 0,10
  27. #26 [time:0.0005s] SELECT * FROM le_cms_article WHERE id=103563 OR id=103562 OR id=103561 OR id=103560 OR id=103559 OR id=103558 OR id=103557 OR id=103556 OR id=103555 OR id=103554
  1. #control => show
  2. #action => index
  3. #cid => 68
  4. #id => 31279
  5. #mid => 2
    1. #acw_tc => 0819529817873199701137315e3f0ac0ac1be5579085d4ab9fc659e398
    2. #cdn_sec_tc => 0819529817873199701137315e3f0ac0ac1be5579085d4ab9fc659e398
    3. #PHPSESSID => qiinm9j5eq947mbg3kuhdsrgrl
    1. #0 /www/wwwroot/www.pjwan.com/index.php
    2. #1 /www/wwwroot/www.pjwan.com/lecms/xiunophp/xiunophp.php
    3. #2 /www/wwwroot/www.pjwan.com/lecms/config/config.inc.php
    4. #3 /www/wwwroot/www.pjwan.com/lecms/xiunophp/lib/base.func.php
    5. #4 /www/wwwroot/www.pjwan.com/lecms/xiunophp/lib/core.class.php
    6. #5 /www/wwwroot/www.pjwan.com/lecms/xiunophp/lib/debug.class.php
    7. #6 /www/wwwroot/www.pjwan.com/lecms/xiunophp/lib/log.class.php
    8. #7 /www/wwwroot/www.pjwan.com/lecms/xiunophp/lib/model.class.php
    9. #8 /www/wwwroot/www.pjwan.com/lecms/xiunophp/lib/view.class.php
    10. #9 /www/wwwroot/www.pjwan.com/lecms/xiunophp/lib/control.class.php
    11. #10 /www/wwwroot/www.pjwan.com/lecms/xiunophp/db/db.interface.php
    12. #11 /www/wwwroot/www.pjwan.com/lecms/xiunophp/db/db_pdo_mysql.class.php
    13. #12 /www/wwwroot/www.pjwan.com/lecms/xiunophp/cache/cache.interface.php
    14. #13 /www/wwwroot/www.pjwan.com/lecms/xiunophp/cache/cache_memcache.class.php
    15. #14 /www/wwwroot/www.pjwan.com/lecms/xiunophp/ext/network/Network__interface.php
    16. #15 /www/wwwroot/www.pjwan.com/lecms/config/plugin.inc.php
    17. #16 /www/wwwroot/www.pjwan.com/lecms/plugin/editor_sd/conf.php
    18. #17 /www/wwwroot/www.pjwan.com/lecms/plugin/editor_tinymce/conf.php
    19. #18 /www/wwwroot/www.pjwan.com/lecms/plugin/editor_um/conf.php
    20. #19 /www/wwwroot/www.pjwan.com/lecms/plugin/le_adminer/conf.php
    21. #20 /www/wwwroot/www.pjwan.com/lecms/plugin/le_baidu_zz/conf.php
    22. #21 /www/wwwroot/www.pjwan.com/lecms/plugin/le_category_filter/conf.php
    23. #22 /www/wwwroot/www.pjwan.com/lecms/plugin/le_content_tag_url/conf.php
    24. #23 /www/wwwroot/www.pjwan.com/lecms/plugin/le_data_table_split/conf.php
    25. #24 /www/wwwroot/www.pjwan.com/lecms/plugin/le_drafts/conf.php
    26. #25 /www/wwwroot/www.pjwan.com/lecms/plugin/le_feedback/conf.php
    27. #26 /www/wwwroot/www.pjwan.com/lecms/plugin/le_homepage_feign/conf.php
    28. #27 /www/wwwroot/www.pjwan.com/lecms/plugin/le_html_cache/conf.php
    29. #28 /www/wwwroot/www.pjwan.com/lecms/plugin/le_links/conf.php
    30. #29 /www/wwwroot/www.pjwan.com/lecms/plugin/le_minganci_do/conf.php
    31. #30 /www/wwwroot/www.pjwan.com/lecms/plugin/le_rand404content/conf.php
    32. #31 /www/wwwroot/www.pjwan.com/lecms/plugin/le_rand_author/conf.php
    33. #32 /www/wwwroot/www.pjwan.com/lecms/plugin/le_rand_pic_cid/conf.php
    34. #33 /www/wwwroot/www.pjwan.com/lecms/plugin/le_sharejs/conf.php
    35. #34 /www/wwwroot/www.pjwan.com/lecms/plugin/le_slide/conf.php
    36. #35 /www/wwwroot/www.pjwan.com/lecms/plugin/le_special_pro/conf.php
    37. #36 /www/wwwroot/www.pjwan.com/lecms/plugin/le_spider/conf.php
    38. #37 /www/wwwroot/www.pjwan.com/lecms/plugin/le_super_sitemap/conf.php
    39. #38 /www/wwwroot/www.pjwan.com/lecms/plugin/le_title_pic/conf.php
    40. #39 /www/wwwroot/www.pjwan.com/lecms/plugin/le_use_del_id/conf.php
    41. #40 /www/wwwroot/www.pjwan.com/lecms/plugin/le_webp_oss/conf.php
    42. #41 /www/wwwroot/www.pjwan.com/lecms/plugin/le_website_group/conf.php
    43. #42 /www/wwwroot/www.pjwan.com/lecms/plugin/le_zhanqunsitemaps_pro_v303/conf.php
    44. #43 /www/wwwroot/www.pjwan.com/lecms/plugin/lu_huochetou/conf.php
    45. #44 /www/wwwroot/www.pjwan.com/lecms/plugin/models_filed/conf.php
    46. #45 /www/wwwroot/www.pjwan.com/lecms/plugin/qrcode/conf.php
    47. #46 /www/wwwroot/www.pjwan.com/lecms/plugin/sy_mobile/conf.php
    48. #47 /www/wwwroot/www.pjwan.com/runcache/misc.func.php
    49. #48 /www/wwwroot/www.pjwan.com/runcache/core_lang/zh-cn.php
    50. #49 /www/wwwroot/www.pjwan.com/runcache/lang/zh-cn.php
    51. #50 /www/wwwroot/www.pjwan.com/runcache/lecms_control/parseurl_control.class.php
    52. #51 /www/wwwroot/www.pjwan.com/runcache/lecms_model/runtime_model.class.php
    53. #52 /www/wwwroot/www.pjwan.com/runcache/lecms_control/show_control.class.php
    54. #53 /www/wwwroot/www.pjwan.com/runcache/lecms_control/base_control.class.php
    55. #54 /www/wwwroot/www.pjwan.com/runcache/lecms_model/urls_model.class.php
    56. #55 /www/wwwroot/www.pjwan.com/runcache/lecms_model/category_model.class.php
    57. #56 /www/wwwroot/www.pjwan.com/runcache/lecms_model/cms_content_model.class.php
    58. #57 /www/wwwroot/www.pjwan.com/runcache/lecms_view/ww7,xt_show.htm.php
    59. #58 /www/wwwroot/www.pjwan.com/runcache/lecms_model/cms_content_data_model.class.php
    60. #59 /www/wwwroot/www.pjwan.com/runcache/lecms_model/cms_content_tag_model.class.php
    61. #60 /www/wwwroot/www.pjwan.com/runcache/lecms_model/user_model.class.php
    62. #61 /www/wwwroot/www.pjwan.com/runcache/lecms_model/cms_content_views_model.class.php
    63. #62 /www/wwwroot/www.pjwan.com/runcache/lecms_model/kv_model.class.php
    64. #63 /www/wwwroot/www.pjwan.com/runcache/lecms_model/cms_content_tag_data_model.class.php
    65. #64 /www/wwwroot/www.pjwan.com/lecms/xiunophp/tpl/sys_trace.php