当前位置:  技术问答>linux和unix

***关于串口通信的问题!***

    来源: 互联网  发布时间:2015-07-01

    本文导语:  请问:     如何计算用串口发送一个字符串的cpu使用率(串口通信是使用一个线程实现的)?我的发送数据是用write实现的,但我想write只是将数据发送的发送缓冲区,并不表示通信已经完成。能否给一个简单程序...

请问:
    如何计算用串口发送一个字符串的cpu使用率(串口通信是使用一个线程实现的)?我的发送数据是用write实现的,但我想write只是将数据发送的发送缓冲区,并不表示通信已经完成。能否给一个简单程序?
    谢谢!!

|
open设备时使用O_NOCTTY | O_NDELAY即可。

|
#include           /*标准输入输出定义*/
#include          /*标准函数库定义*/
#include          /*Unix标准函数定义*/
#include       /**/
#include        /**/
#include           /*文件控制定义*/
#include         /*PPSIX终端控制定义*/
#include           /*错误号定义*/



#include    

/***@brief  设置串口通信速率
*@param  fd     类型 int  打开串口的文件句柄
*@param  speed  类型 int  串口速度
*@return  void*/
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 set_speed(int fd, int speed)
{
  int   i;
  int   status;
  struct termios   Opt;
  tcgetattr(fd, &Opt);
  for ( i= 0;  i 0)
{
   set_speed(fd,9600);
   printf("open successn");
}
else
{
    printf("Can't Open Serial Port!n");
    exit(0);
}
if (set_Parity(fd,8,1,'N')== 0)
{
    printf("Set Parity Errorn");
    exit(1);
}
else
{
   printf("Set Parity Successn");
}
system("stty raw");
 while(1){          
          if(kbhit())
  {
    c=getchar();            
            if(c=='q')
    { 
      printf("exitn"); 
      system("stty cooked");
              exit(1);
            }
            else if(c=='c')//call
            {
              nread=write(fd,buff,5);
              if(nread>0)
              {
                printf("->%sn",buff);
              }
              else 
              {
                printf("!sent errorn");
              }
            } 
            else if(c=='s')//sms
            {
             
            }
            else if(c=='d')//data
            {
              
            }
          }
          if((nread = read(fd,buff,100))>0)
          {
            //printf("nLen %dn",nread);
            buff[nread]='';
            printf("%srn",buff);
          }
        }
    //close(fd);
    //exit(0);
}


|
http://www-900.ibm.com/developerWorks/cn/linux/l-serials/index.shtml

    
 
 

您可能感兴趣的文章:

  • 在windows中的VMware装了个linux,主板有两个串口,能做windows和linux的串口通信测试么,怎么测试这两个串口在linux是有效
  • 关于linux串口通信中写串口的问题
  • 请教串口通信的编程
  • 板间串口通信问题
  • 奇怪呀,为什么SUN的那个串口通信COMM API的串口通信参数只有4个?
  • linux下串口通信的问题
  • 开源串口通信程序 linucom
  • 串口通信性能问题?
  • awjx帮帮忙!~~~关于用QT做的有图形界面的串口通信程序
  • 请教:串口通信问题
  • 高分问linux串口和windows通信问题
  • 串口通信编程问题
  • 求救!!!嵌入式Linux 串口通信
  • 【求指点】一个关于串口通信数据位数的问题
  • 如何用c编写一串口通信程序呢?绝对给分!
  • QQ2440串口通信乱码?
  • linux 系统是虚拟机,真机是Windows 这样可以实现串口通信么,还是必须都是真机?
  • 简单串口通信工具 ssterm
  • 用java可以串口通信方面的程序吗?
  • linux串口通信问题,急!!!
  • vmware 上 linux 串口问题
  • 请教一个linux串口通讯问题?
  • 扩展的串口卡上的串口操作的问题
  • 急!急!急!急!急! liux 串口问题
  • 最棘手一种串口问题。请教高手。在线等
  • 在线等待,求助LINUX下串口问题
  • 急了急了:串口read函数问题!
  • 串口配置问题
  • unix 下c写的串口程序调试问题!高手请进 !!!
  • Linux 串口发送接收数据问题
  • 串口的问题!!!!!!!!!
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • linux下几个设备通过串口串行连接,如何协调各串口发送数据
  • 散分100,求解串口键盘和串口鼠标驱动
  • Linux 中用java语言写串口程序,提示找不到串口
  • 高分求助:我笔记本没有串口,在linux下要和一个串口设备连,怎么办?
  • 开发板串口与实际内核中的串口文件的对应关系怎么回事?谢谢帮忙
  • 怎么判断串口已经收到数据,并及时读出?怎么判断串口已经将写入的数据发送完毕?
  • 工控机有6个串口,但用光盘安装debian6.05,在dev中只找到4个串口,如何解决。
  • linux下串口发送数据用串口精灵接受不到或为全零
  • 在虚拟Linux系统下能进行串口通讯吗?最好给个串口通讯的代码!谢谢!
  • 要加多个串口,怎么分别指定他们的driver_name和dev_name以示区别各个串口?
  • 工控机上用光盘安装debian6.05,硬件上有6个串口,但是软件上即dev中只有4个串口,如何解决。
  • 嵌入式linux,串口初始化时,无法设置串口属性
  • 请问如何以独占的方式打开串口
  • linux串口驱动该怎么写
  • 虚拟串口怎么读数据? 请有 串口 或者 usb 驱动经验的高手指点
  • linux下如何清空串口的输入输出缓存
  • linux下怎么监控串口?
  • u-boot中处理串口通讯的源码在哪?
  • 求助达人,USB转串口是否遇到过多台设备接入机器,串口冲突?
  • 将串口数据转为鼠标事件


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3