首页 > 其他分享 >STM32学习笔记_前置知识

STM32学习笔记_前置知识

时间:2023-12-04 23:31:38浏览次数:26  
标签:-- 前置 笔记 STM32 串口 安装 ARM 时钟

STM简介
  • STM32是ST公司基于ARM Cortex-M内核开发的32位微控制器,本次课程采用的STM32F1系列,ARM公司设计ARM内核,半导体厂商完善内核周边电路并产生芯片


STM32F103C8T6参数
  • RAM:20K 指运行内存,实际存储介质是SRAM
  • ROM:64K 指程序存储器,实际存储介质是Flash内存
  • 供电:2.0-3.6V 标准3.3V
  • 封装:LQFP48


最小系统电路包括:
  • 供电
  • 时钟
  • 复位
  • 启动配置
  • 下载端口


启动配置
  • 在STM32F10xxx里,可以通过BOOT[1:0]引脚选择三种不同启动模式
  • BOOT1:X BOOT0:0 flash启动
  • BOOT1:0 BOOT0:1 串口下载 。 系统存储器就是STM32中的一段BootLoader(接收串口数据,然后刷新到主闪存中)
  • BOOT1:1 BOOT0:1 调试


STM32F103C8T6 Peripheral
  • NVIC:内核里面用于管理中断的设备,例如配置中断优先级
  • SysTick:用来给操作系统提供定时服务的,因为STM32可以加入FreeRTOS等实时操作系统,利用SysTick提供定时进行任务切换的功能
  • RCC:复位和时钟控制,可以对系统的时钟进行配置,还使能各模块的时钟。在STM32中,外设上电后是默认没有时钟,没有时钟外设就无法工作。
  • GPIO:通用的IO口
  • AFIO:完成复用功能端口的重定义
  • EXTI:配置好外部中断后,当引脚有电平变化时,就可以触发中断,让CPU来处理任务。
  • TIM定时器:分为高级定时器、通用定时器、基本定时器,不仅可以完成定时中断的任务,还可以完成测频率,生成PWM波形,配置为专用的编码器接口。
  • ADC:模数转换器,STM32内置了12位的AD转换器,可以直接读取IO口的模拟电压,无需外置
  • DMA:直接内存访问。可以帮助CPU搬运大量数据等繁杂任务。
  • USART:同步/异步串口
  • I2C/SPI:通信协议
  • RTC:实时时钟,在32内部完成时、分、秒的计时功能,还可以接外部电池,掉电也能正常运行
  • CRC:一种数据的校验方式,用于判断数据的正确性
  • IWDG/WWDG:当单片机因为异常导致死循环时,看门狗可以及时复位,保证系统的稳定。
  • DAC是数模转换器,它可以在IO口直接输出模拟电压
  • OTG:让STM32作为USB主机去读取其他USB设备


软件的安装:
  • 安装keil5 MDK,可以和keil C51安装在同一个目录下
  • 安装器件支持包,可选离线或在线安装方式
  • 双击安装STM32F1xx.DFP支持包文件
  • 软件注册
  • 打开Keil5--文件--License Management,复制CID号码
  • 在注册机中选择型号为ARM,输入CID,点击生成序列码,把序列码输入到Keil License Management的ID Code栏即可完成注册
  • 安装STLINK驱动
  • 在Keil5的安装目录下,ARM--STLINK--USBDriver中找到dpinst_amd64.exe即为STLink的驱动,安装即可
  • 安装串口驱动


系统结构图:

STM32学习笔记_前置知识_STM32

启动配置:

STM32学习笔记_前置知识_STM32_02



实物图:

STM32学习笔记_前置知识_STM32单片机_03


标签:--,前置,笔记,STM32,串口,安装,ARM,时钟
From: https://blog.51cto.com/lion99/8682397

相关文章

  • [机器学习复习笔记] SVM 支持向量机
    SVM支持向量机1.SVM基本模型1.1线性可分问题给定一个训练样本集\(D=\{(x_1,y_1),(x_2,y_2),...,(x_n,y_n)\},\;y_i\in\{-1,+1\}\)。假设两个点集\(D_0\)和\(D_1\),且\(D_0\subsetD,D_1\subsetD\),若存在一个\(d\)维向量\(w\)和实数\(b\),使得......
  • 代码大全阅读笔记
    协同构建能够有效的改善软件质量尝试用多种方法重现错误以准确判断错误原因抛开问题休息一下开发阶段的重构是提升程序质量的最佳时机。增量集成有助于项目增长注释写的糟糕很容易,写的出色很难,注释写的不好只会帮倒忙?注释的种类,重复代码,解释代码,代码标记,概述代码,代码意图说......
  • 十二月阅读笔记一
    《实例化需求》阅读笔记一在苦寻敏捷测试的过程中,看一本书,关于如何提高敏捷过程中需求、开发和验收的测试效率,让我很是感兴趣,这本书名《实例化需求:团队如何交付正确的软件》。关于如何处理需求说明与测试,不同的组织使用不同的名称,或者说是不同的定义,但他们都有一套共同的核......
  • 【刷题笔记】124. Binary Tree Maximum Path Sum
    题目Givena non-empty binarytree,findthemaximumpathsum.Forthisproblem,apathisdefinedasanysequenceofnodesfromsomestartingnodetoanynodeinthetreealongtheparent-childconnections.Thepathmustcontain atleastonenode anddoes......
  • openGauss学习笔记-141 openGauss 数据库运维-例行维护-例行重建索引
    openGauss学习笔记-141openGauss数据库运维-例行维护-例行重建索引141.1背景信息数据库经过多次删除操作后,索引页面上的索引键将被删除,造成索引膨胀。例行重建索引,可有效的提高查询效率。数据库支持的索引类型为B-tree索引,例行重建索引可有效的提高查询效率。如果数据发生......
  • openGauss学习笔记-142 openGauss 数据库运维-例行维护-导出并查看wdr诊断报告
    openGauss学习笔记-142openGauss数据库运维-例行维护-导出并查看wdr诊断报告生成快照数据需参数enable_wdr_snapshot=on,访问WDR快照数据需要sysadmin或monadmin权限,因此需要使用root账号或其他拥有权限的账号来生成WDR诊断报告。执行如下命令新建报告文件。touch/home/om/w......
  • Python上课笔记2
    Python中可以一次行输入多个数字的方法a,b=map(int,input().split())#split()函数就是可以自动识别空格断开猜数字游戏这里需要调用一下random这个库importrandomasra#当然我这里给他重新定义了一个名字i=0x=ra.randint(0,100)whilei<3:a=int(i......
  • 秦疆的Java课程笔记:51-52 数组 什么是数组&数组的声明和创建
    51什么是数组数组是入门阶段的最后部分。数组的定义:数组是相同类型数据的有序集合。数组描述的是相同类型的若干数据,按照一定的先后次序排序组合而成。其中,每一个数据称作一个数组元素,每个数组元素可以通过一个下标来访问它们。52数组的声明和创建首先必须声明数......
  • Opencv学习笔记(4)
    进一步学习灵活的操作!1、图像的旋转和平移旋转和平移都是借助cv2.warpAffine()函数实现的,其区别是转换矩阵M的不同。旋转利用cv2.getRotationMatrix2D()函数构造旋转矩阵,平移矩阵利用二维数组构建。语法:cv2.warpAffine(src,M,desize,dst,flags,borderMode,borderValue)......
  • 代码大全2 阅读笔记
    这本书里包含了很多在实际开发中慢慢摸索出来的经验,或是从其他书籍和论坛中学习到的内容。然而,更多的是一些完全没有意识到或模糊的内容。比如在第30章的编程工具中提到了“工具导向的环境”,虽然在开发过程中会有意识地制作一些工具,但没有形成明确的工具导向的开发方式。另外,在第2......