首页 | Linux 基础 | 资讯动态 | Linux 应用 | Linux 服务器 | Linux 开发 | Linux 安全 | 专题 | 联盟论坛
  当前位置:主页>Linux 开发>Linux 嵌入式>文章内容
嵌入式Linux系统的触摸屏驱动开发
来源:http://www.unix5.com 作者:riechelr_hl 发布时间:2007-07-06  

以上的代码是初始化函数里完成的,一旦初始化函数正确运作,就可以采取正确的步骤进行SPI口通信了。以上初始化完之后,要调用cpm_install_handler函数,该函数的作用是把中断函数注册进内核,一旦SPI口产生硬件中断,就调用中断函数,中断函数的编写可以依据不同系统的不同需要,在本例中,我们使得一旦调用中断函数,就读取SPI接收到的数据。

接下来以怎么样发送数据为例,分析怎么样操作SPI口通信。

发送数据的步骤

在此例中,设SPI接口为主模式。为了开始数据传送过程,内核把要传送的数据写到一个数据缓冲区,然后配置缓冲区描述符,以达到传送的目的。以下给出发送数据的一段代码,通过代码解释传输的过程。

 

memset((void*)txbuffer,0,2);/*清空buffer*/ 
tbdf->cbd_sc = BD_SC_READY | BD_SC_LAST | BD_SC_WRAP; 
tbdf->cbd_datlen = 2; 
/*设置发送缓冲区的状态控制寄存器的值和发送数据的个数*/ 
rbdf->cbd_sc = BD_SC_EMPTY | BD_SC_WRAP; 
rbdf->cbd_datlen = 0; 
/*由于并不打算接受数据,所以个数为0*/ 
cp->cp_spmode = 0x777f; 
cp->cp_spie = 0xff; 
cp->cp_spim = 0x37; 
/*设置SPI接口寄存器的值,以便发送数据,设置SPI接口的 
主或从模式必须在发送函数里设置,否则的话,不能发送数据*/ 
cp->cp_spcom |= 0x80;/*开始发送数据*/ 
udelay(1000);/*必须得等待,否则的话不能正确读到缓冲区状态控制寄存器的值*/ 
if((tbdf->cbd_sc & 0x8000)) 
printk(" spi write error !"); 
memset((void*)rxbuffer,0,2);

数据通信过程中,最重要的是时序,正确的时序要通过反复的实验才能得到。图3是在实验过程中得到的逻辑图(安捷伦公司的1672G逻辑分析仪测试结果)。其中,CS是片选信号,CK是时钟信号,DO是823e发送的数据。可以使用逻辑分析仪来阅读得到的数据是否和设备发送的数据一致。正确的通信必须经过长时间的调试才能够取得。

根据ADS7846的使用手册,驱动程序必须在初始化的时候与ADS7846建立通信。所以,823e首先要向ADS7846发送命令,得到ADS7846的回复后建立通信。驱动程序调用SPI的读写函数来实现对ADS7846的操作。


共2页: 上一页 [1] 2 下一页
 
如果您对本文有任何疑问或者建议,请到论坛讨论区发表您的意见: >> 论坛入口
[收藏] [推荐] [评论(0条)] [返回顶部] [打印本页] [关闭窗口]  
  热点文章
·嵌入式Linux系统下图形库讲解及
·Qt/Embedded在嵌入式Linux中的应
·嵌入式Linux:uClinux操作系统移
·嵌入式系统 Boot Loader 技术内
·嵌入式 用户图形接口uC/GUI的简
·基于GTK+和X的GUI在嵌入式Linux
·嵌入式Linux系统下的MiniGUI研究
·Linux串口上网的简单实现 (图解)
·在Ubuntu上建立Arm Linux的开发
·嵌入式Linux操作系统启动信息完
·Linux 2.6 内核的嵌入式系统应用
·嵌入式Linux在Blackfin处理器上
  相关文章
·嵌入式Linux的DiskOnChip设备驱
·基于嵌入式Linux的PMP系统设计与
·用Linux构造嵌入式实时应用系统
·用Linux构造嵌入式实时应用系统
·三种嵌入式操作系统的深入分析与
·Sharp Zaurus 手持式系统是嵌入
·基于GTK+和X的GUI在嵌入式Linux
·嵌入式Linux操作系统名词资源讲
·嵌入式Linux系统下图形库讲解及
·Linux高手进阶 嵌入式系统设计开
·嵌入式Linux系统下的MiniGUI研究
·嵌入式Linux 中的应用中的GTK+

本站信息源至:互联网络,均为学习,交流所用,如有版权问题,请联系我们.
站长QQ:397422079 E_mail:riechelr_hl@unix5.com
转载本站内容请注明原作者名.谢谢!