应用程序开发.pptVIP

  • 10
  • 0
  • 约3.43万字
  • 约 98页
  • 2018-12-31 发布于湖北
  • 举报
第11章 应用程序开发 本章从一个针对运行在S3C44B0X上的uClinux操作系统进行应用程序的开发入手,给出Windows操作系统平台上使用Hitool for uClinux等工具开发的多种应用程序。 本章主要介绍了: 串口应用程序的编写方法。 TCP/IP协议以及Socket的编写方法。 基于uClinux音频接口的应用程序的编写 方法。 键盘和LCD的应用程序的编写方法。 汉字音乐点播程序的编写实例。 11.1 串口应用程序 S3C44B0X提供2个UART收发器,对它们可以操作在中断方式或DMA方式。它们内置波特率发生器,波特率发生器的时钟源为S3C44B0X的系统使用,所以最高速率可达115.2K bps。二个串口有单独的波特率发生器,接收、发送和控制单元,支持红外方式的传送和接收。 同时,在S3C44B0X串口的接收器和发送器中都有16字节的FIFO,FIFO可以有效的降低接收器和发送器对CPU的中断频率,提高发送和接收的效率。 串口设备的可配置参数包括波特率,起始位数量,数据位数量,停止位数量和流量控制协议。 在Linux操作系统中,设备驱动是以主设备号为主,每个设备都有唯一的主设备号和从设备号。 11.1.1 串行口主要函数介绍 1. 打开串口 在Linux 下串口文件是位于/dev 下,串口0为/dev/ttyS0 ,串口1为/dev/ttyS1,O_RDWR是以读写方式打开串口,O_NOCTTY表示该程序不会成为控制终端,避免了当在键盘输入类似ctrl+c的命令后,终止程序的运行。 打开串口是通过使用标准的文件打开函数操作: int fd; fd = open( /dev/ttyS0, O_RDWR); if (-1 == fd) { perror( 提示错误!); } 11.1.1 串行口主要函数介绍 2. 设置串口 最基本的设置串口包括波特率设置,效验位和停止位设置。串口的 设置主要是设置如下struct termios 结构体的各成员值: struct termios { unsigned short c_iflag; // 输入模式标志unsigned short c_oflag; // 输出模式标志 unsigned short c_cflag; // 控制模式标志unsigned short c_lflag; // local mode flags unsigned char c_line; // line discipline unsigned char c_cc[NCC]; // control characters }; 11.1.1 串行口主要函数介绍 通过对c_cflag的赋值,设置波特率,字符大小,使能本地连接,使能串行口驱动读取输入数据。 通过设置c_iflag ,控制端口对字符的输入处理过程,IGNPAR符号常量表示忽略奇偶性错误的字节,不对输入数据进行任何校验,ICRNL 将回车符映射为换行符。 这里就只考虑常见的一些设置: (1) 波特率设置: 下面是修改波特率的代码: struct termios Opt; tcgetattr(fd, Opt); cfsetispeed(Opt,B19200); // 设置为19200Bps cfsetospeed(Opt,B19200); tcsetattr(fd,TCANOW,Opt); 11.1.1 串行口主要函数介绍 (2) 校验位和停止位的设置: ① 无效验8 位 Option.c_cflag = ~PARENB; Option.c_cflag = ~CSTOPB; Option.c_cflag = ~CSIZE; Option.c_cflag |= ~CS8; ③ 偶效验(Even) 7 位 Option.c_cflag = ~PARENB; Option.c_cflag |= ~PARODD; Option.c_cflag =

文档评论(0)

1亿VIP精品文档

相关文档