• 已解决 73482 个问题
  • 已帮助 5993 位优秀工程师

GPIO口赋值方式对高低位的影响

Linux小学童 2020-07-19 浏览量:481

用STM32驱动160160液晶,将液晶的D0-D7数据线定义到GPIOE的低8位上,如下

#define LCD160160_DATA  GPIOE->ODR;

液晶的另外2个控制引脚RS和WR定义到GPIOE的Pin8和Pin9上,如下

#define  RS_H()        GPIOE->BSRR = GPIO_Pin_8

#define  RS_L()        GPIOE->BRR = GPIO_Pin_8

#define  WR_H()        GPIOE->BSRR = GPIO_Pin_9

#define  WR_L()        GPIOE->BRR = GPIO_Pin_9


 在对液晶的配置中,需要向寄存器写入命令和数据,因为D0-D7在GPIOE的低8位上,所以我数据和命令在口线上的赋值如下

LCD160160_DATA = cmd;

LCD160160_DATA = data;

其中cmd和data都是单字节数据,即8位数据

上述方式会影响到GPIOE的Pin8和Pin9的状态吗。因为现在驱动液晶始终不能显示内容,不知道这样赋值是不是会改变其他口线上的状态,也就等于影响了RS和WR的高低,从而使显示不正常。​


0 0 收起

我来回答

上传资料:
选择文件 文件大小不超过15M(格式支持:doc、ppt、xls、pdf、zip、rar、txt)
最佳答案
  • 感觉你的程序是有问题的,起码 设置关系逻辑上 就有问题。

    你的接口应该是输出接口,但你rs和wr高低位 逻辑感觉是输入端口的设置。

    • 发布于 2020-07-19
    • 举报
    • 评论 0
    • 0
    • 0

其他答案 数量:2
  • 理论上是不会的,这个你可以在硬件调试环境下,直接看下GPIO相关寄存器的值
    • 发布于2020-07-19
    • 举报
    • 评论 0
    • 0
    • 0

  • 你看一下你的寄存器是不是支持位操作,有一些不支持位操作,你要使用掩码进行操作的。
    • 发布于2020-07-20
    • 举报
    • 评论 0
    • 0
    • 0

相关问题

问题达人换一批

GPIO口赋值方式对高低位的影响