1.XPT2046的初始化

XPT2046说起来其实就是一个AD转换器,所以它适合不需要什么初始化设置的,而具体的初始化其实也就是单片机IO的初始化和SPI的初始化。

这次STM32是使用SPI1来进行操作,SPI的设置其实在前几节课已经讲过了,这里就不重复讲了,初始化的具体代码如下:

/**********************************************************************

*FuncTIonName:TOUCH_Init

*DescripTIon:初始化触摸屏

*Input:None

*Output:None

*Return:None

**********************************************************************/

voidTOUCH_Init(void)

{

GPIO_InitTypeDefGPIO_InitStructure;

/*SPI的IO口和SPI外设打开时钟*/RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOD,ENABLE);

/*TOUCH-CS的IO口设置*/GPIO_InitStructure.GPIO_Pin=GPIO_Pin_6;GPIO_InitStructure.GPIO_Mode=GPIO_Mode_Out_PP;GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;

GPIO_Init(GPIOD,&GPIO_InitStructure);

/*TOUCH-PEN的IO口设置*/GPIO_InitStructure.GPIO_Pin=GPIO_Pin_7;GPIO_InitStructure.GPIO_Mode=GPIO_Mode_IPU;

GPIO_Init(GPIOD,&GPIO_InitStructure);SPI1_Config();

/*要使用FLASH来存储校正参数,所以注意之前要初始化*/

/*检测是否有校正参数*/

FLASH_ReadData(&TouchAdj.posState,TOUCH_ADJ_ADDR,sizeof(TouchAdj));

if(TouchAdj.posState!=TOUCH_ADJ_OK)

{

TOUCH_Adjust();//校正

}

}

在这个函数中,调用了SPI1的初始化函数,和触摸屏的校正程序,下面是SPI1的

初始化程序,校正原理我们在后面在讲述。

/**********************************************************************

*FuncTIonName:SPI1_Config

*DescripTIon:初始化SPI2

*Input:None

*Output:None

*Return:None

*********************************************************************/

voidSPI1_Config(void)

{

GPIO_InitTypeDefGPIO_InitStructure;SPI_InitTypeDefSPI_InitStructure;

/*SPI的IO口和SPI外设打开时钟*/RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE);RCC_APB2PeriphClockCmd(RCC_APB2Periph_SPI1,ENABLE);

/*SPI的IO口设置*/

GPIO_InitStructure.GPIO_Pin=GPIO_Pin_5|GPIO_Pin_6|GPIO_Pin_7;GPIO_InitStructure.GPIO_Mode=GPIO_Mode_AF_PP;GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;

GPIO_Init(GPIOA,&GPIO_InitStructure);GPIO_SetBits(GPIOA,GPIO_Pin_5|GPIO_Pin_6|GPIO_Pin_7);//PA5.6.7上拉

/********************************************************************/

/*******************设置SPI的参数***********************************/

/*********************************************************************/SPI_InitStructure.SPI_Direction=SPI_Direction_2Lines_FullDuplex;//选择全双工SPI模式

SPI_InitStructure.SPI_Mode=SPI_Mode_Master;//主机模式SPI_InitStructure.SPI_DataSize=SPI_DataSize_8b;//8位SPISPI_InitStructure.SPI_CPOL=SPI_CPOL_High;//时钟悬空高电平SPI_InitStructure.SPI_CPHA=SPI_CPHA_2Edge;//在第二个时钟采集数据SPI_InitStructure.SPI_NSS=SPI_NSS_Soft;//Nss使用软件控制

/*选择波特率预分频为256*/

SPI_InitStructure.SPI_BaudRatePrescaler=SPI_BaudRatePrescaler_256;SPI_InitStructure.SPI_FirstBit=SPI_FirstBit_MSB;//从最高位开始传输

SPI_InitStructure.SPI_CRCPolynomial=7;

SPI_Cmd(SPI1,ENABLE);SPI_Init(SPI1,&SPI_InitStructure);

}

linux平台xpt2046驱动,XPT2046触摸屏实验过程详解与STM32代码解析相关推荐

  1. XPT2046触摸屏实验过程详解与STM32代码解析

    触摸屏的简介 触摸屏的控制 XPT2046芯片简介 1. XPT2046 的初始化 2. XPT2046 读取 X.Y 值 3. 物理坐标值的数据处理 学习目标: 1.复习 STM32 的硬件 SPI ...

  2. python实验原理_Python实现蒙特卡洛算法小实验过程详解

    蒙特卡洛算法思想 蒙特卡洛(Monte Carlo)法是一类随机算法的统称,提出者是大名鼎鼎的数学家冯·诺伊曼,他在20世纪40年代中期用驰名世界的赌城-摩纳哥的蒙特卡洛来命名这种方法. 通俗的解释一 ...

  3. Linux系统下SVN服务器的搭建过程详解 UpJ}s7+

    Linux系统下SVN服务器的搭建过程详解 UpJ}s7+   1 环境:  服务器放在redhatAS4.0上,客户端在windows 2000. k_lb"5z   Z]jSq@%1H* ...

  4. 二十.Linux开发之根文件系统构建及过程详解

    老规矩 有道云笔记地址: 详情看这里链接,记录太多,就不一一排版了. http://note.youdao.com/noteshare?id=15b6e982c2e66d0f47b1c787a49f4 ...

  5. Linux在U盘安装python的过程详解

    首先,说明,我是看了下面这个博客才学会的,但是他写的有点太高深了...对于我们这些Linux菜鸟来说还是不会做,下面我就把具体做的过程一步步详细展示出来,希望能帮助你们. 参考博客链接:http:// ...

  6. 路由器NAT负载均衡实验过程详解

    实验拓扑图: 实验环境配置说明: 1.将R1的Fa0/0接口的IP设为:192.168.2.1/24,S1/2接口的IP设为:202.96.134.1/24: 2.将R2的S1/2接口的IP设为:20 ...

  7. 微信公众平台java开发详解(工程代码+解析)

    说明: 本次的教程主要是对微信公众平台开发者模式的讲解,网络上很多类似文章,但很多都让初学微信开发的人一头雾水,所以总结自己的微信开发经验,将微信开发的整个过程系统的列出,并对主要代码进行讲解分析,让 ...

  8. 二叉树的先序、中序、后序、层序遍历方式详解,由遍历序列构造二叉树过程详解以及C++代码详细实现

    二叉树的遍历 树与二叉树的定义.性质,二叉树的顺序存储结构.链式存储结构 二叉树的遍历是指按某条搜索路径访问树中每个结点,使得每个结点均被访问一次,而且仅被访问一次.由于二叉树是一种非线性结构,每个结 ...

  9. AMIRA时间预测实现过程详解(含代码可直接套用)

    今日学习了amira做时间预测,下面分享以下学习成果 具体思路 基本思路就是这样, 接下来带你一步步实现 白噪声检验 白噪声序列各项之间没有任何的关系,完全为无序波动,没有任何信息可提供即终止分析. ...

最新文章

  1. java.text.dateformat_使用java.text.SimpleDateFormat类进行文本日期和Date日期的转换
  2. GBDT与XGBOOST
  3. 虚方法(virsual method)
  4. SQL服务器名称更改
  5. java反射机制中的getDeclaredField()
  6. 从“技术理性”到“实践智慧” 华为云这波大招够强
  7. 七、数值微分与数值积分
  8. NXP JN5169滴答定时器中断回调函数
  9. ppi 各代iphone_各代iPhone逻辑分辨率与物理分辨率
  10. hystrix实战--资源隔离技术简介
  11. java excelhandle oschina,基于alibab的easyexcel进行excel表的导出(可自定义handler去设计excel格式)...
  12. android高德地图关键字搜索,关键字搜索-POI搜索-示例中心-JS API 示例 | 高德地图API...
  13. Linux下用rar压缩和解压文件
  14. 绿色手动安装MySQL数据库
  15. 2022考研日志(已完结)
  16. python gui tkinter_Python GUI tkinter 学习笔记(一)
  17. HTML粒子漩涡特效,使用HTML5 Canvas绘制经典漩涡粒子特效
  18. 万豪国际集团推行更高标准的清洁消毒措施;养乐多将在无锡新建第二工厂 | 美通企业日报...
  19. 迭代加权多元变化检测(IRMAD) python实现
  20. server数据库标记为可疑 sql_SQL Server 2008数据库被标记为可疑的解决方法

热门文章

  1. 国学小记(一周看一遍,进步一点点)---翟鸿燊视频摘记
  2. 计算机操作系统|汤小丹|第四版|习题答案(四)
  3. 看抖音快手时显示无法进入服务器,手机突然无法进入抖音直播怎么回事?解决进不去抖音直播的方法...
  4. 怎么强制退出苹果Apple ID?
  5. 十一黄金周明日开启.外出旅游要注意些什么?
  6. Python爬虫120例之第20例,1637、一路商机网全站加盟数据采集
  7. IIS发布网站404.0问题
  8. echarts实现世界地图,解决series-map和geo同时使用导致在地图上缩放图层会重叠的问题
  9. [个人备忘]go包管理
  10. 汉语音频文本对齐(Forced Alignment)-MFA