我是靠谱客的博主 高高台灯,最近开发中收集的这篇文章主要介绍简单的串口通信代码,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

python代码

#!/usr/bin/python2.7
import sys
import serial
import time


try:
 ser = serial.Serial('/dev/ttyUSB0', 9600)
except Exception, e:
 print 'open serial failed.%s'%e
 exit(1)

 # echo
print 'open serial success'
ser.write('B')
time.sleep(3)
ser.write('b')
ser.close()

C代码

#include <stdio.h>
#include <stdlib.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <termios.h>
#include <unistd.h>
  
int main()
{
  int fd, wr_num, rd_num, status;
  
  char send_buf[] = "B",send_buf2[] = "b", recv_buf[200];
  
  fd = open("/dev/ttyUSB0", O_RDWR);
  if (fd == -1)
    {
    printf("can't not open the COM1! n");
    }
  else
    {
    printf("Open COM1 success! n");
    }
  
  struct termios Opt;
  if (tcgetattr(fd, &Opt) != 0)
    {
    printf("tcgetattr fd n");
    }
 
    /*设置数据位为8位*/
  Opt.c_cflag &= ~CSIZE;
  Opt.c_cflag |= CS8;
 
    /*设置校验位为None*/
  Opt.c_cflag &= ~PARENB;
  Opt.c_cflag &= INPCK;
 
    /*设置停止位为1*/
  Opt.c_cflag &= ~CSTOPB;
 
    /*数据处理*/
  Opt.c_lflag &= ~(ICANON|ECHO|ECHOE|ISIG);
  Opt.c_oflag &= ~OPOST;
  
  cfsetispeed(&Opt, B9600);
  cfsetospeed(&Opt, B9600);
  status = tcsetattr(fd, TCSANOW, &Opt);
  if (status != 0)
    {
    printf("tcsetattr fd1 n");
    }
  tcflush(fd, TCIOFLUSH);
  

  wr_num = write(fd, send_buf, sizeof(send_buf));
  printf("write COM1 success! n");
  sleep(5);
  wr_num = write(fd, send_buf2, sizeof(send_buf));
  printf("close COM1 success! n");
  close(fd);  
  printf("close +%d n",close(fd));
  return -1;  
}


最后

以上就是高高台灯为你收集整理的简单的串口通信代码的全部内容,希望文章能够帮你解决简单的串口通信代码所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(59)

评论列表共有 0 条评论

立即
投稿
返回
顶部