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

驱动并口数据液晶,D0-D7一定要接连续的GPIO口吗

great_CC 2020-09-06 浏览量:765

使用STM32驱动160160液晶,数据线是D0-D7,8位数据口;液晶这8位数据口要接到连续的GPIO口上吗,比如GPIOA的PIN0-PIN7,或者高8位?

如果是接到不连续的GPIO上,如何给D0-D7赋值?

0 0 收起

我来回答

上传资料:
选择文件 文件大小不超过15M(格式支持:doc、ppt、xls、pdf、zip、rar、txt)
最佳答案
  • 可以写一个函数函数里面对输入的八位数按位赋值给IO口,方便操作,就拿PA3;PA4;PA5;PB7;PB8;PB9;PB10;PB11这几个IO口举例,函数如下

    void eightin(unsigned char in)
    {
    PAin(3)=(in&(0x01))>>0;//第零位
    PAin(4)=(in&(0x02))>>1;
    PAin(5)=(in&(0x04))>>2;
    PBin(7)=(in&(0x08))>>3;
    PBin(8)=(in&(0x10))>>4;
    PBin(9)=(in&(0x20))>>5;
    PBin(10)=(in&(0x40))>>6;
    PBin(11)=(in&(0x80))>>7;//第八位
    }
    函数的输入的参数in是一个八位的数,也就是要给PA3;PA4;PA5;PB7;PB8;PB9;PB10;PB11​赋值的​数。

    函数我没有运行,但是想法应该没问题。

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

其他答案 数量:7
  • 可以连接到不连续的io,只是驱动起来比较麻烦,需要每个io单独赋值数据位,也就是io的位带操作办法,这样会比连续io刷新率慢8倍以上,如果个别连续的还可以快一下,所以尽量使用连续的,或者说大部分管脚连续也是可以的
    • 发布于2020-09-07
    • 举报
    • 评论 0
    • 0
    • 0

  • 这个不用连续,不过一般来说如果有连续的会更方便,甚至效率更高,因为一般说来连续的更可能对应同一个内部寄存器,赋值、读取甚至可以直接按char甚至多个char为单位来处理。

    如果不能连续,就只能分别按bit去处理,编码麻烦,数据处理的效率也会更低(很多时候会用到更多处理步骤)

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

  • 可以不连续的。通过单独给D0-D7的口线连续单独位赋值也是可以的,不过速度上肯定不如在同一个口上,一下子赋值进去快。

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

  • 不一定,但是接到同一组IO上面赋值会比较容易
    • 发布于2020-09-07
    • 举报
    • 评论 0
    • 0
    • 0

  • 你要用GPIO模块驱动的话,是的。

    还可以直接连接到FSMC上,并不是连续的,但是可以使用并口外设

    • 发布于2020-09-08
    • 举报
    • 评论 0
    • 0
    • 0

  • 如果是STM32的话,是不用的,要连接到FSMC的接口上。接在GPIO上,只能 是模拟并口的时序了
    • 发布于2020-09-21
    • 举报
    • 评论 0
    • 0
    • 0

  • 可以不接,不过速度会慢,而且控制起来比较麻烦,连续的话控制比较简单
    • 发布于2020-09-29
    • 举报
    • 评论 0
    • 0
    • 0

相关问题

问题达人换一批

驱动并口数据液晶,D0-D7一定要接连续的GPIO口吗