如何从串口RS232的输出中获取脉冲?

时间:2014-02-26 04:56:47

标签: c linux

我正在使用linux,我需要在C中编写一个程序,用于通过串口的o / p创建脉冲,可以通过示波器查看。怎么做?另外如何通过C?

配置串口

1 个答案:

答案 0 :(得分:1)

终于找到了完成任务的方法

#include<time.h>
#include<unistd.h>
#include<stdio.h>
#include<errno.h>
#include<termios.h>
#include<fcntl.h>
#include<sys/ioctl.h>
int main()
{
    struct t`enter code here`imespec ts;
    ts.tv_nsec =999999999; 
    ts.tv_sec=0;
    int fd,ctr,j1,j2,j3,j4;
    fd =open("/dev/ttyS0", O_RDWR | O_NOCTTY);
    j1=ioctl(fd, TIOCMGET, &ctr);
    if(j1<0)
        perror("\nfailed1 not able to get status\n");
    else
    {
        ctr=ctr|TIOCM_DTR;
        j2=ioctl(fd,TIOCMSET,&ctr);
        if(j2<0)
            perror("\nfailed2 not able to set \n");

        else
            nanosleep(&ts,0);   

    j3=ioctl(fd,TIOCMGET,&ctr);
    if(j3<0)
        perror("failed 3 not able to get status2\n");

    else
    {
        ctr&=~TIOCM_DTR;
        j4=ioctl(fd,TIOCMSET,&ctr);
        if(j4<0)
            perror("faliure 4 not able to set 2");
        else
            nanosleep(&ts,0);
    }

    }
}