开发环境:CentOS6.7(虚拟机)
交叉编译器:arm-linux-gcc gcc version 4.4.6 (crosstool-NG 1.16.0)
开发板fl2440(内核版本-linux-3.0)
开发模块:SIM900 GPRS
串口编程:
编写串口需要注意的点:
1.串口为串行通信,全双工,异步通信,因此需要了解它的异步通信的速率;
2.了解串口包含哪几种数据位,异步通信速率,校验位及停止位等;
简易串口set_comport.c:
/*********************************************************************************
* Copyright: (C) 2018 Lingyunstudio
* All rights reserved.
*
* Filename: set_comport.c
* Description: This file
*
* Version: 1.0.0(04/28/2018)
* Author: guozhihao <810170156@qq.com>
* ChangeLog: 1, Release initial version on "04/28/2018 01:04:27 AM"
*
********************************************************************************/
/* head of sturct termios */
#include <termios.h>
#include <unistd.h>
/* head of perror */
#include <stdio.h>
#include <errno.h>
/* head of bzero() */
#include <strings.h>
/********************************************************************************
* Description:comport about ttyUSB0
* Input Args:fd=open("/dev/ttyUSB0",O_RDWR | O_NOCTTY | O_NDELAY) nspeed nBits:8 nEvent:N nStop:1
* Output Args:comport failure:return -1
* Return Value:
********************************************************************************/
int set_comport(int fd,int nSpeed,int nBits,char nEvent,int nStop) //串口设置,第一个传递文件描述符,第二个是设置异步通信的速率,第三个设置数据位,第四个设置校验位,第五个设置停止位;
{
struct termios newttyUSB0,oldttyUSB0; //设置新旧结构体
if(tcgetattr(fd,&oldttyUSB0) != 0) //保存原先串口配置
{
perror("Setupserial 1");
return -1;
}
bzero(&newttyUSB0,sizeof(newttyUSB0)); //