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

1.蓝桥杯嵌入式速通之工程新建&LCD工程移植(VSCode版)

文章目录

  • 前言
  • 一.新建工程
    • 1.用CubeMx生成初始化代码
    • 2.工程文件夹中的配置
    • 3.keil5中的配置
    • 4.用VSCode打开工程
  • 二、LCD工程移植
    • 通过lcd.c中的函数控制显示屏显示

前言

为了避免不必要的bug,建议大家尽可能使用最新版的CubeMx6.10(ST官网下载,网址:https://www.st.com/zh/development-tools/stm32cubemx.html)且keil5的版本尽量用5.33及以上.

一.新建工程

1.用CubeMx生成初始化代码

打开CubeMx,新建项目.
1.蓝桥杯嵌入式速通之工程新建&LCD工程移植(VSCode版),在这里插入图片描述,第1张
在搜索框中输入关键词G431GBT6,选择STM32G431RBT6.
1.蓝桥杯嵌入式速通之工程新建&LCD工程移植(VSCode版),在这里插入图片描述,第2张
选好芯片后点击开始项目.
1.蓝桥杯嵌入式速通之工程新建&LCD工程移植(VSCode版),在这里插入图片描述,第3张
进入芯片所在页面后首先点击项目管理,然后给工程起个名字,选择工程存放的位置,编译工具链选择MDK,最小版本建议选择5.32.
1.蓝桥杯嵌入式速通之工程新建&LCD工程移植(VSCode版),在这里插入图片描述,第4张
然后点击Code Generator,选择复制所需文件(加快初始化代码生成速度),为每一外设生成一对.c/.h文件(工程管理需要).
1.蓝桥杯嵌入式速通之工程新建&LCD工程移植(VSCode版),在这里插入图片描述,第5张
然后回到芯片所在页面,选择System Core.
1.蓝桥杯嵌入式速通之工程新建&LCD工程移植(VSCode版),在这里插入图片描述,第6张
由于外部时钟的精度比内部时钟的精度遥遥领先,因此我们选择使用外部时钟。
1.蓝桥杯嵌入式速通之工程新建&LCD工程移植(VSCode版),在这里插入图片描述,第7张
既然打开了外部时钟,自然要配置一下时钟设置。参考官方的配置,我们选择将外部时钟调整为24MHZ,选择器选择HSE(打开外部时钟输入通道让我们选择的时钟能作为时钟源输入)和PLL(此处相当于一个倍频器),修改HCLK为80MHZ后敲回车让CubeMx帮我们把其他参数配置好.
1.蓝桥杯嵌入式速通之工程新建&LCD工程移植(VSCode版),在这里插入图片描述,第8张
这一切配置完成以后,点击生成代码即可。
1.蓝桥杯嵌入式速通之工程新建&LCD工程移植(VSCode版),在这里插入图片描述,第9张

2.工程文件夹中的配置

这里建议提前在MDK-ARM文件夹的同一级文件目录下新建一个bsp文件夹用于存放外设驱动程序,并在其中新建Inc(用于存放外设驱动的.h文件)和Src(用于存放外设驱动的.c文件)文件夹.
1.蓝桥杯嵌入式速通之工程新建&LCD工程移植(VSCode版),在这里插入图片描述,第10张
1.蓝桥杯嵌入式速通之工程新建&LCD工程移植(VSCode版),在这里插入图片描述,第11张

3.keil5中的配置

用keil5打开新建好的工程(注:需先下好器件支持包),选择图标为扳手的工具.
1.蓝桥杯嵌入式速通之工程新建&LCD工程移植(VSCode版),在这里插入图片描述,第12张
将编码更改为GB2312(为了使一会移植的官方文件时不出现乱码的情况).
1.蓝桥杯嵌入式速通之工程新建&LCD工程移植(VSCode版),在这里插入图片描述,第13张
然后点击魔术棒工具.
1.蓝桥杯嵌入式速通之工程新建&LCD工程移植(VSCode版),在这里插入图片描述,第14张
将编译器选择为AC6(显著提升编译速度).
1.蓝桥杯嵌入式速通之工程新建&LCD工程移植(VSCode版),在这里插入图片描述,第15张
选择C/C++选项,将要用到的.h文件所在路径包含进入工程的搜索路径内.
1.蓝桥杯嵌入式速通之工程新建&LCD工程移植(VSCode版),在这里插入图片描述,第16张
1.蓝桥杯嵌入式速通之工程新建&LCD工程移植(VSCode版),在这里插入图片描述,第17张
点击Debug,选择烧录器为DAP,然后点击Settings.
1.蓝桥杯嵌入式速通之工程新建&LCD工程移植(VSCode版),在这里插入图片描述,第18张
点击Flash Download,点击Add添加STM32G4XX的128 Flash文件.
1.蓝桥杯嵌入式速通之工程新建&LCD工程移植(VSCode版),在这里插入图片描述,第19张
然后依次点击OK退出设置界面。至此完成了工程编译和烧录的配置工作,点击编译,编译成功后将电脑与开发板连接,开发板上电后点击烧录,检查编译和烧录是否正常。
1.蓝桥杯嵌入式速通之工程新建&LCD工程移植(VSCode版),在这里插入图片描述,第20张

4.用VSCode打开工程

VSCode中需先下载好EIDE插件.
1.蓝桥杯嵌入式速通之工程新建&LCD工程移植(VSCode版),在这里插入图片描述,第21张

下载好该插件后点击插件图标,选择导入项目(注:每次用CubeMx重新生成代码后,为了使得VSCode中的工作区代码与新生成的代码同步,都要再次导入项目).
1.蓝桥杯嵌入式速通之工程新建&LCD工程移植(VSCode版),在这里插入图片描述,第22张
进入对应的文件目录中选择目标文件后点击导入.
1.蓝桥杯嵌入式速通之工程新建&LCD工程移植(VSCode版),在这里插入图片描述,第23张
为方便工程文件管理,不要选择将工作区置于MDK-ARM目录下.
1.蓝桥杯嵌入式速通之工程新建&LCD工程移植(VSCode版),在这里插入图片描述,第24张
而是选择MDK-ARM文件夹所在的目录.
1.蓝桥杯嵌入式速通之工程新建&LCD工程移植(VSCode版),在这里插入图片描述,第25张
选择完毕后点击继续即可进入工作区.

1.蓝桥杯嵌入式速通之工程新建&LCD工程移植(VSCode版),在这里插入图片描述,第26张
这个时候回到资源管理器中会发现在对应的文件目录下生成了一个VSCode的工作区文件,关闭工程之后要重新打开工程,只需双击该文件即可.
1.蓝桥杯嵌入式速通之工程新建&LCD工程移植(VSCode版),在这里插入图片描述,第27张
双击打开工作区,点击EIDE插件图标,进入项目配置界面.
首先添加文件夹,从磁盘中选择刚刚新建好的bsp文件夹.
1.蓝桥杯嵌入式速通之工程新建&LCD工程移植(VSCode版),在这里插入图片描述,第28张
然后点击芯片支持包处的➕号,从磁盘中选择选手资料包中的器件支持包安上.
1.蓝桥杯嵌入式速通之工程新建&LCD工程移植(VSCode版),在这里插入图片描述,第29张
1.蓝桥杯嵌入式速通之工程新建&LCD工程移植(VSCode版),在这里插入图片描述,第30张
然后进一步确认是否为型号STM32G431RBTX的芯片支持包
1.蓝桥杯嵌入式速通之工程新建&LCD工程移植(VSCode版),在这里插入图片描述,第31张
接着点击构建配置,选择作为AC6编译器,同时别忘了右键编译器配置,填入AC6编译器所在路径(一般位于keil5中ARM中的ARMCLANG目录下).
1.蓝桥杯嵌入式速通之工程新建&LCD工程移植(VSCode版),在这里插入图片描述,第32张
1.蓝桥杯嵌入式速通之工程新建&LCD工程移植(VSCode版),在这里插入图片描述,第33张
1.蓝桥杯嵌入式速通之工程新建&LCD工程移植(VSCode版),在这里插入图片描述,第34张
然后点击RAM/FLASH中的编译按键.
1.蓝桥杯嵌入式速通之工程新建&LCD工程移植(VSCode版),在这里插入图片描述,第35张
检查RAM和ROM的相关地址设置是否如下图所示.
1.蓝桥杯嵌入式速通之工程新建&LCD工程移植(VSCode版),在这里插入图片描述,第36张
接下来是烧录器配置.
选择OpenOCD.
1.蓝桥杯嵌入式速通之工程新建&LCD工程移植(VSCode版),在这里插入图片描述,第37张
芯片配置中选择修改.
1.蓝桥杯嵌入式速通之工程新建&LCD工程移植(VSCode版),在这里插入图片描述,第38张
键入g4,选择stm32g4的cfg文件.
1.蓝桥杯嵌入式速通之工程新建&LCD工程移植(VSCode版),在这里插入图片描述,第39张
然后选择修改接口配置,选择dap-v1.
1.蓝桥杯嵌入式速通之工程新建&LCD工程移植(VSCode版),在这里插入图片描述,第40张
最后检查头文件包含目录中是否含有bsp文件夹中的Inc文件夹,若没有包含则点击➕进行添加。
1.蓝桥杯嵌入式速通之工程新建&LCD工程移植(VSCode版),在这里插入图片描述,第41张
至此,项目在VSCode工作区中的配置大功告成.
大家打开main.c文件后,可以点击编译和烧录试试效果.
1.蓝桥杯嵌入式速通之工程新建&LCD工程移植(VSCode版),在这里插入图片描述,第42张
注:如果烧录失败,则关掉板子上的电源,重新打开电源后,即可烧录;烧录时出现额外擦除的警告是正常的,不必理会.

二、LCD工程移植

在选手资料包(从官方下载)中,官方提供了LCD例程.
1.蓝桥杯嵌入式速通之工程新建&LCD工程移植(VSCode版),在这里插入图片描述,第43张
选择HAL库版本的驱动文件打开.
1.蓝桥杯嵌入式速通之工程新建&LCD工程移植(VSCode版),在这里插入图片描述,第44张
打开其中的Inc和Src文件,把Inc中的fonts.h和lcd.h文件放入bsp中的Inc中,把Src中的lcd.c文件放入bsp中的Src中.
1.蓝桥杯嵌入式速通之工程新建&LCD工程移植(VSCode版),在这里插入图片描述,第45张1.蓝桥杯嵌入式速通之工程新建&LCD工程移植(VSCode版),在这里插入图片描述,第46张
1.蓝桥杯嵌入式速通之工程新建&LCD工程移植(VSCode版),在这里插入图片描述,第47张
然后我们在main.c中便可以使用lcd.c中定义的函数了,如下图所示.
1.蓝桥杯嵌入式速通之工程新建&LCD工程移植(VSCode版),在这里插入图片描述,第48张
当然,别忘记包含lcd.h的头文件和进行lcd初始化
1.蓝桥杯嵌入式速通之工程新建&LCD工程移植(VSCode版),在这里插入图片描述,第49张
1.蓝桥杯嵌入式速通之工程新建&LCD工程移植(VSCode版),在这里插入图片描述,第50张
然后编译下载一气呵成,试试效果吧.

通过lcd.c中的函数控制显示屏显示

1.清屏为对应颜色,如清屏为黑色.

LCD_Clear(black)

2.设置背景色,如设置背景色为黑色.

LCD_SetBackColor(Black);

3.设置前景色,如设置前景色为白色

LCD_SetTextColor(White);

4.在对应行的对应位置显示内容,如,在第一行(对应Line0)的第9—12列(1-8列为空格)显示test.

LCD_DisplayStringLine(Line0, (unsigned char*)"        text");

https://www.xamrdz.com/web/2hk1849115.html

相关文章: