stm32学习详细笔记001
首先我们学习用的stm32这个是意法半导体产出的。
我们使用最新的STM32CubeIDE就可以实现芯片选择,外设配置,代码生成,代码编译,程序烧录,程序调试这样的全过程
第一次使用要登录才能够下载对应芯片的固件安装包
我们本个选择的芯片是STM32F103C8T6,里面的ST是意法半导体,M32是32位寄存器,F1是主流,03是3系列,C是48引脚,8->64kb的flash存储,T是温度范围,6是引脚镀层种类
这里我们养成一个习惯,每次打开ide都在RCC(Reset and Clock Control复位和时钟控制)里面设置为Crystal/Ceramic Resonator(晶振,陶瓷振荡器)
在SYS(system系统模块)里面设置Debug为串行线Serial Wire
-
STM32 芯片一般有两种调试接口:
-
JTAG(需要 4~5 根线,功能多,但是占用 IO 引脚多)
-
Serial Wire (SWD)(只需要 2 根线:SWDIO 和 SWCLK,更常用)
-
-
你这里选了 Serial Wire,就是告诉芯片用 SWD 接口进行调试和下载程序。
1,首先点亮小灯
什么是GPIO引脚:General Purpose Input Output 通用输入输出引脚
(这里的PA----PB都是GPIO引脚)
我们在原理图里面给三个小灯分别设置PA6,PA7,和PB0来控制(这里我们使用的是推挽输出)
(每个元件需要的电流不一样所以电阻不一样)
设置CubeIDE图形化里面的引脚为输出的时候
左键
(看下面这些的时候我们可以先把上面的图截屏放在一侧来看)
1. Reset_State
- 功能:
引脚处于复位状态,表示没有被配置为任何特定功能。 - 特点:
- 引脚处于默认状态(通常是高阻态)。
- 引脚不参与任何外设或功能。
- 如果没有配置引脚的用途,通常会保持这种状态。
2. ADC1_IN14
- 功能:
配置为 ADC(模数转换器)1的第14路输入通道,用于采集模拟信号并转换为数字信号。 - 特点:
- 适用于连接传感器或其他模拟设备。
- 模拟信号范围通常是 0V 到 VREF(参考电压)。
- 在 STM32 内部通过 ADC1 模块处理采集的信号。
3. ADC2_IN14
- 功能:
配置为 ADC(模数转换器)2的第14路输入通道,功能与 ADC1 类似,但使用的是 ADC2 模块。 - 特点:
- 可以实现多通道采集,或者通过多个 ADC 实现更高采样率。
- 同样用于处理模拟信号。
4. GPIO_Input
- 功能:
配置为 GPIO(通用输入输出)输入模式,用于接收外部数字信号。 - 特点:
- 可以读取外部设备的状态,比如按键、传感器等。
- 可以设置为带上拉或下拉电阻,避免悬空状态导致的信号不稳定。
5. GPIO_Output
- 功能:
配置为 GPIO 输出模式,用于输出数字信号,驱动外部设备。 - 特点:
- 可以控制外部设备,比如 LED、继电器等。
- 支持推挽输出和开漏输出两种方式。
6. GPIO_Analog
- 功能:
配置为 GPIO 模拟模式,允许引脚处理模拟信号。 - 特点:
- 适用于 ADC 或 DAC(数模转换器)等模拟功能。
- 在模拟模式下,通常引脚不会有数字逻辑特性。
7. EVENTOUT
- 功能:
配置为事件输出,用于将事件信号输出到引脚。 - 特点:
- 常用于低功耗模式下的事件唤醒。
- 一般和 EXTI(外部中断)结合使用。
8. GPIO_EXTI4
- 功能:
配置为 EXTI(外部中断)4通道,用于处理外部中断信号。 - 特点:
- 可用于捕获外部事件,比如按键触发、中断信号等。
- 支持上升沿、下降沿或双沿触发。
右键
1. Enter User Label(输入用户标签)
-
功能:
允许用户为当前引脚设置一个自定义标签,用于标识引脚的用途或功能。 -
特点:
-
设置的标签可以帮助开发者快速识别引脚用途,比如将标签命名为 “LED” 或 “Button”。
-
标签仅用于代码生成中的备注或提示,对实际硬件配置没有直接影响。
-
在生成代码后,标签会在代码中体现,比如
#define LED_Pin GPIO_PIN_7
等。
-
2. Signal Unpinning(取消引脚分配)
-
功能:
将当前引脚从某个功能模块中解除绑定。 -
特点:
-
如果引脚已经被配置为某个功能(如 GPIO、ADC、UART 等),选择此选项可以解除该功能分配。
-
解除绑定后,引脚会重新变为未配置状态(通常是复位状态)。
-
适用于需要重新配置引脚或者取消不需要的功能分配。
-
3. Pin Stacking(引脚堆叠)
-
功能:
允许多个信号或功能共享同一个引脚。