历史上的今天
返回首页

历史上的今天

今天是:2025年03月03日(星期一)

正在发生

2021年03月03日 | XPT2046触摸屏实验过程详解与STM32代码解析

2021-03-03 来源:eefocus

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);


}


推荐阅读

史海拾趣

BEI Sensors公司的发展小趣事

随着公司业务的不断发展,Beckhoff开始积极拓展全球市场。经过数十年的努力,公司的分支机构已经遍布世界各地,业务覆盖全球60多个国家。通过与全球合作伙伴的紧密合作,Beckhoff成功地将其自动化产品和解决方案推向全球市场,为全球客户提供优质的服务。

Acutechnology公司的发展小趣事

随着国内市场的逐渐饱和,Acutechnology公司开始将目光投向国际市场。公司制定了国际化发展战略,通过在海外设立分支机构、参加国际展会等方式拓展海外业务。同时,公司还积极引进国际先进技术和管理经验,提升企业的整体竞争力。这些举措为公司的长远发展注入了新的活力。

意华(CZT)公司的发展小趣事

为了提高产品质量,意华先后通过了ISO9001、ISO14001、IECQC080000等多项国际质量管理体系认证。这些认证不仅证明了公司的质量管理水平,也为客户提供了更可靠的产品保障。通过持续的质量改进和过程控制,意华的产品质量得到了显著提升,赢得了更多客户的认可。

CANDD公司的发展小趣事

在电子行业的初期,CANDD公司凭借其创始人对半导体技术的深入研究,成功开发出了一款具有划时代意义的芯片。这款芯片不仅性能卓越,而且成本远低于市场上的同类产品。凭借这一技术突破,CANDD公司迅速在行业内崭露头角,吸引了大量投资者的关注。随着产品销量的不断增长,公司逐渐扩大了生产规模,并在全球范围内建立了销售网络。

GPD Optoelectronics Corp公司的发展小趣事

在快速发展的过程中,CANDD公司始终注重企业文化的建设。公司倡导创新、协作、诚信和担当的核心价值观,鼓励员工勇于创新、敢于担当。同时,公司还注重员工的培训和成长,为员工提供了广阔的职业发展空间。这些举措不仅激发了员工的工作热情,还为公司培养了一批忠诚、有能力的员工队伍。在企业文化的引领下,CANDD公司不断向前发展,成为了电子行业的佼佼者。

这些故事虽然基于虚构的CANDD公司,但它们所反映的电子行业发展趋势和企业管理理念是真实存在的。通过这些故事,我们可以更好地理解电子行业的发展历程和未来趋势。

Endicott Research Group Inc (ERG)公司的发展小趣事

面对日益激烈的市场竞争,ERG始终坚持技术研发和创新。他们与多所知名大学和科研机构建立合作关系,共同研发新型电源技术和照明解决方案。这些合作不仅为ERG带来了先进的技术和研发资源,还使其在行业中保持了技术领先地位。通过与科研机构的紧密合作,ERG不断推出更具创新性和竞争力的产品。

问答坊 | AI 解惑

Chrome渲染引擎同Safari 正开发Linux和MAC版

北京时间9月2日消息:据国外媒体报道,Google周一通过漫画宣布,将推出网络浏览器 Chrome。目前,有关Chrome的技术内容也逐渐出现在了网上。 据悉,Chrome浏览器使用了开源的网页渲染引擎WebKit,这个引擎也被使用在了苹果公司的Safari浏览器中, ...…

查看全部问答>

带驱动的步进电机的管脚定义

本人有个带驱动器的步进电机,型号为BL55S-M01是三星打印机上的,上面带一个10针的插座分别为:1.24V 2. 24V 3.GND 4.GND 5.BK 6.5V(NC) 7.ST/SP 8.RD 9.CLK 10.CW  /CCW。哪位高手能否介绍一下那些管脚的作用?…

查看全部问答>

mic的偏置电阻选择

本帖最后由 paulhyde 于 2014-9-15 09:14 编辑 今年音频题会不会,要加上mic,功放这些部分呢? 找到一个mic的偏置电阻选择资料  …

查看全部问答>

电子电路经典实例-绝对实用

本帖最后由 paulhyde 于 2014-9-15 09:35 编辑 模电电路,图文并茂,讲的非常清楚。。。  …

查看全部问答>

Nand Flash 读写问题

我用的是友善mini2440,Nand Flash型号是K9F1G08,现在是裸机学习; 我在进行读操作时,读出的第一个字节总是 30,然后才是真正的数据; 我的写操作写不进去。 请大家指点下。谢谢! …

查看全部问答>

关于USB设备的读取

{                 m_strLog += _T(\"抱歉,未找到可用的USB设备\");…

查看全部问答>

Windows xpe的ghost方法

嵌入式xpe是用什么工具ghost的?…

查看全部问答>

IAR_STM8编译出错请教

请教;以前在在ST Visual Develop环境下完成的程序现在移植到IAR环境编译报如下错误:不知问题出在哪?? Building configuration: stm8lianfang - Debug Updating build tree... Linking Error[Lp011]: section placement failed: una ...…

查看全部问答>