STM32H750学习笔记(1.0)——创建空工程

本文详细介绍了如何创建一个基于STM32H750的KEIL工程,包括设置启动文件、HAL库、硬件库的组织结构,以及工程配置,如晶振设置、编译器选项和预编译宏定义等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

先附上STM32H750的启动文件:

提取码:eo8k

站内下载

创建好的空工程:

提取码:7q21


创建空文件夹

首先创建一个空文件夹,用于存放所有的文件。

文件夹里创建五个空文件夹,分别是:Start(启动文件)、Drivers(HAL库文件)、Hardware(自己写的硬件库)、OBJ(编译输出的文件,HEX文件)、User(工程文件,project)

 Start文件

启动文件,库文件这些都可以在官网找到,本文也附带链接。

Drivers文件夹

drivers文件夹放HAL库的源文件和头文件,可以直接下载后放进去,里面有一个STM32H7xx_HAL_Driver文件夹,这个文件夹里面有Inc和Src两个文件夹,其中Inc是存放头文件,Src是存放源文件。

而标准库的drivers没有分类,直接把头文件和源文件都放在了drivers文件夹下。


KEIL创建新工程

新工程目录选择刚才创建好的User文件夹,名字可以任取,可以取project

选择STM32H750VBTx,具体型号看芯片

 启动文件把CMSIS的CORE勾上(虽然我不知道这是干嘛的,下次学习)


添加文件

按照刚刚创建好的文件夹,把名字附上,分好组。

 

 

在分组里添加文件,就在相应的文件夹下,并在User组里添加main.c和main.h文件

 

 

main.h头文件

#ifndef __MAIN_H
#define __MAIN_H

#ifdef __cplusplus
extern "C" {
#endif

/* Includes ------------------------------------------------------------------*/
#include "stm32h7xx_hal.h"


/* Exported functions prototypes ---------------------------------------------*/
void Error_Handler(void);


#ifdef __cplusplus
}
#endif

#endif /* __MAIN_H */

/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/

 main.c文件

#include "main.h"

int main(void)
{
	
	while(1)
	{
		
	}
	return 0;
}


配置

魔法棒打开工程配置

 晶振看具体芯片吧。

ARM Compiler可以选6的话编译不报错的话,就选6

Use MicroLIB可以重定向printf函数,可以不勾选


Outpu里,选择输出文件夹,选择刚才创建好的OBJ文件夹

Creat HEX file勾上,编译后才有HEX文件才能下载进单片机

Browse Information如果不勾选,在编写代码的时候就不能各种跳转,会比较麻烦,不过我用的是VS code编写代码,正常跳转

 


Define里给它预编译:

USE_HAL_DRIVER,STM32H750xx

在Include Paths里把最初创建好的文件夹,以及文件夹下的子文件夹都包含进去,头文件目录,这样在头文件定义的时候keil才能找到


如果是ST-link下载,记得把Reset and Run勾上,不然每次都得按复位键

 

至此,一个空工程就创建好了。

分组可以进行更细的划分,如果有需求。Hardware库留给自己放一些打包好的库文件,比如外设的初始化、使用等函数,以后用到时就可以直接复制。

### 数据库设计中的数据字典示例 在数据库设计过程中,创建数据字典是一项至关重要的工作。这不仅有助于理解各个数据项及其属性,还能够提高系统的可维护性和扩展性。 #### 1. 数据字典结构概述 数据字典通常包含以下几个部分: - **表名称 (Table Name)**:唯一标识每张表格的名字。 - **字段名称 (Field Name)**:描述该列所代表的信息。 - **数据类型 (Data Type)**:定义存储在此字段内的值的种类。 - **长度/精度 (Length/Precision)**:指定字符型或数值型字段的最大允许大小。 - **是否为空 (Nullable)**:指示此字段能否接受NULL值。 - **默认值 (Default Value)**:当未提供具体输入时自动填充到新记录中的预设值。 - **备注 (Remarks)**:用于解释特殊规则或其他需要注意的地方[^1]。 #### 2. MySQL 数据字典实例 对于MySQL这样的关系型数据库管理系统来说,可以利用SQL查询语句来构建一个简单的数据字典视图。下面是一个基于`INFORMATION_SCHEMA.COLUMNS`元数据表的例子,它会列出所有非空表的相关信息,并排除那些不符合条件的情况(比如表名为NULL)[^2]。 ```sql SELECT TABLE_NAME AS '表名称', COLUMN_NAME AS '字段名称', DATA_TYPE AS '数据类型', CHARACTER_MAXIMUM_LENGTH AS '长度/精度', IS_NULLABLE AS '是否为空', COLUMN_DEFAULT AS '默认值' FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_SCHEMA = 'your_database_name' AND TABLE_NAME IS NOT NULL; ``` 请注意,在实际应用中应当替换 `'your_database_name'` 为具体的数据库名称。 #### 3. 后台开发注意事项 为了保持代码的一致性和减少潜在错误的发生概率,在编写涉及数据库操作的应用程序逻辑时建议遵循一定的命名约定。例如,在Java Spring框架下实现RESTful API接口时,推荐使用特定前缀区分不同用途的对象变量。特别是针对集合类型的返回结果应统一命名为 `list`, 而单条记录的操作则采用 `data` 变量名[^3]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

天师电通电容爆破工程师

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

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

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

打赏作者

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

抵扣说明:

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

余额充值