1# BSP README 模板
2
3## 简介
4
5本文档为 STM32F207 Nucleo-144 开发板的 BSP (板级支持包) 说明。
6
7主要内容如下:
8
9- 开发板资源介绍
10- BSP 快速上手
11- 进阶使用方法
12
13通过阅读快速上手章节开发者可以快速地上手该 BSP,将 RT-Thread 运行在开发板上。在进阶使用指南章节,将会介绍更多高级功能,帮助开发者利用 RT-Thread 驱动更多板载资源。
14
15## 开发板介绍
16
17STM32 Nucleo-144 是 ST 官方推出的开发板,搭载 STM32F207ZG 芯片,基于 ARM Cortex-M3 内核,最高主频 120 MHz,具有丰富的板载资源,可以充分发挥 STM32F207ZG 的芯片性能。
18
19开发板外观如下图所示:
20
21![board](figures/board.jpg)
22
23该开发板常用 **板载资源** 如下:
24
25- MCU:STM3207ZG,主频 120MHz,1MB FLASH ,128KB RAM
26- 常用外设
27  - LED:3个,LD1(绿色,PB0),LD2(蓝色,PB7),LD3(红色,PB14)
28  - 按键:2 个,USER and RESET 。
29- 常用接口:USB 转串口、以太网接口、Arduino Uno 和 ST morpho 两类扩展接口
30- 调试接口,标准 JTAG/SWD
31
32快速入门:[Getting started with STM32 Nucleo board software development tools](https://www.st.com/resource/en/user_manual/dm00105928-getting-started-with-stm32-nucleo-board-software-development-tools-stmicroelectronics.pdf)
33
34原理图下载:[STM32 Nucleo (144 pins) schematics](https://www.st.com/resource/en/schematic_pack/nucleo_144pins_sch.zip)
35
36*更多相关信息资料见 ST 官网详情页:[STM32 Nucleo-144 development board with STM32F207ZG MCU](https://www.st.com/content/st_com/en/products/evaluation-tools/product-evaluation-tools/mcu-mpu-eval-tools/stm32-mcu-mpu-eval-tools/stm32-nucleo-boards/nucleo-f207zg.html)*
37
38## 外设支持
39
40本 BSP 目前对外设的支持情况如下:
41
42| **板载外设**      | **支持情况** | **备注**                              |
43| :----------------- | :----------: | :------------------------------------- |
44| USB 转串口        |     支持     |                                       |
45| 以太网            |     暂不支持     |                                       |
46| **片上外设**      | **支持情况** | **备注**                              |
47| GPIO              |     支持     | PA0, PA1... PH1 ---> PIN: 0, 1...144 |
48| UART              |     支持     | UART3                          |
49| SPI               |     暂不支持     |                               |
50| I2C               |     暂不支持     |                               |
51| RTC               |   暂不支持   |                               |
52| PWM               |   暂不支持   |                               |
53| USB Device        |   暂不支持   |                               |
54| USB Host          |   暂不支持   |                               |
55| IWG               |   暂不支持   |                               |
56
57## 使用说明
58
59使用说明分为如下两个章节:
60
61- 快速上手
62
63    本章节是为刚接触 RT-Thread 的新手准备的使用说明,遵循简单的步骤即可将 RT-Thread 操作系统运行在该开发板上,看到实验效果 。
64
65- 进阶使用
66
67    本章节是为需要在 RT-Thread 操作系统上使用更多开发板资源的开发者准备的。通过使用 ENV 工具对 BSP 进行配置,可以开启更多板载资源,实现更多高级功能。
68
69
70### 快速上手
71
72本 BSP 为开发者提供 MDK4、MDK5 和 IAR 工程,并且支持 GCC 开发环境。下面以 MDK5 开发环境为例,介绍如何将系统运行起来。
73
74**请注意!!!**
75
76在执行编译工作前请先打开ENV执行以下指令(该指令用于拉取必要的HAL库及CMSIS库,否则无法通过编译):
77
78```bash
79pkgs --update
80```
81
82#### 硬件连接
83
84使用数据线连接开发板到 PC,打开电源开关。
85
86#### 编译下载
87
88双击 project.uvprojx 文件,打开 MDK5 工程,编译并下载程序到开发板。
89
90> 工程默认配置使用 xxx 仿真器下载程序,在通过 xxx 连接开发板的基础上,点击下载按钮即可下载程序到开发板
91
92#### 运行结果
93
94下载程序成功之后,系统会自动运行,红色 LD3 会周期性闪烁。。
95
96USB 虚拟 COM 端口默认连接串口 3,在终端工具里打开相应的串口(115200-8-1-N),复位设备后,可以看到 RT-Thread 的输出信息:
97
98```bash
99 \ | /
100- RT -     Thread Operating System
101 / | \     4.0.3 build Apr 12 2021
102 2006 - 2021 Copyright by rt-thread team
103msh >
104
105```
106### 进阶使用
107
108此 BSP 默认只开启了 GPIO 和 串口3 的功能,更多高级功能需要利用 ENV 工具对 BSP 进行配置,步骤如下:
109
1101. 在 bsp 下打开 env 工具。
111
1122. 输入`menuconfig`命令配置工程,配置好之后保存退出。
113
1143. 输入`pkgs --update`命令更新软件包。
115
1164. 输入`scons --target=mdk4/mdk5/iar` 命令重新生成工程。
117
118本章节更多详细的介绍请参考 [STM32 系列 BSP 外设驱动使用教程](../docs/STM32系列BSP外设驱动使用教程.md)。
119
120## 注意事项
121
122- 关于 pin 序号规则,与旧 bsp 使用封装管脚序号不同,在新的 stm32 bsp 框架中,统一采用顺序编号的方式,对 GPIO 驱动进行管理,在移植旧 bsp 时特别要注意这点。
123
124  pin 序号与引脚名对应关系如下表:
125
126  | STM32 引脚名 | 管脚序号 pin |
127  | ------------ | ------------ |
128  | PA0 - PA15   | 0 - 15       |
129  | PB0 - PB15   | 16 - 31      |
130  | PC0 - PC15   | 32 - 47      |
131  | PD0 - ...    | 48 - ...     |
132
133
134## 联系人信息
135
136维护人:
137
138-  [wanghaijing](https://github.com/whj4674672) ,邮箱:<whj4674672@163.com>