STM32F103C8T6第1天:认识STM32、标准库与HAL库、GPIO口详解
1. 课程概述(297.1)
2. 开发软件Keil5的安装(298.2)
开发环境的安装
Keil5 的安装
使用 Keil4 写 STM32 代码其实也是可以,但需要很复杂的配置,不建议新手操作。
比较推荐 Keil5 编写 STM32 ,只需要一些简单的设置就可以上手,对新手友好。
3. STM32模板工程的创建与使用(299.3)
4. 如何下载程序到STM32单片机(300.4)
烧录工具有很多种,比如:串口、J-Link、ST-Link、U-Link 等等,本教程使用 ST-Link。

int main(void)
{ //跑马灯效果,闪烁比较快
GPIO_InitTypeDef GPIO_InitStructure;
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE);
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_8 | GPIO_Pin_9;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init(GPIOB, &GPIO_InitStructure);
GPIO_SetBits(GPIOB, GPIO_Pin_8 | GPIO_Pin_9);
while(1)
{
GPIO_ResetBits(GPIOB,GPIO_Pin_8);
GPIO_SetBits(GPIOB,GPIO_Pin_9);
Delay(3000000);
GPIO_SetBits(GPIOB,GPIO_Pin_8);
GPIO_ResetBits(GPIOB,GPIO_Pin_9);
Delay(3000000);
}
}
5. STM32CubeMX的安装(301.5)
6. 使用STM32CubeMX生成工程文件(302.6)
- 点击「ACCESS TO MCU SELECTOR」;(自己创建工程目录)(下面俩是根据st官方生成的工程文件)
- 左上角搜索对应的芯片,并在右侧双击对应的芯片;
- 点击芯片对应的引脚,并进行配置;(Serial Wire:可做重复的修改)
- 配置工程名称及位置:(工程名称不能有空格)(位置不能有中文)
Toolchain / IDE:MDK-ARM(启用此选项后,在生成代码之后可自动调用 Keil5 开启此项目)
5. 按下图配置 Coder Generator :(仅拷贝需要的库文件)(针对外设的固件库生成.c.h匹配的源文件)
6. 点击右上角 generate code :
7. 点击 Open Project 即可调用 Keil5 打开自动生成的工程文件。
//main.c int main(){}
while (1)
{//跑马灯效果:led1亮 led2灭 led1灭 led2亮
/* USER CODE END WHILE */
HAL_GPIO_WritePin(GPIOB, GPIO_PIN_8, GPIO_PIN_RESET);
HAL_GPIO_WritePin(GPIOB, GPIO_PIN_9, GPIO_PIN_SET);
HAL_Delay(1000);
HAL_GPIO_WritePin(GPIOB, GPIO_PIN_9, GPIO_PIN_RESET);
HAL_GPIO_WritePin(GPIOB, GPIO_PIN_8, GPIO_PIN_SET);
HAL_Delay(1000);
/* USER CODE BEGIN 3 */
}
7. STM32介绍(303.7)(*面试会问)
什么是单片机?
单片机(Single-Chip Microcomputer)是一种集成电路芯片 把具有数据处理能力的中央处理器CPU、随机存储器RAM、只读存储器ROM、多种I/O口和中断系统、定时器/计数器等功能(可能还包括显示驱动电路、脉宽调制电路、模拟多路转换器、A/D转换器等电路)集成到一块硅片上构成的一个小而完善的微型计算机系统,在工业控制领域广泛应用
STM系列单片机命名规则(*面试会问)

STM32F103C8T6单片机简介
8. 标准库与HAL库区别(304.8)
- 寄存器
- 标准库
- HAL库
9. 什么是GPIO口(305.9)
GPIO是通用输入输出端口的简称,简单来说就是STM32可控制的引脚STM32芯片的GPIO引脚与外部设备连接起来,从而实现与外部通讯、控制以及数据采集的功能。
简单来说我们可以控制GPIO引脚的电平变化,达到我们的各种目的。
组编号+引脚编号
组合起来:
PA0, PA1, PA2 … PA15
PB0, PB1, PB2 … PB15
PC0, PC1, PC2 … PC15
…
有一些特殊功能的引脚是不能用作IO的。
下图来源于官方参考手册,了解即可。

10. 推挽输出与开漏输出(306.10)
