当前位置: 首页 > news >正文

STM32CubeIDE 操作 LCD1602

 

 

 

 

 

 

 

补充内容:

 注意:所有的指令、数据读写都需要 "E" 有一个脉冲。

STM32CubeIDE首先要对芯片初始化,如图:

 

 书中的代码很全面但是不利于理解,简化一下,总体思路。

 1、通过RS引脚确定是写数据还是写指令。

2、读写控制端(RW)设置为写模式。

3、把数据或指令送到数据线上。(D0~D7)

4、给E一个高脉冲,将数据送入液晶控制器。


    WriteData(0x38);

/* 准备D0~D7 数据,设置16*2显示,5*7点阵,8位数据接口。

 */


    HAL_GPIO_WritePin(GPIOA, RS_Pin, GPIO_PIN_RESET); 
    HAL_GPIO_WritePin(GPIOA, RW_Pin, GPIO_PIN_RESET);
    HAL_GPIO_WritePin(GPIOA, E_Pin, GPIO_PIN_RESET);

    HAL_GPIO_WritePin(GPIOA,RS_Pin,GPIO_PIN_RESET);
    HAL_GPIO_WritePin(GPIOA,RW_Pin,GPIO_PIN_RESET);
    HAL_GPIO_WritePin(GPIOA,E_Pin,GPIO_PIN_SET);
    __NOP();
    HAL_GPIO_WritePin(GPIOA,E_Pin,GPIO_PIN_RESET);
    HAL_Delay(2);


    WriteData(0x01);

/* 准备D0~D7 数据,显示清零,数据指针清零。

 */


    HAL_GPIO_WritePin(GPIOA,RS_Pin,GPIO_PIN_RESET);
    HAL_GPIO_WritePin(GPIOA,RW_Pin,GPIO_PIN_RESET);
    HAL_GPIO_WritePin(GPIOA,E_Pin,GPIO_PIN_RESET);

    HAL_GPIO_WritePin(GPIOA,RS_Pin,GPIO_PIN_RESET);
    HAL_GPIO_WritePin(GPIOA,RW_Pin,GPIO_PIN_RESET);
    HAL_GPIO_WritePin(GPIOA,E_Pin,GPIO_PIN_SET);
    __NOP();
    HAL_GPIO_WritePin(GPIOA,E_Pin,GPIO_PIN_RESET);


    WriteData(0x06);

/*准备D0~D7 数据,写一个字符后地址指针加1

 */
    HAL_GPIO_WritePin(GPIOA,RS_Pin,GPIO_PIN_RESET);
    HAL_GPIO_WritePin(GPIOA,RW_Pin,GPIO_PIN_RESET);
    HAL_GPIO_WritePin(GPIOA,E_Pin,GPIO_PIN_RESET);

    HAL_GPIO_WritePin(GPIOA,RS_Pin,GPIO_PIN_RESET);
    HAL_GPIO_WritePin(GPIOA,RW_Pin,GPIO_PIN_RESET);
    HAL_GPIO_WritePin(GPIOA,E_Pin,GPIO_PIN_SET);
    __NOP();
    HAL_GPIO_WritePin(GPIOA,E_Pin,GPIO_PIN_RESET);
    HAL_Delay(2);


    WriteData(0x0c);

/*准备D0~D7 数据,设置开显示,不显示光标。码表见上图*/
    HAL_GPIO_WritePin(GPIOA,RS_Pin,GPIO_PIN_RESET);
    HAL_GPIO_WritePin(GPIOA,RW_Pin,GPIO_PIN_RESET);
    HAL_GPIO_WritePin(GPIOA,E_Pin,GPIO_PIN_RESET);

    HAL_GPIO_WritePin(GPIOA,RS_Pin,GPIO_PIN_RESET);
    HAL_GPIO_WritePin(GPIOA,RW_Pin,GPIO_PIN_RESET);
    HAL_GPIO_WritePin(GPIOA,E_Pin,GPIO_PIN_SET);
    __NOP();
    HAL_GPIO_WritePin(GPIOA,E_Pin,GPIO_PIN_RESET);
    HAL_Delay(2);


    WriteData(0x80);

/*定位*/
    HAL_GPIO_WritePin(GPIOA,RS_Pin,GPIO_PIN_RESET);
    HAL_GPIO_WritePin(GPIOA,RW_Pin,GPIO_PIN_RESET);
    HAL_GPIO_WritePin(GPIOA,E_Pin,GPIO_PIN_RESET);

    HAL_GPIO_WritePin(GPIOA,RS_Pin,GPIO_PIN_RESET);
    HAL_GPIO_WritePin(GPIOA,RW_Pin,GPIO_PIN_RESET);
    HAL_GPIO_WritePin(GPIOA,E_Pin,GPIO_PIN_SET);
    __NOP();
    HAL_GPIO_WritePin(GPIOA,E_Pin,GPIO_PIN_RESET);
    HAL_Delay(2);


    WriteData('W');

/*写入字符“W”*/
    HAL_GPIO_WritePin(GPIOA, RS_Pin, GPIO_PIN_SET);
    HAL_GPIO_WritePin(GPIOA, RW_Pin, GPIO_PIN_RESET);
    HAL_GPIO_WritePin(GPIOA, E_Pin, GPIO_PIN_RESET);

    HAL_GPIO_WritePin(GPIOA,RS_Pin,GPIO_PIN_SET);
    HAL_GPIO_WritePin(GPIOA,RW_Pin,GPIO_PIN_RESET);
    HAL_GPIO_WritePin(GPIOA,E_Pin,GPIO_PIN_SET);
    __NOP();
    HAL_GPIO_WritePin(GPIOA,E_Pin,GPIO_PIN_RESET);
    HAL_Delay(2);

懂了噻:) 

 

 

 

 

相关文章:

  • 如何做亚马逊备案的网站/seo培训班 有用吗
  • 传奇网站传奇/赣州seo外包
  • 公安备案 个人网站/seo怎么推排名
  • 斐讯路由器做网站映射/网络营销的概念和特点
  • 电信公司网络维护/合肥百度网站排名优化
  • 商城建设网站公司/东莞有限公司seo
  • 项目管理之变更管理
  • 互联网摸鱼日报(2022-11-03)
  • 2023转行要趁早!盘点网络安全的岗位汇总
  • 阿里巴巴算力攻坚新突破:阿里云20%新增算力将使用自研CPU
  • 计算机毕业设计(附源码)python-新型冠状病毒防控咨询网站
  • Vue3全网最细介绍使用
  • 【Transformers】第 5 章:微调文本分类的语言模型
  • 【变化检测】国土资源典型要素变化遥感智能监测关键技术及应用
  • CG-26 土壤热通量传感器 浅谈热通量的工作原理
  • 人工智能数学课高等数学线性微积分数学教程笔记(目录)
  • 146. 通过 SAP UI5 ODataModel API 在 JavaScript 代码里访问 OData 元数据
  • StatefulSet:有状态应用部署