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

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

相关文章:

  • 回归任务损失函数对比曲线
  • git 一台电脑一个git账户,对应多个仓库ssh
  • 将can日志数据提取到excle中
  • 4. Qt对话框(1)
  • C语言Day9:C语言类型转换规则
  • ADVANTEST D3286 Error Detector OPeration Manual 爱德万测试
  • CVE-2017-12629-XXE源码分析与漏洞复现
  • 游戏中的数学计算
  • 从时间到宇宙:探索时间同步的底层奥秘与工程实践
  • javascript中运算符的优先级
  • 【时时三省】(C语言基础)函数的递归调用例题
  • Python中质数筛选及优化效率对比
  • 【笔记】修改abu量化本地部署数据文件夹目录
  • Redis集群热点Key问题解决方案
  • HTML应用指南:利用GET请求获取全国罗森门店位置信息
  • 文本编辑器vi的使用
  • 2025年软件测试面试题,精选33道,附答案
  • 5月28日星期三今日早报简报微语报早读
  • SCDN如何同时保障网站加速与DDoS防御?
  • 【C++基础知识】匿名命名空间
  • 设计师自己做网站/app平台搭建
  • 汉口做网站公司/网络销售怎么找客源
  • 南通公司网站建设/惠州seo排名公司
  • 专门做二手手机的网站吗/南昌seo快速排名
  • 为什么浙江建设厅网站/成都网络营销搜索推广
  • 自己做公司网站/百度开户代理