写在前面:
由于时间的不足与学习的碎片化,写博客变得有些奢侈。
但是对于记录学习(忘了以后能快速复习)的渴望一天天变得强烈。
既然如此
不如以天为单位,以时间为顺序,仅仅将博客当做一个知识学习的目录,记录笔者认为最通俗、最有帮助的资料,并尽量总结几句话指明本质,以便于日后搜索起来更加容易。
标题的结构如下:“类型”:“知识点”——“简短的解释”
部分内容由于保密协议无法上传。
点击此处进入学习日记的总目录
2023.04.28
- 一、`STM32` 特点
- 1、什么是`stm32`
- (1)特点
- (2)优势
- 2、`Cortex`内核
- (1)架构
- (2)特点
- 3、`Cortex-M4`的低功耗设计
- 4、`Cortex-M`家族:`STM32`8大系列产品
- 5、`STM32`命名规则
- STM32与ARM之间的关系
- STM32系列产品的分类命名规则
- 二、开发环境搭建
- 1、`MDK`软件安装
- (1)`MDK`是什么?
- (2)下载
- (3)安装
- (4)注意事项
- 2、USB串口驱动安装
- (1)驱动下载
- (2)双击`SETUP.EXE`,点击安装
- 3、`ST-LINK`安装
- (1)双击`dpinst_amd64.exe`安装
- (2)安装成功
- 三、ST-LINK下载
- 1、硬件连接
- (1)`JTAG/SWD接口`
- (2)连接`ST-LINK`
- 2、配置`ST-LINK`
- (1)打开选项
- (2)修改仿真器
- (3)修改传输设置
- (4)修改程序编译设置
- (5)选择对应板子的工程
- (6)配置Flash菜单命令
- 四、新建寄存器工程模板
- 1、找到`STM32CubeFX`固件包(`X`为板子的型号)
- 2、新建工程目录,复制需要的文件到工程目录
- 3、把工程需要的文件添加到工程
- 4、在MDK中设置头文件存放路径
- 5、配置MDK:全局宏定义等
- 6、编写用户函数
- 7、添加`ALIENTEK`系统文件夹`SYSTEM `
- 8、导入到开发板
- 五、初学HAL库
- 1、固件库和寄存器的区别
- 2、HAL库包和关键文件介绍
- 六、新建HAL库工程模板
- 1、找到`STM32CubeFX`固件包(`X`为板子的型号)
- 2、新建工程目录,复制需要的文件到工程目录
- 3、新建工程
- 4、在MDK中设置头文件存放路径
- 5、配置MDK:全局宏定义等
- 6、编写用户函数
- 7、修改修改相关文件参数适配开发板
- 8、添加`ALIENTEK`系统文件夹`SYSTEM `
- 9、导入到开发板
- 七、`GPIO`基础知识
- 1、`GPIO`介绍
- 2、`GPIO`八种工作模式解释(`STM32`)
- 1)4种输入模式
- (1)浮空输入
- (2)上拉输入
- (3)下拉输入
- (4)模拟输入
- 2)4种输出模式(带上下拉)
- (1)开漏输出(带上拉或者下拉)
- (2)复用开漏输出(带上拉或者下拉)
- (3)推挽式输出(带上拉或者下拉)
- (4)复用推挽输出(带上拉或者下拉)
- 3)八种工作模式的区别
- (1)什么是推挽结构和推挽电路?
- (2)开漏输出和推挽输出的区别?
- (3)在STM32中选用怎样选择I/O模式?
- (4)STM32 设置实例:
- 4)IO 端口复用功能配置:
- 5)上电复位后IO口状态
- 3、开发板芯片的引脚常用参数
- 八、STM32CubeMX创建工程
- 1、安装
- 2、创建工程
一、STM32 特点
1、什么是stm32
新的基于ARM内核的32位MCU系列,内核为 Cortex-M 内核,是标准的ARM架构
(1)特点
- 高性能
- 低电压
- 低功耗
- 创新的内核以及外设
- 简单易用
- 自由
- 低风险
(2)优势
- 极高的性能: 主流的
Cortex内核。 - 丰富合理的外设,合理的功耗,合理的价格。
- 强大的软件支持:丰富的软件包。
- 全面丰富的技术文档。
- 芯片型号种类多,覆盖面广。
- 强大的用户基础:最先成功试水
CM4芯片的公司,积累了大批的用户群体,为其领先做铺垫。
2、Cortex内核
(1)架构
Cortex-M:微控制器,频率不是很高,常用于工业与控制,追求的是稳定可靠,寿命长;STM32作为代表经典系列:ARM7、ARM9、ARM 11
Cortex-M4采用ARMv7-ME架构
ARMv7架构定义了三大分工明确的系列:
- “A”系列:面向尖端的基于虚拟内存的操作系统和用户应用
- “R”系列:针对实时系统
- “M”系列:针对微控制器
Cortex-M3采用ARMv7-M架构,Cortex-M0采用ARMv6-M架构,Cortex-A5/A8采用ARMv7-A架构, 传统的ARM7系列采用的是ARMv4T架构。
ARMv7-ME架构是2007年以后才出现的架构,所以最近的板子一般都是采用Cortex内核。

(2)特点
- 浮点运算能力
- 增强的DSP处理指令

3、Cortex-M4的低功耗设计

4、Cortex-M家族:STM328大系列产品

5、STM32命名规则
STM32与ARM之间的关系
ARM是英国的一家芯片设计公司,其最成功的产品莫过于32位嵌入式CPU核——也就是我们现在介绍的ARM系列,而且最常用的是ARM7和ARM9,ARM公司主要提供IP(Intellectual Property core知识产权的核心)核,就是CPU的内核结构,只包括最核心的部分,而不是完整的处理器。ARM把这个核卖给各大半导体公司,如飞利浦、三星、ATMEL,甚至Intel等许多公司。ARM为了提高对于8位机市场的竞争力,推出了一系列 Cortex-M核,STM32就是将Cortex-M作为内核,通过一些外设等组合封装在一起就成了如今流行的32位嵌入式处理器。
ARMv7架构定义了三个面向不同应用场合的系列:
“A”系列:面向基于虚拟内存的操作系统和用户应用;
“R”系列:针对实时系统;
“M”系列:面向微控制器。

STM32系列产品的分类命名规则
ST:意法半导体,是一个公司的名字。
M:Microelectronics的缩写,表示微控制器,要注意微控制器和微处理器的区别。
32:32bit的意思,表示这是一个32bit的微控制器。

二、开发环境搭建
1、MDK软件安装
(1)MDK是什么?
RealView MDK是Keil公司开发的,为基于Cortex 、ARM7、ARM9等处理器设备提供的一个完整的开发环境。
MDK=Keil for ARM, 大家学习51的时候就会用到Keil C51。
(2)下载
MDK安装包
即下载Keil软件
官网下载地址:点击进入
(注:因为是非注册版,所以只能编译不超过32K的代码!!超过32K需要注册,请大家购买正版软件使用。)
点赞获取破解版:---- 破解软件下载密码9ju6 ----------安装教程
- 芯片支持包
即下载板子对应芯片支持包(pack文件)
官网下载地址:点击进入
(3)安装
- 找到
MDK的exe文件,右键管理员安装。

- 安装路径不能有空格和中文

- 四个框随便输入,然后
NEXT等待几分钟

- 安装完成后点击
FINISH,回到刚才文件目录,双击pack文件,继续等待几分钟的安装。

(注:不知道为什么第一次安装
pack文件显示无法创建文件夹,我打开一了下keil软件又关闭后又可以继续安装了,属实玄学)
(4)注意事项
- 安装路径为英文路径(不要是中文路径)。
- 系统用户名不能为中文。
- 多个版本
MDK(Keil)不要安装在同一目录。 MDK5需要加载芯片对应的支持包。
2、USB串口驱动安装
(1)驱动下载
下载链接: 点击进入
(2)双击SETUP.EXE,点击安装


如果出现安装失败或者预安装,将电脑与板子串口连接,当电脑显示有东西插进来了,再次安装,即可成功。

3、ST-LINK安装
(1)双击dpinst_amd64.exe安装

(2)安装成功

插上STLINK在设备管理器中可以看到驱动。

(注:若出错,请参考按照
STLINK调试补充教程.pdf。
由于此
三、ST-LINK下载
1、硬件连接
(1)JTAG/SWD接口

这是开发板板载的20针标准JTAG调试口,该JTAG口直接可以和ULINK、JLINK (V9或者以上版本) 或者STLINK等调试器(仿真器)连接,同时由于STM32支持SWD调试,这个JTAG口也可以用SWD模式来连接。
用标准的JTAG调试,需要占用5个IO口,有些时候,可能造成IO口不够用,而用SWD则只需要2个IO口,大大节约了IO数量,但他们达到的效果是一样的,所以我们强烈建议仿真器使用SWD模式。
(2)连接ST-LINK
将ST-LINK插在JTAG/SWD接口上,按照STM32笔记二所述方法安装驱动。
2、配置ST-LINK
(1)打开选项

(2)修改仿真器
- 点击
Debug - 选择
ST-Link Debugger - 将
Run to main()选中 - 点击
Settings


(3)修改传输设置
具体设置如图:

(4)修改程序编译设置
- 点击
sector erase(块擦除) - 右边的
编程、验证、复位和执行都要选上

(5)选择对应板子的工程

(6)配置Flash菜单命令
将Use Debug Driver(使用调试驱动程序)、Update Target before Debugging(调试前更新目标)两个选项选中

四、新建寄存器工程模板
1、找到STM32CubeFX固件包(X为板子的型号)
将固件包解压


2、新建工程目录,复制需要的文件到工程目录
-
新建一个文件夹,在文件夹中新建一个
USER文件夹和一个HEADER文件夹

-
在
USER文件夹里新建一个工程


-
按照自己板子的型号来选择创建类型

-
环境选项中选择
Cancel

-
会发现文件夹中出现了一些文件,其中
uvprojx是打开文件

3、把工程需要的文件添加到工程
- 在固件包中找到图片中的文件

- 将
startup_stm32f767xx.s放到USER文件夹中,
将其余h文件放到HEADER文件夹中。


4、在MDK中设置头文件存放路径
- 打开文件管理器,并将
启动文件(startup_stm32f767xx.s)导入


- 如果文件头像上有钥匙,就将
启动文件(startup_stm32f767xx.s)的只读属性取消勾选。



- 将头文件文件夹导入


注:软件不会沿着目录向下寻找,所以所有头文件必须精确到根目录)
5、配置MDK:全局宏定义等
根据不同的板子、不同的工程将不同的预编译全局宏定义标识符输入

6、编写用户函数
- 在
USER创建一个txt,把后缀改成.c

- 将.c文件导入



- 程序需注意的地方
(1)程序末尾必须要有回车
(2)由于程序默认在复位后运行SystemInit()函数,所以要么将SystemInit()函数注释掉,要么在main()函数前加一个空的SystemInit()函数。


7、添加ALIENTEK系统文件夹SYSTEM
- 在目标文件夹找到
SYSTEM文件夹,将其拷到USER和HEADER所在的文件夹。

- 将其内的c文件依次导入

- 将三个c文件的头文件坐在目录导入

- 编译–成功
8、导入到开发板
详情参考另一篇笔记(STM32笔记)三、ST-LINK下载
五、初学HAL库
1、固件库和寄存器的区别
固件库就是函数的集合(API),把寄存器操作封装起来。
STM32寄存器成百上千,一一操作非常不便。通过API把寄存器操作封装起来,这样大家不需要在记寄存器的每个位,而是直接操作固件库函数。简单方便很多。
固件库不是万能的。要想全面的掌握STM32,必须对寄存器有一定的了解,尤其是入门学习的时候。只有通过对寄存器有一个基本的了解,才能全面掌握了STM32各个功能外设的工作原理,才能更好的使用固件库。
对于寄存器,大家不需要去死记硬背寄存器名称以及每个位作用,大家只需要大致的了解大致的配置过程,这样在开发中遇到问题,就可以通过调试直接查看寄存器配置,从而找出问题所在。
2、HAL库包和关键文件介绍

(注:具体的库还需要以后在使用中慢慢熟悉,故本章笔记是一个不断补充的笔记。)
六、新建HAL库工程模板
1、找到STM32CubeFX固件包(X为板子的型号)
将固件包解压


2、新建工程目录,复制需要的文件到工程目录
-
新建一个文件夹,在文件夹中新建一个
USER文件夹、HALLIB文件夹(外设库文件夹,放置HAL库)、CORE文件夹(启动文件夹,放置内核)、OBJ文件夹(放置编译中介文件)

-
在固件包中找到图片中的文件

-
将
Inc(外设程序头文件)、Src(外设程序源文件)文件夹放到HALLIB文件夹中。

-
将
startup_stm32f767xx.s(启动文件)放到CORE文件夹中,

-
将
内核头文件文件放到CORE文件夹中。

-
将
顶层头文件、主头文件、源文件放到USER文件夹中。



3、新建工程
-
在
USER文件夹里新建一个工程


-
按照自己板子的型号来选择创建类型

-
环境选项中选择
Cancel

-
会发现文件夹中出现了一些文件,其中
uvprojx是打开文件

4、在MDK中设置头文件存放路径
- 打开文件管理器,并将
启动文件(startup_stm32f767xx.s)导入



-
如果文件头像上有钥匙,就将
启动文件(startup_stm32f767xx.s)的只读属性取消勾选。



-
将其余几个文件夹和其中的
.h、.c文件导入,文件类型选择All files。

其中有几个.c文件不需要,删除即可。

-
把带钥匙的文件取消
只读选项。



-
将头文件文件夹导入


注:软件不会沿着目录向下寻找,所以所有头文件必须精确到根目录)
5、配置MDK:全局宏定义等
- 根据不同的板子、不同的工程将不同的
预编译全局宏定义标识符输入

- 根据不同板子规格修改
外部晶振

- 勾选
生成HEX工程文件选项

- 设置
编译中间文件的存放目录

6、编写用户函数
-
将
main.h中#include "stm32f7xx_nucleo_144.h"删除

-
将
main.c函数中的内容删掉即可开始编程

-
程序需注意的地方
(1)程序末尾必须要有回车
7、修改修改相关文件参数适配开发板
- 在
HALLIB文件夹中打开stm32f7xx_hal.h下的stm32f7xx_hal_conf.h
找到#define HSE_VALUE,将后面的晶振改成板子的晶振,我是用的板子晶振是25MHz,所以把8000000U改成25000000U


- 在
HALLIB文件夹中打开stm32f7xx_hal.h
找到HAL_NVIC_SetPriorityGrouping(NVIC_PRIORITYGROUP_4);,将优先级分组从4改为2,即HAL_NVIC_SetPriorityGrouping(NVIC_PRIORITYGROUP_2);

8、添加ALIENTEK系统文件夹SYSTEM
- 在目标文件夹找到
SYSTEM文件夹,将其拷到USER和HEADER所在的文件夹。

- 将其内的c文件依次导入

- 将三个c文件的头文件坐在目录导入

- 编译–成功
9、导入到开发板
详情参考另一篇笔记(STM32笔记)三、ST-LINK下载
七、GPIO基础知识
1、GPIO介绍
GPIO(全称:General Purpose Input Output(通用输入输出端口))是一款端口扩展器,可以做输入也可以做输出。GPIO端口可通过程序配置成输入或者输出。
GPIO具有低功耗、小封装、低成本、布线简单等优点。
STM32的引脚中,有部分是做GPIO使用,部分是电源引脚/复位引脚/启动模式引脚/晶振引脚/调试下载引脚。
2、GPIO八种工作模式解释(STM32)
本小节图片引用自【STM32】GPIO工作原理(八种工作方式超详细分析,附电路图)
在Cortex-M3里,对于GPIO的配置种类有8种:
GPIO_Mode_AIN模拟输入GPIO_Mode_IN_FLOAtiNG浮空输入GPIO_Mode_IPD下拉输入GPIO_Mode_IPU上拉输入GPIO_Mode_Out_OD开漏输出GPIO_Mode_Out_PP推挽输出GPIO_Mode_AF_OD复用开漏输出GPIO_Mode_AF_PP复用推挽输出

1)4种输入模式
(1)浮空输入
GPIO_Mode_IN_FLOATING- 作用:
当输入一个高电平时,会检测到高电平;
当输入低电平时,会检测到低电平;
当无信号输入时,该端口的电平是不确定的。 - 原理:
浮空输入模式下,I/O端口的电平信号直接进入输入数据寄存器。
当引脚悬空(在无信号输入)的情况下,I/O的电平状态是不确定的,会因为各种各样的情况受到干扰。

- 参考资料:
【STM32】GPIO工作原理(八种工作方式超详细分析,附电路图)
GPIO工作模式
(2)上拉输入
GPIO_Mode_IPU- 作用:
当输入一个高电平时,会检测到高电平;
当输入低电平时,会检测到低电平;
当无信号输入时,会检测到高电平。 - 原理:
上拉输入模式下,I/O端口的电平信号直接进入输入数据寄存器。
当输入一个高电平时,VDD不产生影响;
当输入低电平时,上拉电阻压降为VDD,VDD不产生影响;
当无信号输入时,由于上拉电阻电流很小,所以降压很低,故会检测到高电平。

- 参考资料:
视频12分50秒
【STM32】GPIO工作原理(八种工作方式超详细分析,附电路图)
GPIO工作模式
(3)下拉输入
GPIO_Mode_IPD- 作用:
当输入一个高电平时,会检测到高电平;
当输入低电平时,会检测到低电平;
当无信号输入时,会检测到低电平。 - 原理:
下拉输入模式下,I/O端口的电平信号直接进入输入数据寄存器。
当输入一个高电平时,下拉电阻电流很小,VSS不产生影响;
当输入低电平时,VSS不产生影响;
当无信号输入时,下拉电阻两端皆为低电平,故会检测到低电平。

- 参考资料:
【STM32】GPIO工作原理(八种工作方式超详细分析,附电路图)
GPIO工作模式
(4)模拟输入
GPIO_Mode_AIN- 作用:
将不会检测到电平信息,会检测到完整的电压变化。 - 原理:
模拟输入模式下,I/O端口的模拟信号(电压信号,而非电平信号)直接模拟输入到外设模块,比如ADC模块等等。

- 参考资料:
GPIO工作模式
【STM32】GPIO工作原理(八种工作方式超详细分析,附电路图)
2)4种输出模式(带上下拉)
(1)开漏输出(带上拉或者下拉)
GPIO_Mode_Out_OD- 作用:
当设置输出为高电平时,端口输出高低电平由端口外的上拉或下拉决定。
当设置输出为低电平时,端口输出低电平。
当输出低电平以后,端口可以进行输入。 - 原理:
当设置输出为高电平的时候,N-MOS管处于关闭状态,此时I/O端口的电平就不会由输出的高低电平决定,而是由I/O端口外部的上拉或者下拉决定;
当设置输出的值为低电平的时候,N-MOS管处于开启状态,此时I/O端口的电平就是低电平。
同时,I/O端口的电平也可以通过输入电路进行读取;
注意,I/O端口的电平不一定是输出的电平,电平由上拉电阻控制。

- 参考资料:
GPIO工作模式
【STM32】GPIO工作原理(八种工作方式超详细分析,附电路图)
(2)复用开漏输出(带上拉或者下拉)
GPIO_Mode_AF_OD- 作用:
当外设输出为高电平时,端口输出高低电平由端口外的上拉或下拉决定。
当外设输出为低电平时,端口输出低电平。
当输出低电平以后,端口可以进行输入。 - 原理:
与开漏输出相同,只不过由外设控制高低电平。

- 参考资料:
GPIO工作模式
【STM32】GPIO工作原理(八种工作方式超详细分析,附电路图)
(3)推挽式输出(带上拉或者下拉)
GPIO_Mode_Out_PP- 作用:
当设置输出为高电平时,端口输出高电平。
当设置输出为低电平时,端口输出低电平。
当输出低电平以后,端口可以进行输入。 - 原理:
当设置输出为高电平的时候,P-MOS管处于开启状态,N-MOS管处于关闭状态,此时I/O端口的高电平由P-MOS管的VDD决定;
当设置输出的值为低电平的时候,N-MOS管处于开启状态,P-MOS管处于关闭状态,此时I/O端口的电平就是低电平。

- 参考资料:
GPIO工作模式
【STM32】GPIO工作原理(八种工作方式超详细分析,附电路图)
(4)复用推挽输出(带上拉或者下拉)
GPIO_Mode_AF_PP- 作用:
当外设输出为高电平时,端口输出高电平。
当外设输出为低电平时,端口输出低电平。
当输出低电平以后,端口可以进行输入。 - 原理:
与推挽输出相同,只不过由外设控制高低电平。

- 参考资料:
GPIO工作模式
【STM32】GPIO工作原理(八种工作方式超详细分析,附电路图)
3)八种工作模式的区别
(1)什么是推挽结构和推挽电路?
推挽结构一般是指两个参数相同的三极管或MOS管分别受两互补信号的控制,总是在一个三极管或MOS管导通的时候另一个截止。高低电平由输出电平决定。
推挽电路是两个参数相同的三极管或MOSFET,以推挽方式存在于电路中,各负责正负半周的波形放大任务。电路工作时,两只对称的功率开关管每次只有一个导通,所以导通损耗小、效率高。输出既可以向负载灌电流,也可以从负载抽取电流。推拉式输出级既提高电路的负载能力,又提高开关速度。
(2)开漏输出和推挽输出的区别?
开漏输出:只可以输出强低电平,高电平得靠外部电阻拉高。输出端相当于三极管的集电极。适合于做电流型的驱动,其吸收电流的能力相对强(一般20mA以内);
推挽输出:可以输出强高、低电平,连接数字器件。
关于推挽输出和开漏输出,最后用一幅最简单的图形来概括:

该图中左边的便是推挽输出模式,其中比较器输出高电平时下面的PNP三极管截止,而上面NPN三极管导通,输出电平VS+;当比较器输出低电平时则恰恰相反,PNP三极管导通,输出和地相连,为低电平。右边的则可以理解为开漏输出形式,需要接上拉。
(3)在STM32中选用怎样选择I/O模式?
- 浮空输入
_IN_FLOATING——浮空输入,可以做KEY识别,RX1 - 带上拉输入
_IPU——IO内部上拉电阻输入 - 带下拉输入
_IPD——IO内部下拉电阻输入 - 模拟输入
_AIN——应用ADC模拟输入,或者低功耗下省电 - 开漏输出
_OUT_OD——IO输出0接GND,IO输出1,悬空,需要外接上拉电阻,才能实现输出高电平。当输出为1时,IO口的状态由上拉电阻拉高电平,但由于是开漏输出模式,这样IO口也就可以由外部电路改变为低电平或不变。可以读IO输入电平变化,实现C51\STM32的IO双向功能 - 推挽输出
_OUT_PP——IO输出0接GND,IO输出1接VCC,读输入值是未知的 - 复用功能的推挽输出
_AF_PP——片内外设功能(I2C的SCL、SDA) - 复用功能的开漏输出
_AF_OD——片内外设功能(TX1、MOSI、MISO.SCK.SS)
(4)STM32 设置实例:
- 模拟
I2C使用开漏输出_OUT_OD,接上拉电阻,能够正确输出 0 和 1;读值时先GPIO_SetBits(GPIOB,GPIO_Pin_0)拉高,然后可以读IO的值,使用GPIO_ReadInputDataBit(GPIOB,GPIO_Pin_0); - 如果是无上拉电阻,
IO默认是高电平; - 需要读取
IO的值,可以使用带上拉输入_IPU和浮空输入_IN_FLOATING和开漏输出_OUT_OD;
4)IO 端口复用功能配置:
- 对于复用功能输入,端口可以配置成任意输入模式或者复用功能输出模式。
- 对于复用功能输出,端口必须配置成复用功能输出
- 对于双向复用功能,端口必须配置成复用功能输出
stm32的部分 IO 端口的复用功能可以重新映射成另外的复用功能。stm32具有GPIO 锁定机制,即锁定GPIO配置,下次复位前不能再修改。LSE 振荡器关闭时,OSC32_IN和OSC32_OUT可以用作通用IOPC14和PC15。- 当进入待机模式或者备份域由
Vbat供电,PC14,PC15功能丢失,该两个IO口线设置为模拟输入功能。 OSC_IN和OSC_OUT可以重新映射为GPIOPD0,PD1。- 注意
PD0,PD1用于输出地时候仅能用于50MHz输出模式。 - 注意:
PC13,PC14,PC15只能用于2MHz的输出模式,最多只能带30pf的负载,并且同时只能使用一个引脚!!!
5)上电复位后IO口状态
上电复位后,GPIO默认为输入浮空状态,部分特殊功能引脚为特定状态。
复位后,调试引脚处于复用功能上拉/下拉状态:
PA15:JTDI处于上拉状态PA14:JTCK/SWCLK处于下拉状态PA13:JTMS/SWDAT处于下拉状态PB4:NJTRST处于上拉状态PB3:JTDO处于浮空状态
3、开发板芯片的引脚常用参数
注:由于我使用的是
STM32F767,所以本小节分析STM32F767IGT6的参数


- 引脚数量:176 / 4个方向
- 主频:180 MHz
- 内核:
ARM Cortex-M7 - Flash:1024 KB
- 封装:
LQFP176 - 通用IO数量:132
- 最低工作电压:1.7 V
- 最高工作电压:3.6 V
- 一共9组IO:
PA~PI
PA~PH每组16个IO(Pa0~Pa15),PI只有12个IO(PI0~PI11)
共140个IO口。





八、STM32CubeMX创建工程
1、安装
- 打开官网,下载windows最新版。

- 接受许可协议

- 由于笔者已经装好了,安装过程唯一需要注意的也就是英文路径和别装C盘,其余一路
NEXT就行了。
2、创建工程
-
打开
STM32CubeMX

-
创建新项目

-
搜索栏可以直接搜索板子型号,也可根据搜索框下的各个参数来限制搜索范围。
参数从上至下依次为
- 内核
- 系列
- 线程
- 芯片包
- 其他
- 引脚功能类型

- 点击找到的板子型号(我是用的是
STM32F767,诸位按照自己板子),点击右上角的Start Project

本系列可能需要暂停,板子我找不到了。。。
我又回来啦!!!接下来是以学习日记的形式,使用的开发板为STM32F103,回见!









![[网络工程]小型局域网组建的常用命令(ENSP)](https://img-blog.csdnimg.cn/7b68c4e64db74b40ab0b14c315ce50e2.png)








