STM32的SPI应用之LCD.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
STM32的SPI应用之LCD 开始本来先玩串口,虽然程序已经跑通,但是由于网上类似文章很多,就先来个SPI玩玩,与上次GPIO一样,技术含量仍然不高,仅是业余学习玩玩。 首先来开硬件电路,个人觉得是编写程序的第2步;第1步当然是先看STM32的手册了,SPI的详细介绍见STM32的中文使用手册。 这个电路的正确性是以我把它点亮为依据的,不是我设计的,我也不会,但是我驱动它关心的是那几个信号引脚怎么接的。这里采用的是SPI口,加上几根控制线。关于SPI口的介绍不大清楚的朋友可以查下相关资料,一般具有SPI接口的处理器的手册都有比较详细的介绍。 结合STM32的手册对引脚的描述: 可以看出,SPI1的4根引脚MISO、MOSI、SCK(CLK)、CSN(CS)分别对应的引脚为GPIO的:PA6、PA7、PA5、PA4。 所以LCD的控制线与处理器的GPIO具体对应如下: LCD_RST--------------PC7 LCD_RS------------------PC8 LCD_CLK-----------------------PA5 LCD_SDO-----------------------PA7 LCD_CS----------------------PA8 LCD_PWR----------------PC1 其实也就这六根信号线就能驱动LCD了。 2、这里必须关心的是SPI口对应的4根线,这里只用到了两根MOSI(PA7)、CLK(PA5),片选CSN用的是通用IO口PA8代替,至于MISO这里可以不用使用。 所以在初始化SPI口是有如下程序: void SetupSPI(void) { SPI_InitTypeDef SPI_InitStructure; GPIO_InitTypeDef GPIO_InitStructure; /*允许 SPI1 和GPIOA时钟,这两个外设都是挂在APB2总线上的 */ RCC_APB2PeriphClockCmd(RCC_APB2Periph_SPI1 | RCC_APB2Periph_GPIOA, ENABLE); /*配置 SPI1 引脚,由于这里只用到了 SCK,和 MOSI ,所以只对PA5和PA7进行了初始化*/ GPIO_InitStructure.GPIO_Pin = GPIO_Pin_5 | GPIO_Pin_7; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;//关于这个参数的描述可以见GPIO的H文件 GPIO_Init(GPIOA, GPIO_InitStructure); /* 配置PA.4作为推挽输出,因为这里用来作为SPI口的片选,既选中LCD操作 */ GPIO_InitStructure.GPIO_Pin = GPIO_Pin_8; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; GPIO_Init(GPIOA, GPIO_InitStructure); /* 初始化片选为高,不选种LCD */ GPIO_ResetBits(GPIOA, GPIO_Pin_8);//PA8; /* SPI1 配置,关于这个怎么配置见STM32的手册,为什么这样配置见下 */ SPI_InitStructure.SPI_Direction = SPI_Direction_1Line_Tx; SPI_InitStructure.SPI_Mode = SPI_Mode_Master; SPI_InitStructure.SPI_DataSize = SPI_DataSize_8b; SPI_InitStructure.SPI_CPOL = SPI_CPOL_High; SPI_InitStructure.SPI_CPHA = SPI_CPHA_2Edge; SPI_InitStructure.SPI_NSS = SPI_NSS_Soft; SPI_InitStructure.SPI_BaudRatePrescaler = SPI_BaudRatePrescaler_4; SPI_InitStructure.SPI_FirstBit = SPI_FirstBit_MSB; SPI_Init(SPI1, SPI_InitStructure);

文档评论(0)

ww90055 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档