上班摸鱼肝系列:梁山派开发板系列---14.驱动屏幕(一)

说明:

        在这一期之前我们对梁山派GD32F470开发板上的部分外设过了一遍,实际上还有很多的外设我还没用到,那么本期我就要开始对这个梁山派的游戏机扩展板做文章了我将一步一步的实现这个游戏机的项目,无论是用过的还是我之前没学过的知识点,我都能从这个过程中获得新的进步!

        那么这一期就先从驱动屏幕开始,我尽量将一步一步的还原每个实现的步骤。驱动屏幕,首先第一步,选型,这里我们扩展板上已经选好了,下面也会对这个屏幕简单介绍,第二步,我们屏幕到手后,就要去拿到屏幕的驱动源码进行移植,第三步就是修改错误,使其能适配我们的GD32单片机,第四步修改我们的初始化,配置io等等,第五步编译下载点亮屏幕看现象。那么我们开始吧!


文章目录

  • 系列文章目录
  • 一、屏幕选型
    • 1、为什么选择这款屏幕?
    • 2、屏幕产品参数
  • 二、屏幕驱动移植
    • 1、下载技术资料
    • 2、移植代码
    • 3、添加.c和.h到工程
  • 三、修改错误
  • 四、修改初始化IO
  • 五、现象
  • 总结

提示:以下部分代码如有更有解可在评论区一起沟通交流哈。

一、屏幕选型

1、为什么选择这款屏幕?

        答:性价比高、封装尺子、SPI驱动代码好写、电路简单、像素密度高、显示清晰和圆角设计等等优点......

 注:这里没有任何打广告的意思哈...

2、屏幕产品参数

二、屏幕驱动移植

1、下载技术资料

        我们可以到店铺下面找到对应的资料链接,一般来说商家都会提供这种资料给我们使用的:

 打开我们下载下来的压缩包:

 可以看到里面的资料是非常齐全的!其中程序源码就是我们需要的驱动代码!

2、移植代码

        打开程序源码我们可以看到有许多的适配不同板子的源码例程,在这里我们需要用的是407的这个例程,因为我们的GD32F470和STM32F407是一样的Cortex-M4内核,移植起来方便很多,当然了,其他也是能用的,只是相同内核的情况下,肯定选择最优解啦:

        我们进到这个407的例程文件夹, 在这个HARDWARE文件夹(硬件驱动文件夹)中我们可以看到一个LCD的文件夹,这就是我们想要的驱动代码!

 

        接下来我们将这个LCD驱动复制到我们自己的项目的Hardware文件夹中,注意在这里我们自己的工程最起码的外设是要有的,在这里我就将上一期的代码复制一份来接着写了:

 3、添加.c和.h到工程

这两步在前面工程搭建等等前几期都有说明了,应该是非常熟悉的了:

打开已经添加驱动的工程,将LCD里的两个.c文件添加进来: 

接下来是添加.h文件:

        添加完.c和.h文件后,我们编译一下工程,会发现有些地方需要我们修改,接下来我们就来修改错误就好了:

 三、修改错误

编译完之后会报两个错误,意思是找不到sys.h文件,我们跳过去看一下:

 这里是因为我们需要改成我们自己的 #include "gd32f4xx.h",我们来修改一下看看:

        哈哈哈我们可以看到,错误变多了,足足31个错误,别慌,我们仔细看,先前的头文件错误改成 #include "gd32f4xx.h" 不报错了,我们来看看它报的是什么错误可以看到基本都是说u8、u16和u32没有定义,这是因为在GD32中,对应的写法应该是uint8_t、uint16_t和uint32_t,我们只需要全部替代过来正确的写法就好了,这里我们使用ctrl+F来进行全局替代会方便很多:

ctrl+F进行全局替代:

 我们再来编译一下:

        可以看到错误只剩两个了,看一下它说是什么错误,这不就和上面一样嘛,跳过去,改成我们自己工程的#include "gd32f4xx.h" 就好啦,我们再次编译,可以发现又是一堆错误哈哈哈,不过和上面的定义错误是一个错误,我们继续改就好了,接下来再次编译:

         可以看到还有两个错误,说是找不到这个 delay.h 的头文件,我们只需要将它替换成

#include "systick.h"即可,这是因为在我们GD32中systick.h里有我们需要的延时函数,编译,会发现还是u8,u16,u32未定义的问题,我们继续将他们修改过来,或者我们可以直接在这里将这三个烦人的东西重新定义一下:

        可以看到,报错是这一坨东西,那是因为例程是STM的库函数,我们的是GD32的这里我们先将他们全部注释掉包括宏定义全部注释掉:        

        我们再来编译一下,此时只剩一个错误,意思是delay_ms没有定义,在我们GD32工程中,应该叫做delay_1ms,对此,我们进行替换即可,或者直接进行宏定义替换:

 编译,0报错:

 四、修改初始化IO

        请留意下期!


总结

        这一期我们介绍了屏幕选型、驱动移植以及编译后遇到的错误该如何解决,这是我们应该要掌握的从元器件的选型,为什么选这个元器件,然后从哪获取它的驱动代码,如何移植代码,如何修改错误,这是一个完整的流程,当然了,我们还没完成,我们还需要修改初始化io,这是因为我们两边的库函数不一样,下一期我们将进行这个步骤,逐步完成屏幕的点亮!

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小邓上班摸鱼肝

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值