STM32初学心得笔记

一、使用工具

(一)开发板:正点原子战舰v4(正点原子

(二)ST-Link/V2下载编译器

(三)常用网站:意法半导体官方网站(https://www.st.com/

                  正点原子资料下载中心(http://47.111.11.73/docs/index.html

二、准备流程

(一)安装KEIL

安装的路径一定不要有中文!!!

  • 双击点开(图1)
图1
  •  选择安装路径(图2)
图2
  •  随意填写个人信息,要用数字或者英文字母(图3)
图3
  • 继续完成安装后,桌面上显示相应图标(图4)
图4

 

(二)激活KEIL 

  • 右键以管理员身份打开keil软件,叉掉弹出的所有其他窗口,在该界面(图5)下进行如下1、2步骤
图5

 

图5-1
  • 点完2之后会出现新的弹窗(图6),在此同时,双击注册机执行文件(图7),打开注册机(图8) ,将图6中框选的CID复制到图8的CID中。
图6
图7

 

图8
  •  把图8的target选择成C51,如(图9)
图9
  •  点击generate,将生成的内容(图10)再粘回到(图10-1)中,再点击ADD LIC。
图10
图10-1
  • 出现(图11)框内新增信息,则表示激活成功。  
图11

 

(三)选择运行环境

1.安装芯片支持包

(上面是STM32F1系列芯片的支持包,下面是STM32F4系列的支持包),如(图12)

图12
  •  双击,打开所要用的支持包(我这里用的是STM32F1型号的芯片),正常情况下,图13所示的安装路径应该和图2的KEIL PACK路径相关联,如果无误,继续安装即可。
图13
  •  回到keil软件中,点击 “魔法棒”,出现界面(图14)
图14
  • 我所用的就是STM32F103ZE芯片(图14-1)
图14-1
2.开启芯片相应外设
  • 点击 “田字格”,出现(图15)
图15
  • 首先要选择内核core,其次是内核周边的外设,先将device内启动startup选上。
图16
  • 接下来,根据自己的需求来选择要启用哪些外设(图17)。以点亮小灯为例,需要用到GPIO,而GPIO的使用必须要开启Framework和RCC
图17

  • 勾选外设时,会有相应警告来提示,如(图18),通过提示框可知,选择GPIO时还应勾选RCC来开启时钟
图18

3.基本操作和常用按钮
  •  新建工程

     

  • 新建一个工程之后会产生以下这些文件

  • 关闭当前工程

 

  • 新建文本: 创建和编写.c和.h文件
  •  “小扳手”,选成框选的内容,输入中文就不会有乱码了。
标题
  •  编译按钮,不同层级的编译选择不同的
  •  下载烧录
4.下载编译器驱动程序
  • 打开意法半导体官方网站。

  • 在网站的搜索框中输入 “ST - Link/V2 驱动” 或者相关关键词。

  • 选择适合你操作系统的驱动程序版本进行下载。

三、编写代码

(一)代码框架

  • 从圈选的.c文件中能找到头文件 #include "stm32f10x.h",其实很多代码都是从标准库中找到的

  • 主函数main.c,注意代码规范 .c .h文件 最后需要空一行(空格也不能有)
#include "stm32f10x.h"//加载芯片厂家的头文件 
int main(void) {





}
//最后一行要空行!!!

未完待续~~~~~

### STM32 引脚功能与配置 STM32 的引脚设计非常灵活,支持多种模式下的功能切换以及复用机制。这种灵活性使得开发者可以根据实际需求调整硬件资源分配。 #### 1. 引脚的功能重映射 STM32 中许多内置外设(如 USART、定时器、CAN、SPI 和 I²C 等)具备引脚重映射功能[^1]。这意味着这些外设的信号可以被重新路由到不同的物理引脚上。通过这种方式,开发人员能够更高效地利用芯片上的可用引脚,从而优化 PCB 布局并减少冲突的可能性。 要实现引脚重映射,通常需要设置特定的控制寄存器位。具体的操作方法可以在官方文档《STM32 参考手册 (RM0008)》中找到详细的描述。 #### 2. IO 引脚的初始化过程 对于 STM32 单片机而言,每一个 GPIO 引脚都需要经过初始化才能正常工作。这一过程主要依赖于 `GPIO_Init()` 函数完成[^2]。该函数内部实际上是通过对多个配置寄存器执行写入操作来定义引脚的工作状态。 以下是典型的 GPIO 初始化流程: - **选择模式**: 设置引脚为输入 (`GPIO_Mode_IN`) 或输出 (`GPIO_Mode_OUT`) 模式。 - **设定速度**: 对于输出模式下,可以选择低速、中速或者高速驱动能力。 - **上下拉电阻配置**: 如果需要的话,还可以启用内部上拉/下拉电阻以稳定电平。 下面是一个简单的代码示例展示如何配置一个 GPIO 输出引脚: ```c #include "stm32f1xx.h" void GPIO_Configuration(void){ GPIO_InitTypeDef GPIO_InitStruct; // 启用端口 A 的时钟 RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE); // 配置 PA5 作为推挽输出模式 GPIO_InitStruct.GPIO_Pin = GPIO_Pin_5; GPIO_InitStruct.GPIO_Speed = GPIO_Speed_50MHz; GPIO_InitStruct.GPIO_Mode = GPIO_Mode_Out_PP; GPIO_Init(GPIOA, &GPIO_InitStruct); } ``` 上述例子展示了如何将 Port A 上第 5 号针脚(PA5)配置成最大频率为 50 MHz 的推挽输出型态。 #### 总结 综上所述,STM32 提供了丰富的选项让用户自定义其微控制器单元(MCU)上的各个通用目的输入/输出(GPIOS),并通过软件手段轻松更改它们的行为特性。无论是基本的方向指定还是复杂的多重用途指派,都可以借助相应的库文件快速达成目标。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值