系列文章目录
留空
前言
自用
一、设置CubeMX
首先,打开CubeMX
。
然后,搜索我们使用的单片机STM32G431RBT6
,会显示两个,选第一个并双击
就好啦!
下面,就是设置部分了。
(1)设置RCC
和SYS
RCC
— 在High Speed Clock(HSE)
选项中 — 选择Crystal/Ceramic Resonator
。启用外部高速时钟源。
SYS
—Debug
选择使用的调试接口 —Serial Wire
。
(2)"Clock Configuration"设置时钟
- 我们外部晶振为
24
MHz - 使用外部晶振
HSE
,HSE的输出经过PLLCLK
(相位锁定环)进行频率倍增。 - 系统总线时钟,设置为
80
MHz。
(3)"Project Settings"项目管理器
Project Name
这里输入项目的名字,为8th。Project Location
设置项目文件的存储位置,为E:\Study\STM32\LANQIAO。Toolchain / IDE
选择目标工具链或集成开发环境(IDE),MDK-ARMMin Version
所用工具链的版本,V5
- 代码生成设置 (Code Generator) — 勾选
Generate peripheral initialization as a pair of .c/.h files per peripheral
。选择此选项将为每个外设生成一对.c和.h文件。
以上,所有的基础设置完成。
(4)赛点包中LCD的CubeMX设置
我个人习惯直接在CubeMX
设置LCD
的引脚,如果直接复制赛点包中main.c
中LCD初始化代码,下面的就不需要设置了。
(1)可以对照着原理图,进行设置。
(2)也可以对着赛点包中main.c
中LCD初始化代码,进行设置。
/**
* @brief GPIO Initialization Function
* @param None
* @retval None
*/
static void MX_GPIO_Init(void)
{
GPIO_InitTypeDef GPIO_InitStruct = {0};
/* GPIO Ports Clock Enable */
__HAL_RCC_GPIOC_CLK_ENABLE();
__HAL_RCC_GPIOF_CLK_ENABLE();
__HAL_RCC_GPIOA_CLK_ENABLE();
__HAL_RCC_GPIOB_CLK_ENABLE();
/*Configure GPIO pin Output Level */
HAL_GPIO_WritePin(GPIOC, GPIO_PIN_13 | GPIO_PIN_14 | GPIO_PIN_15 | GPIO_PIN_0
| GPIO_PIN_1 | GPIO_PIN_2 | GPIO_PIN_3 | GPIO_PIN_4
| GPIO_PIN_5 | GPIO_PIN_6 | GPIO_PIN_7 | GPIO_PIN_8
| GPIO_PIN_9 | GPIO_PIN_10 | GPIO_PIN_11 | GPIO_PIN_12, GPIO_PIN_RESET);
/*Configure GPIO pin Output Level */
HAL_GPIO_WritePin(GPIOA, GPIO_PIN_8, GPIO_PIN_RESET);
/*Configure GPIO pin Output Level */
HAL_GPIO_WritePin(GPIOB, GPIO_PIN_5 | GPIO_PIN_8 | GPIO_PIN_9, GPIO_PIN_RESET);
/*Configure GPIO pins : PC13 PC14 PC15 PC0
PC1 PC2 PC3 PC4
PC5 PC6 PC7 PC8
PC9 PC10 PC11 PC12 */
GPIO_InitStruct.Pin = GPIO_PIN_13 | GPIO_PIN_14 | GPIO_PIN_15 | GPIO_PIN_0
| GPIO_PIN_1 | GPIO_PIN_2 | GPIO_PIN_3 | GPIO_PIN_4
| GPIO_PIN_5 | GPIO_PIN_6 | GPIO_PIN_7 | GPIO_PIN_8
| GPIO_PIN_9 | GPIO_PIN_10 | GPIO_PIN_11 | GPIO_PIN_12;
GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
GPIO_InitStruct.Pull = GPIO_NOPULL;
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
HAL_GPIO_Init(GPIOC, &GPIO_InitStruct);
/*Configure GPIO pin : PA8 */
GPIO_InitStruct.Pin = GPIO_PIN_8;
GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
GPIO_InitStruct.Pull = GPIO_NOPULL;
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
/*Configure GPIO pins : PB5 PB8 PB9 */
GPIO_InitStruct.Pin = GPIO_PIN_5 | GPIO_PIN_8 | GPIO_PIN_9;
GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
GPIO_InitStruct.Pull = GPIO_NOPULL;
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
}
我推荐第二种,更方便!
- 设置成
GPIO_Output
模式:PC0到PC15、PA8、PB5、PB8、PB9。
- 点击
GPIO
,检查一下,其他默认;
最后的最后,点击Generate Code
生成代码,再点击Open Project
打开工程。
二、复制赛点的"LCD"文件到自己工程中
首先,打开我们刚刚生成代码的文件夹
然后,打开赛点包的
LCD_Driver
— MDK5_LCD_HAL
。
- 把
lnc
中的fonts.h
和lcd.h
,复制到我们自己工程文件夹的BSP
中。
- 把
src
中的lcd.c
,复制到我们自己工程文件夹的BSP
中。
完成!
三、Keil5
刚打开时,我们的工程是这样的。
(1)点击小魔术棒
-
点击
Target
— 勾选Usb MircorLB
-
点击
C/C++
—Include Path
—...
然后,把我们的BSP
文件添加进去,完成后点击OK
。
-
点击
Debug
—CMSIS-DAP Debugger
—Setting
—Flash Download
— 勾选Reset and Run
,然后确定。
(2)把BSP添加到工程
- 点击
红绿白小块
,添加文件
把BSP
中lcd.c
、fonts.h
和lcd.h
添加。
(3)LCD显示代码
把赛点包中main.c
中主函数的显示的示例代码复制到自己工程相同的位置。
MX_GPIO_Init();
/* USER CODE BEGIN 2 */
LCD_Init();
HAL_Delay(100);
/* USER CODE END 2 */
/* Infinite loop */
/* USER CODE BEGIN WHILE */
LCD_SetBackColor(Black);
LCD_SetTextColor(White);
LCD_Clear(Black);
HAL_Delay(100);
LCD_DisplayStringLine(Line4, (unsigned char *)" Hello,world. ");
HAL_Delay(1000);
while (1)
记得加上头文件
/* Private includes ----------------------------------------------------------*/
/* USER CODE BEGIN Includes */
#include "lcd.h"
/* USER CODE END Includes */
上电下载测试!然后就完成啦!!终于!!
步骤总结
一、CubeMX设置
- 选择单片机:
STM32G431RBT6
。 - 配置时钟:
RCC
:HSE
选择Crystal/Ceramic Resonator
。SYS
:调试接口选Serial Wire
。- "Clock Configuration"设置时钟,外部晶振
24 MHz
,系统时钟80 MHz
。
- 项目管理:
- 设置项目名、路径。工具链选
MDK-ARM V5
。 - 勾选
Generate peripheral initialization as a pair of .c/.h files
。
- 设置项目名、路径。工具链选
- LCD引脚配置:
- 对照原理图或赛点包代码,设置为
GPIO_Output
。
- 对照原理图或赛点包代码,设置为
- 生成代码:点击
Generate Code
,然后Open Project
。
二、复制LCD文件
- 从赛点包复制
fonts.h
、lcd.h
和lcd.c
到自己工程的BSP
文件夹。
三、Keil5设置
- 魔术棒设置:
Target
:勾选Usb MicroLB
。C/C++
:添加BSP
到Include Path
。Debug
:选择CMSIS-DAP Debugger
,勾选Reset and Run
。
- 添加文件:将
BSP
中的lcd.c
、fonts.h
和lcd.h
添加到工程。 - LCD显示代码:
- 复制赛点包
main.c
中的LCD显示的示例代码。 - 添加头文件
#include "lcd.h"
。
- 复制赛点包