当前位置: 首页 > news >正文

如何选择购物网站建设淘宝客如何新建网站

如何选择购物网站建设,淘宝客如何新建网站,半年工作总结,塘沽网一、 串口API 在Linux系统中,操作设备的统一接口就是:open/ioctl/read/write。 对于UART,又在ioctl之上封装了很多函数,主要是用来设置行规程。 所以对于UART,编程的套路就是: open设置行规程,比如波特率、数据位、停止位、检验位、RAW模式、一有数据就返回read/write 怎么设置…一、 串口API 在Linux系统中,操作设备的统一接口就是:open/ioctl/read/write。 对于UART,又在ioctl之上封装了很多函数,主要是用来设置行规程。 所以对于UART,编程的套路就是: open设置行规程,比如波特率、数据位、停止位、检验位、RAW模式、一有数据就返回read/write 怎么设置行规程?行规程的参数用结构体termios来表示,可以参考Linux串口—struct termios结构体 typedef unsigned char cc_t; typedef unsigned int speed_t; typedef unsgined int tcflag_t;#define NCCS 19 struct termios {tcflag_t c_iflag; /* input mode flags */tcflag_t c_oflag; /* output mode flags */tcflag_t c_cflag; /* control mode flags */tcflag_t c_lflag; /* local mode flags */cc_t c_line; /* line discipline */cc_t c_cc[NCCS]; /* control characters */ };这些函数在名称上有一些惯例 tc: terminal controlcf: control flag 函数名作用tcgetattrget terminal attributes,获得终端的属性tcsetattrset terminal attributes,修改终端参数tcflush清空终端未完成的输入/输出请求及数据cfsetispeedsets the input baud rate,设置输入波特率cfsetospeedsets the output baud rate,设置输出波特率cfsetspeed同时设置输入、输出波特率 函数不多,主要是需要设置好termios中的参数,这些参数很复杂,可以参考Linux串口—struct termios结构体。 二、编程 #include stdio.h #include string.h #include sys/types.h #include errno.h #include sys/stat.h #include fcntl.h #include unistd.h #include termios.h #include stdlib.hint set_opt(int fd, int nSpeed, int nBits, char nEvent, int nStop) {struct termios newtio, oldtio;if(tcgetattr(fd, oldtio) ! 0) {perror(SetupSerial 1);return -1;}bzero(newtio, sizeof(newtio));newtio.c_cflag | CLOCAL|CREAD;newtio.c_cflag ~CSIZE;newtio.c_lflag ~(ICANON|ECHO|ECHOE|ISIG);newtio.c_oflag ~OPOST;switch(nBits) {case 7:newtio.c_cflag | CS7;break;case 8:newtio.c_cflag | CS8;break;}switch(nEvent) {case 0:newtio.c_cflag | PARENB;newtio.c_cflag | PARODD;newtio.c_iflag | (INPCK | ISTRIP);break;case E:newtio.c_iflag | (INPCK|ISTRIP);newtio.c_cflag | PARENB;newtio.c_cflag ~PARODD;break;case N:newtio.c_cflag ~PARENB;break;}switch(nSpeed) {case 2400:cfsetispeed(newtio, B2400);cfsetospeed(newtio, B2400);break;case 4800:cfsetispeed(newtio, B4800);cfsetospeed(newtio, B4800);break;case 9600:cfsetispeed(newtio, B9600);cfsetospeed(newtio, B9600);break;case 115200:cfsetispeed(newtio, B115200);cfsetospeed(newtio, B115200);break;default:cfsetispeed(newtio, B9600);cfsetospeed(newtio, B9600);break;}if(nStop 1)newtio.c_cflag ~CSTOPB;else if(nStop 2)newtio.c_cflag | CSTOPB;newtio.c_cc[VMIN] 1;newtio.c_cc[VTIME] 0;tcflush(fd, TCIFLUSH);if((tcsetattr(fd, TCSANOW, newtio)) ! 0) {perror(com set error);return -1;}return 0; }int open_port(char *com) {int fd;fd open(com, O_RDWR|O_NOCTTY);if(-1 fd) {return -1;}if(fcntl(fd, F_SETFL, 0) 0) {printf(fcntl failed\n);return -1;}return fd; }int main(int argc, char *argv[]) {int fd;int iRet;char c;if(argc ! 2) {printf(Usage: \n);printf(%s /dev/ttySAC1 or other\n, argv[0]);return -1;}fd open_port(argv[1]);if(fd 0) {printf(open %s err!\n, argv[1]);return -1;}iRet set_opt(fd, 115200, 8, N, 1);if(iRet) {printf(set port err!\n);return -1;}printf(Enter a char: );while(1) {scanf(%c, c);iRet write(fd, c, 1);iRet read(fd, c, 1);if(iRet 1) {printf(get: %02x %c\n, c, c);} else {printf(can not get data\n);}}return 0; }三、上机实验 短接串口的RX和TX rootnpi:~/test# ./a.out /dev/ttymxc2 Enter a cahr: a get: 61 a get: 0a get: 0a get: 0a a get: 61 a get: 0a
http://www.dnsts.com.cn/news/30559.html

相关文章:

  • 全中文网站开发电子商务网站建设试题
  • 网站测评必须做培训加盟
  • 专业建设网站公司网站的搭建方案
  • 台州网站搜索引擎优化杭州网络公司服务
  • 建设网站方法有哪些内容优设
  • 国际购物网站排名怎么做企业网站推广赚钱
  • 过期网站.东莞做微网站建设价格
  • 网站推广基本预算友情链接是外链吗
  • 建公司网站成都网站内容策划
  • 网站备案没座机跑wordpress配置
  • 移动网站有哪些wordpress自定页面
  • 找做网站公司湖南常德广宇建设网站
  • 免费学编程国内网站怎样能做好网络推广?
  • led外贸网站制作微信网页版文件传输助手
  • 免费发布推广的网站有哪些可做百科资料参考的网站
  • 为您服务网站北京网站建设建设公司
  • 浅谈阿里企业的电子网站建设深圳企业网站托管
  • 开发网站合同wordpress纯代码点赞
  • 辽宁省建设厅网站升级何时结束广州番禺区有什么好玩的景点
  • 门户网站建设统计表window主机用wordpress
  • 做网站还能赚钱吗中卫网站推广服务
  • c#网站开发工具太原做网站的工作室
  • 中企做的网站代做淘宝网站
  • 做流程图用什么网站好长春网站建长春做网站
  • 福建省鑫通建设有限公司网站汽车工厂网站建设
  • 电子书网站建设珍佰农 商城网站建设
  • 模板网站官网如何做网站拓扑结构图
  • 手机网站设计图iis6.1配置网站
  • 个体网站建设台州建设信息港网站
  • 盐地网站建设公司微商分销商城