LOADING
419 字
2 分钟
STM32学习随手记录

STM32回顾性学习,只记要点

1 Keil设置

  1. Configuration(帮叟)
    1. Editor->Encoding->Encode in UTF-8 without signature 支持中文
    2. Editor->C/C++ Files->Tab size->4 更改缩进为4
    3. Color & Fonts-> C/C++ Editor files-> Text -> Font->14 调整字体大小
    4. Text Completion -> Symbols after 3 Characters 选中 自动补全设置(需重启软件)
  2. Options for Target(魔术棒)
    1. C/C++-> Include Paths 声明所有包含头文件的文件夹
    2. C/C++-> Define内定义USE_STDPERIPH_DRIVER 使用标准外设编译,这是使用库函数的条件编译
    3. Debug 下拉列表选择对应调试器
    4. Debug 调试器旁边Settings Flash Download里勾选Reset and Run

2 STM32内部电路结构

图 0

3 STM32编程

3.1 方式:

1. 直接调用寄存器(需查阅STM32文档)
2. 库函数
3. HAL

3.2 库函数

3.2.1 GPIO配置

#include "stm32f10x.h" // Device header
int main(void)
{
//使用库函数将位于GPIOC的Pin13对应的LED点亮(0亮1灭)
//1. 打开clk使能
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC, ENABLE); //打开GPIOC的clk使能
//2. 定义GPIO结构体
GPIO_InitTypeDef GPIO_InitStrcture; //定义一个名为GPIO_InitStrcture的结构体,并在下面描述结构体的内容
GPIO_InitStrcture.GPIO_Mode = GPIO_Mode_Out_PP; //通用推挽输出
GPIO_InitStrcture.GPIO_Pin = GPIO_Pin_13; //将控制目标定为Pin13(跳转:点击Class为member的GPIO_Pin)
GPIO_InitStrcture.GPIO_Speed = GPIO_Speed_50MHz; //将Pin13速度定位50MHz
//3. 初始化GPIO
GPIO_Init(GPIOC, &GPIO_InitStrcture); //初始化GPIOC
//4. GPIO设置为高/低电平
GPIO_SetBits(GPIOC, GPIO_Pin_13);
// GPIO_ResetBits(GPIOC, GPIO_Pin_13);
while (1)
{
}
}

3.2.2 寄存器输出模式

图 11

  1. 推挽
    1. P-MOS/N-MOS都导通。高电平:1,低电平:0
  2. 开漏
    1. P-MOS关闭,N-MOS导通。高电平:高阻(浮空),低电平:0
    2. 可外接5V上拉电阻,将高电平输出为5V
  3. 关闭
    1. P-MOS/N-MOS都关闭。电平由外部电路控制45
—————————————————————————————————————
Ongoing
—————————————————————————————————————
[首页](https://blog.skycity11.xyz)
STM32学习随手记录
/posts/2025-08-16-anguage-stm32-c/
作者
Eric
发布于
2025-08-16
许可协议
CC BY-NC-SA 4.0

部分信息可能已经过时