福州网站建设方案优化,个人创建网站程序,修改wordpress的登陆地址,广东网站建设专业公司个人主页~
这是一个新的系列#xff0c;stm32单片机系列#xff0c;资料都是从网上找的#xff0c;主要参考江协科技还有正点原子以及csdn博客等资料#xff0c;以一个一点没有接触过单片机但有一点编程基础的小白视角开始stm32单片机的学习#xff0c;希望能对也没有学过… 个人主页~
这是一个新的系列stm32单片机系列资料都是从网上找的主要参考江协科技还有正点原子以及csdn博客等资料以一个一点没有接触过单片机但有一点编程基础的小白视角开始stm32单片机的学习希望能对也没有学过51直接学32的同学们有一定的作用和帮助 文章内容有很多是自己的理解希望各位嵌入式大佬们可以看一下文章然后帮忙指正一下错误感谢
正片开始 初学stm32单片机 一、准备条件二、外设1、GPIO通用输入输出口2、调试工具3、EXTI外部中断AFIO复用输入输出口 4、TIM定时器5、USART串口6、I2C通信7、SPI通信8、RTC实时时钟 三、创建工程四、分析系统结构五、引脚定义六、启动配置七、最小系统电路 一、准备条件
直接在B站上搜索stm32江协科技在那里下载安装包按照2-1和2-2的步骤下载好安装好需要的配件Keil5MDK以及F1单片机资源新建好一个工程
啰嗦的我就不再叙述了这款芯片使用的是STM32F1 内核为ARM Cortex-M3 主频为72MHz 随机存取存储器RAM大小为20K实际存储介质为SRAM 只读存储器ROM大小为64K实际存储介质为Flash 标准3.3V供电
SRAM和Flash的位置 这张图下面再分解
二、外设
在江协科技的PPT中up为我们整理了整个芯片所有的外设但有些外设用的比较少有句话叫做20%的外设可以应用到80%的场景下所以作为入门博客我会把常用的外设罗列清楚不太用的就不再介绍了
每个单片机都要用到的一个外设就是RCC它负责控制系统时钟和复位相关功能只要MCU想要驱动程序必须由RCC来设置初始化时钟因为静息状态下硬件为了节省功耗是不工作的
除了RCC以外最常用的就是以下八个外设
1、GPIO通用输入输出口
单片机芯片引脚大多数都是GPIO口用来输入和输出根据引脚的数量分为GPIOA、GPIOB、GPIOC等GPIOA又分为GPIOA0到GPIOA15简写问PA0到PA1516个引脚
GPIO有四种输入模式四种输出模式 输入模式浮空输入、上拉输入、下拉输入、模拟输入 输出模式开漏输出、推挽输出、复用开漏输出、复用推挽输出
其中输出模式全部为数字输出输入模式仅模拟输入为模拟输入其他都为数字输入
引脚定义图 可以看到大多数的引脚都为GPIO通用输入输出口
2、调试工具
这一章主要讲怎么调试有三种调试方式 1串口调试通过串口通信电脑使用串口助手显示调试信息 2显示屏调试也就是使用OLED屏调试 3Keil调试也就是使用开发软件进行调试
这里我在学习的过程中不知道串口是什么在网上搜了一下得出的答案是多用途的接口它允许计算机和外部设备之间的数据传输
这里我们更加推荐显示屏调试以及Keil调试显示屏调试时最简单的对于学过C语言的同学而言使用Keil软件进行调试应该是比较容易上手的 3、EXTI外部中断
中断是在主程序的运行过程中出现了特定的中断触发条件也就是中断源使得CPU暂停当前正在运行的程序转而去处理中断程序处理完成后返回原来的位置继续执行程序
当有多个中断源同时申请中断时CPU会根据中断源的轻重缓急选择相应更加紧急的中断源更紧急的中断源优先级更高我们可以通过编写程序的方式决定中断源优先级
当一个中断程序正在运行时优先级更高的中断源申请中断那么当前程序中断先执行优先级更高的中断程序
AFIO复用输入输出口
AFIO主要用于引脚复用功能的选择和重定义 它主要完成两个任务复用功能引脚重映射、中断引脚选择
4、TIM定时器
TIM就是timer定时器的简写可以对输入的时钟进行计数并且在计数值达到设定值时触发中断
时钟一个周期性的信号用于为定时器提供一个稳定的、可测量的时间基准。这个时钟信号可以是STM32内部生成的也可以是外部提供的
根据复杂度和应用场景定时器分为高级定时器、通用定时器、基本定时器三种类型
5、USART串口
USART是一种全双工通用同步异步串行收发模块用于实现数据在微控制器与外部设备之间的串行通信它支持同步和异步操作能够独立地进行数据的接收和发送
6、I2C通信
I2C是一种双向、二线制、串行总线标准用于连接低速外围设备 I2C总线由两根信号线组成分别是时钟线由主机设备控制用于同步数据传输的时钟信号和数据线用于在主机和从机之间传输数据
7、SPI通信
SPI通信以主从方式工作即一个主机和一个或多个从机之间的通信 SPI也支持全双工通信主设备和从设备可以同时发送和接收数据
8、RTC实时时钟
RTC模块的工作原理基于一个32位的计数器该计数器以固定的时间间隔通常为1秒递增。当计数器溢出时会产生一个中断或触发其他事件。在STM32中RTC模块通常与电源管理模块和备份寄存器配合使用以实现断电保护和数据恢复功能
三、创建工程
根据视频的步骤安装好后大约就是这样的效果 四、分析系统结构 这里的系统结构视频中应该已经分析的挺清楚了但是我第一遍听的时候也是没有听懂所以搁这里做一个复盘
左上角的Cortex-M3是MCU引出三根总线通过ICode总线连接Flash接口加载程序指令DCode数据总线也连接Flash加载数据System系统总线连接比如SRAM存储运行时的变量数据还有FSMCFSMC是外接存储不为我们所要梳理的内容
AHB系统总线用于挂载主要外设意思是先进高性能总线挂载着RCC和SDIOSDIO用于连接外接SD卡不为我们所要梳理的内容 通过桥接1和桥接2分别接到APB2和APB1两个外设总线上APB用于连接一般的外设APB2一般连接外设中比较重要的部分APB1主要连接外设中稍微不重要的部分
由于MCU主要进行一些重要的工作某些简单的工作我们不准备使用MCU来进行了这里给MCU配备了DMA用来处理一些很简单的程序比如数据的挪用等简单但是要反复作用的事情它通过DMA总线连接到总线矩阵上它与MCU一样有总线的控制权用于访问外设当需要搬运数据等的操作时外设会通过请求线向DMA发出请求然后DMA就会获得总线控制权进行操作
五、引脚定义 这份材料是由江协科技up整理出来的对初学者是友好的因为一上来就看手册很容易被劝退stm32的手册又长又多看起来是很难受的这里简单梳理一下引脚的作用
类型S代表电源I代表输入O代表输出I/O代表输入输出I/O口电平代表I/O口所能容忍的电压FT的为5V其他为3.3V
主功能就是默认功能配置I/O口的时候可以选择是通用I/O口还是默认复用功能连接到对应外设的话可以调整为默认复用功能如果同一个I/O口的两种复用功能我都需要用在其他引脚有该重定义功能以及没有连接的时候可以连接后将该口配置为重定义功能
1号引脚VBAT是一个备用电源可以接电池系统电源断电时电池可以给RTC和备份寄存器提供电源
2号引脚有三个功能分别是普通I/O口、侵入检测、RTC时钟
3、4号引脚是I/O口或者接32.768KHz的RTC晶振
5、6号引脚接系统的主晶振一般为8MHz通过特殊电路产生72MHz的频率作为系统的主时钟
7号引脚NRST是系统复位引脚N代表是低电平复位的
8、9号引脚是内部模拟部分的电源VSS负极接GNDVDD正极接3.3V
10 ~ 19、21 ~ 22号、25 ~ 33号、41 ~ 43号、45 ~ 46号引脚都是I/O口PA0有wake up的功能可以用于唤醒处于待机模式的STM32
20号引脚是I/O口或者BOOT1引脚BOOT1引脚用来配置启动模式
44号引脚是BOOT0引脚BOOT0引脚用来配置启动模式
STM32采用分区供电的方式供电口多 23 、24、35、36、47、48号引脚VSS_n和VDD_n是系统的主电源口
37 ~ 40号都是默认主功能都是调试端口用来调试和下载程序支持SWD和JTAG两种调试方式SWD两根线34号SWDIO和37号SWCLK JTAG五根线34号JTMS、37号JTCK、38号JTDI、39号JTDO、40号NJTRST
这里我们说的多少号引脚有什么样的作用不是每个板子的该号引脚就是这样的作用作用是要看它的功能的
六、启动配置
在STM32中可以通过配置BOOT0和BOOT1引脚来配置三种不同的启动模式 当BOOT0引脚接地时这时不论BOOT1接地还是接3.3V启动模式都是主闪存存储器模式也就是使用Flash 当BOOT0引脚接3.3VBOOT1引脚接地启动模式就是系统存储器可以用于串口下载程序 当BOOT0引脚和BOOT1引脚同时接3.3V启动模式就是内置的SRAM
BOOT引脚是在通电的一瞬间有效的过了这段时间就会变为普通引脚
七、最小系统电路
从左到右从上到下依次是复位电路BOOT配置电路、电源指示灯以及I/O口测试灯、下载电路、稳压芯片、引脚排针芯片、USB接口、晶振电路、滤波电容
通过这些小电路引脚的名称确定它们所要接到的位置除了直接看它的结构也可以通过引脚名称来获取它的功能只要清除引脚的作用就可以了 分享到这里~