Skip to content

Commit 10044b5

Browse files
committed
小修改
1 parent 36ac407 commit 10044b5

13 files changed

+74
-16
lines changed
Loading
Loading
33.2 KB
Loading
1.45 MB
Loading
50.9 KB
Loading
Loading

教程/正文/项目/嵌入式学习/STM32F10xx芯片.md

Lines changed: 0 additions & 7 deletions
This file was deleted.

教程/正文/项目/嵌入式学习/初识HAL.md renamed to 教程/正文/项目/嵌入式学习/初识HAL库.md

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -39,16 +39,16 @@ ST为了方便用户开发STM32芯片开发提供了三种库:
3939
## CMSIS与HAL区别
4040

4141
1. **目的**
42-
- CMSIS的目的是提供一套标准化的接口,以减少为不同微控制器编写软件的复杂性
43-
- HAL库的目的是提供一个更高层的接口,以简化对硬件的访问
42+
- CMSIS的目的是提供一套标准化的接口,以减少为不同微控制器编写软件的复杂性
43+
- HAL库的目的是提供一个更高层的接口,以简化对硬件的访问
4444
2. **抽象级别**
45-
- CMSIS提供的是低级别的抽象,直接映射到硬件寄存器和中断向量表
46-
- HAL库提供的是更高层的抽象,隐藏了硬件的细节,提供了一系列易于使用的函数
45+
- CMSIS提供的是低级别的抽象,直接映射到硬件寄存器和中断向量表
46+
- HAL库提供的是更高层的抽象,隐藏了硬件的细节,提供了一系列易于使用的函数
4747
3. **集成**
48-
- CMSIS可以与HAL库一起使用,以提供从启动到外设访问的完整软件栈,CMSIS定义了硬件访问的框架
49-
- 而HAL库提供了具体的实现
48+
- CMSIS可以与HAL库一起使用,以提供从启动到外设访问的完整软件栈,CMSIS定义了硬件访问的框架
49+
- 而HAL库提供了具体的实现
5050
4. **兼容性**
51-
- CMSIS定义的接口在不同的微控制器之间是兼容的
52-
- HAL库通常由微控制器的制造商提供,它们可能为特定微控制器提供定制化的实现。
53-
51+
- CMSIS定义的接口在不同的微控制器之间是兼容的
52+
- HAL库通常由微控制器的制造商提供,它们可能为特定微控制器提供定制化的实现。
53+
5454
总的来说,CMSIS和HAL库都是为ARM Cortex-M微控制器设计的,但CMSIS提供了一套标准化的接口,而HAL库提供了一个更高层的抽象,以简化对硬件的访问。两者可以一起使用,以提供从启动到外设访问的完整软件栈。

教程/正文/项目/嵌入式学习/库函数雏形.md

Whitespace-only changes.

教程/正文/项目/嵌入式学习/操作GPIO.md

Whitespace-only changes.

教程/正文/项目/嵌入式学习/操作时钟.md

Whitespace-only changes.
Lines changed: 65 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,65 @@
1+
# 环境搭建
2+
3+
> 笔者使用 **STM32CubeMX + CLion** 的开发方式,
4+
> 当然文后会介绍使用 **Keil****VSCode** 的方式
5+
6+
## 1. 使用CLion开发( 优雅の嵌入式开发 )
7+
8+
### 1.0 前言
9+
10+
做嵌入式开发的人对STM32这个平台应该都是非常熟悉的,
11+
多数人在开发STM32的时候用的都是 **Keil** 这个老牌IDE,
12+
很大一部分原因是因为大多数人最初是从51单片机学习过来的,
13+
51就是基于Keil去开发的,然后迁移到STM32的时候也就沿用下来了。
14+
15+
![Keil开发环境界面](/images/项目/嵌入式/Keil界面图.png)
16+
17+
Keil操作简单,容易上手,而且可以很方便地进行调试。
18+
但是对于以前不是做嵌入式开发的软件开发人员来说,
19+
面对Keil这种上世纪风格的IDE(不只是UI)肯定是不太有好感的。
20+
我在尝试过STM32CubeIDE和RT-Thread Studio等用Eclipse修改的IDE之后,
21+
也确实觉得而今这些专业的嵌入式IDE没有那种,额,未来感,
22+
23+
### 1.1 工具安装
24+
25+
1. [ **STM32CubeMX** ](https://www.st.com/en/development-tools/stm32cubemx.html)
26+
27+
ST官方出的一款针对ST的MCU/MPU跨平台的图形化工具,
28+
支持在Linux、MacOS、Window系统下开发,其对接的底层接口是HAL库,
29+
另外习惯于寄存器开发的同学们,也可以使用LL库。STM32CubeMX除了集成MCU/MPU的硬件抽象层,
30+
另外还集成了像RTOS,文件系统,USB,网络,显示,嵌入式AI等中间件,这样开发者就能够很轻松的完成MCU/MPU的底层驱动的配置,
31+
留出更多精力开发上层功能逻辑,能够更进一步提高了嵌入式开发效率。
32+
33+
2. [ **OpenOCD** ](https://github.com/xpack-dev-tools/openocd-xpack/releases)
34+
35+
openocd全名叫做Open On-Chip Debugger,是一个自由开放的片上调试工具和编程工具,
36+
目前已经发布到0.11.0版本,目前主流调试器几乎都支持。
37+
安装好之后,添加环境变量:
38+
![OpenOCD环境变量](/images/项目/嵌入式/OpenOCD环境变量图.png)
39+
3. MinGW
40+
41+
Clion需要使用MinGW环境来配置工具链,安装方法见 [MinGW]()
42+
43+
安装好之后,添加到环境变量:
44+
![MinGW环境变量](/images/项目/嵌入式/MinGW环境变量图.png)
45+
46+
在终端输入,进行测试:
47+
```shell
48+
gcc -v
49+
```
50+
如果有信息输出如下,那就是装好了。
51+
![MinGW检查](/images/项目/嵌入式/MinGW检查图.png)
52+
53+
4. [ **arm-none-eabi-gcc** ](https://developer.arm.com/open-source/gnu-toolchain/gnu-rm/downloads)
54+
55+
安装好后,添加到环境变量:
56+
![GNU-arm-none-eabi环境变量](/images/项目/嵌入式/GNU-arm-none-eabi环境变量图.png)
57+
58+
在终端输入,进行测试:
59+
```shell
60+
arm-none-eabi-gcc -v
61+
```
62+
如果有信息输出如下,那就是装好了。
63+
![GNU-arm-none-eabi检查](/images/项目/嵌入式/GNU-arm-none-eabi检查图.png)
64+
65+

教程/正文/项目/嵌入式学习/程序下载.md

Whitespace-only changes.

0 commit comments

Comments
 (0)