当前位置: 首页 > web >正文

STM32学习第一课--工程建立(云端备份与自我复盘)

STM32命名规则

重点关注引脚数、闪存容量、封装、温度范围

  1. 单片机与电脑的对应
  2. STM32选型:(性能)由高到低,(内存/闪存)由大到小
  3. 芯片的基本参数:主频/FLASH/SRAM、工作电压/最大电流、IO引脚接入电压范围、单个IO引脚最大电流
  4. 引脚类型:电源引脚、晶振引脚、复位引脚、下载引脚(三类:JTSG、SWG、串口)、BOOT引脚、GPIO引脚
  5. 最小系统:主控芯片+电源电路+下载调试电路+BOOT启动电路+晶振电路+复位电路+其它电路
  6. 复位电路 选用10kΩ电阻+104(10*10^4pF)电容,可以达到上电复位(导通的一瞬间NRST引脚电压=GND)的效果。

参考电路:

  1. IO分配:优先分配特定外设IO,然后分配通用IO,最后微调
  2. Output窗口的含义:
  1. 编译步骤:

使用部分

  1. 共建三个文件夹Start放启动文件;User放自己写的函数;Library放库函数
  2. StartC:\Users\29397\Desktop\JGY\学习\STM32学习文集\新版32套件压缩包\固件库\STM32F10x_StdPeriph_Lib_V3.5.0\Libraries\CMSIS\CM3\DeviceSupport\ST\STM32F10x\startup\arm全部

【同51建立工程文件之后需要配置启动文件并粘贴到工程文件夹下(可以新建一个专门存放启动文件的文件夹START),地址如下(以STM32F103C8为例)】

C:\Users\29397\Desktop\JGY\学习\STM32学习文集\新版32套件压缩包\固件库\STM32F10x_StdPeriph_Lib_V3.5.0\Libraries\CMSIS\CM3\DeviceSupport\ST\STM32F10x最后三个

【STM32F10x.h 是STM32的外设寄存器描述文件(作用同51单片机的头文件REGX52.H)

System_stm32f10x.h/c 用来配置时钟

此三文件同样需要粘贴到START启动文件夹下】

C:\Users\29397\Desktop\JGY\学习\STM32学习文集\新版32套件压缩包\固件库\STM32F10x_StdPeriph_Lib_V3.5.0\Libraries\CMSIS\CM3\CoreSupport两个

【Core_cm3.c/h 内核(Cortex-M3)寄存器的描述文件+内核的配置函数】

UserC:\Users\29397\Desktop\JGY\学习\STM32学习文集\新版32套件压缩包\固件库\STM32F10x_StdPeriph_Lib_V3.5.0\Project\STM32F10x_StdPeriph_Template三个

【Stm32f10x_conf.h用来配置库函数头文件的包含关系+用来参数检查的函数定义

Stm32f10x_it.c/h用来存放中断函数】

LibraryC:\Users\29397\Desktop\JGY\学习\STM32学习文集\新版32套件压缩包\固件库\STM32F10x_StdPeriph_Lib_V3.5.0\Libraries\STM32F10x_StdPeriph_Driver\inc;全部

【库函数的头文件】

C:\Users\29397\Desktop\JGY\学习\STM32学习文集\新版32套件压缩包\固件库\STM32F10x_StdPeriph_Lib_V3.5.0\Libraries\STM32F10x_StdPeriph_Driver\src。全部

【库函数】

新建工程步骤

  1. 建立工程文件夹,Keil中新建工程,选择型号
  2. 工程文件夹里建立Start、Library、User等文件夹,复制固件库里面的文件到工程文件夹
  3. 工程里对应建立Start、Library、User等同名称的分组,然后将文件夹内的文件添加到工程分组里
  4. 工程选项,C/C++,Include Paths内声明所有包含头文件的文件夹
  5. 工程选项,C/C++,Define内定义USE_STDPERIPH_DRIVER
  6. 工程选项,Debug,下拉列表选择对应调试器,Settings,Flash Download里勾选Reset and Run

  1. 将启动文件(md.s)添加到目录下

(为什么是md呢)头文件缩写与芯片型号的对应关系:

  1. 添加头文件路径【USER START LIBRARY三个都需要添加,因为是我们手动添加的,所以要把地址加进去】

定义使用标准外设驱动,是使用库函数的条件编译,只有使用库函数必须定义

  1. 编码格式选择UTF-8,可以防止中文乱码  扳手��工具-Editor修改TAB键空数,colors & fonts修改字体大小,选择C/C++以及ASM的editor files
  1. 选择适配器,并在setting后选择reset and run,自动下载运行
  1. 工程架构
  1. 通过配置GPIO的端口配置寄存器,端口可以配置成以下8种模式

模式名称

模式别名

性质

特征

浮空输入

GPIO_Mode_AIN

数字输入

可读取引脚电平,若引脚悬空,则电平不确定

上拉输入

GPIO_Mode_IN_FLOATING

数字输入

可读取引脚电平,内部连接上拉电阻,悬空时默认高电平

下拉输入

GPIO_Mode_IPD

数字输入

可读取引脚电平,内部连接下拉电阻,悬空时默认低电平

模拟输入

GPIO_Mode_IPU

模拟输入

GPIO无效,引脚直接接入内部ADC

开漏输出

GPIO_Mode_Out_OD

数字输出

可输出引脚电平,高电平为高阻态,低电平接VSS

推挽输出

GPIO_Mode_Out_PP

数字输出

可输出引脚电平,高电平接VDD,低电平接VSS

复用开漏输出

GPIO_Mode_AF_OD

数字输出

由片上外设控制,高电平为高阻态,低电平接VSS

复用推挽输出

GPIO_Mode_AF_PP

数字输出

由片上外设控制,高电平接VDD,低电平接VSS

http://www.xdnf.cn/news/9630.html

相关文章:

  • ROS2学习(16)------ URDF 机器人建模方法
  • 操作系统 | 第一章:操作系统引论思维导图
  • 解决ssh: connect to host IP port 22: Connection timed out报错(scp传文件指定端口)
  • Java—多线程
  • 如何使用 poetry 创建虚拟环境,VSCode 如何激活使用 Poetry 虚拟环境(VSCode如何配置 Poetry 虚拟环境)
  • MVCC原理解析
  • js 手写promise
  • 专栏更新通知
  • Python 科学计算有哪些提高运算速度的技巧
  • 力扣——1.两数之和
  • 【论文阅读】User Diverse Preference Modeling by Multimodal Attentive Metric Learning
  • 【笔记】修改abu量化本地部署数据文件夹目录
  • OpenCV CUDA模块直方图计算------用于在 GPU 上执行对比度受限的自适应直方图均衡类cv::cuda::CLAHE
  • Python 的 `next()`函数
  • 数字化回归本质:第一性原理驱动的制造业转型与AI+云PLM系统实践
  • LeetCode-数组技巧题目
  • 影刀RPA-20-高级操作题2
  • 后端思维之高并发处理方案
  • 使用LSTM对销售数据进行预测
  • 简乐 1.4.0 | 非常简洁 无损下载 畅听全网
  • 聊一聊 C# NativeAOT 多平台下的函数导出
  • Milvus向量Search查询综合案例实战(下)
  • Telnet 命令详解
  • 深度学习---注意力机制(Attention Mechanism)
  • docker 网络-用户定义网络
  • 【OCSA 2025】征稿通道已经开启​
  • 【连接器专题】 EIA-364 系列标准的完整列表
  • 加减数值策略
  • 【笔记】修复ImportError: cannot import name ‘Mapping‘ from ‘collections‘
  • DeepSpeed常见面试问题