STM32简单项目
项目需要的硬件设施1.STM32主板将STM32最小系统板插在面包板上作为基本的硬件单元。STM32支持SWD和JTAG两种调试方式项目所用为STM32F103C8T6系列主流系列STM32F1内核ARM Cortex-M3主频72MHZRAM运行内存20KSRAM实际存储介质ROM程序存储器 64KFlash实际存储介质供电2.0V~3.6V标准3.3V封装LQFP48。项目使用STLINK来下载调试程序STLINK用的是SWD的方式。2.OLEDOLED作为调试和显示的屏幕。3.STLINK一款“下载器”兼“调试器”STLIMK插在电脑上用于把程序烧录进芯片以及实时调试芯片上正在运行的程序。和供电。4.LED发光二极管(指示灯)通过发光或不发光以及光的变化来告诉你设备内部正在发生什么。5.蜂鸣器BZ/BUZ将电信号转换为声音信号即发声。它主要用于向用户提供听觉反馈。6.TB6612FNC直流电机驱动模块连接控制大脑如单片机和动力心脏电机把大脑单片机的弱信号转化成驱动电机的大电流并实现精密控制。软件设备Keil5 MDK专门用来给ARM架构芯片特别是常用的STM32系列编写和调试程序的。其他的一些设备电位器通过改变电阻值来连续地调节电路中的电压或电流。USB转串口模块使STM32和电脑进行串口通信。光敏电阻模块把“光线的强弱”这个物理量转换成一个电路可以识别和处理的“电信号”通常是电压高低或电阻大小。进行IO口读取实验或者AD实验。热敏电阻模块把“温度的高低”这个物理量转换成一个电路可以识别和处理的电信号电压或电阻值。对射式红外模块利用“红外线通路是否被阻断”来检测两个物体之间是否存在遮挡物。它相当于一个非接触式的、由光线控制的电子开关。反射式红外模块利用“红外线是否被反射回来”来判断前方一定距离内是否有物体存在。它相当于一个非接触式的、主动发射光线的“接近开关”。W25Q64 Flash存储模块用于存储数据并且是用SPI总线进行通信的。MPU6050陀螺仪和加速度计让电子设备能够精确地感知自身的运动姿态和受力情况MPU6050 与主控芯片如 Arduino、STM32通过I2C 接口通信。旋转编码器可以输出两路正交的方波信号用于指示旋转的方向和速度。直流电机把电能转换成机械能。SG90舵机用PWM进行控制就是精确地旋转到一个指定的角度并保持住这个位置。它不像普通直流电机那样连续旋转而是像一只“机械手”能够听从指令将输出轴固定在0到180度之间的任意一个角度上。是一种特殊的位置伺服电机它的核心任务就是定位。可以用来做一些机器人或者机械臂的关节。STM32简介STM32是基于ARM Coretx-M内核开发的32位微控制器。STM32常应用在嵌入式领域如智能车、无人机、机器人、无线通信、物联网、工业控制、娱乐电子产品等。STM32功能强大、性能优异、片上资源丰富除了内核和存储器其他的就是片上资源外设资源、功耗低是一款经典的嵌入式微控制器。ARMCortex-R系列 和Cortex-M系列适用于嵌入式领域单片机领域。Cortex-A系列适用于高端应用型领域手机领域性能最高。片上资源/外设STM32系统结构ICode和DCode用来连接Flash和内核Flash存放编写的程序ICode指令总线用来加载程序指令DCode数据总线用来加载数据比如常量和调试数据System系统总线连接内核和SRAM、FSMCSRAM用于存储程序运行时的变量数据AHB系统总线AHB先进高性能总线用于挂载最基本或者性能高的外设如复位和时钟控制、SDIOAPB先进外设总线用于连接一般的外设因为AHB和APB的总线协议、总线速度、数据传输格式的差异所以需要两个桥接来完成数据的转换和缓存性能AHB(72MHz) APB2(72MHz) APB1(32MHz)DMA做一些简单反复的事情如数据搬运引脚定义标橙色的是电源相关的引脚标蓝色的是最小系统相关的引脚标绿色的是IO口、功能口相关的引脚。S代表电源I代表输入O代表输出I/O代表输入输出I/O口电平代表IO口所能容忍的电压FT5V没有FT容忍3.3V引脚简介1号引脚 VBAT备用电池供电的引脚接3V的电池当系统电源断电时备用电池可以给内部的RTC时钟和备份寄存器提供电源2号引脚 IO口或者入侵检测或者RTCIO口可以根据程序输出或者读取高低电平侵入检测用来做安全保障的功能RTC引脚可以用来输出RTC校准时钟、RTC闹钟脉冲或者秒脉冲3、4号引脚 IO口或者接3.768KHz的RTC晶振5、6号引脚 接系统的主晶振一般为8MHz:芯片内有锁相环电路可以对8MHz的频率进行倍频最终产生72MHz的频率作为系统的主时钟。7号NRST是系统复位引脚N代表它的低电平复位8、9号引脚是内部模拟部分的电源比如ADC模数转换器、RC振荡器VSS是负极接GND。VDD是正极接3.3V10~19号引脚都是I/O口其中PA0还兼具WKUP的功能可以唤醒处于待机模式的STM3220号引脚是I/O口或者BOOT1引脚用来配置启动模式的2122号都是I/O口23号VSS_1和24号VDD_1是系统的主电源口VSS是负极VDD是正极35、36、47、48号都是主电源口25~33号引脚都是I/O口34号加上37~40号都是I/O口或者调试端口调试端口调试程序下载程序STM32支持SWD和JTAG两种调试方式SWD需要两根线分别是SWDIO和SWCLKJTAG需要5根线分别是JTMS、JTCK、JTDI、JTDO、NJTRST项目使用STLINK来下载调试程序STLINK用的是SWD的方式只需占用PA13和PA14两个I/O口41~43和45、46号都是I/O口44号BOOT0用来启动配置STM32及供电STM32及供电STM32图中C4、C5、C6是滤波电容电容可以保证供电电压的稳定一般遇到供电都会加上滤波电容。VBAT接备用电池正极接VBAT负极接GND。备用电池是给RTC和备份寄存器服务的。晶振电路接一个8MHz的主时钟晶振8MHz经过内部锁相环倍频得到8 * 9 7MHz的主频引脚分别连接STM32 5和6对应的引脚另外还需要接两个20pF的电容电容的另一端接GND复位电路用来给单片机提供复位信号NRST接STM327号引脚NRST是低电平复位。当复位电路在上电的瞬间电容是没有电的电源通过电阻开始向电容充电并且此时电容呈现短路状态此时NRST引脚产生低电平。当电容逐渐充满电时电容相当于断路此时NRST就会被R1上来为高电平。上电瞬间的波形就是先低电平然后逐渐高电平。K1按键按下时电容会放电并且NRST引脚接地相当于手动产生了低电平复位信号K1松开后NRST回归高电平此时单片机从复位状态转为工作状态。启动配置0低电平/接地X任意主Flash存储器你烧写的用户程序1高电平/接VDD0低电平系统存储器芯片出厂内置的Bootloader用于通过串口/USB重新烧录程序1高电平1高电平内置SRAM用于调试或临时运行程序关键机制芯片只在复位信号释放从低变高的瞬间采样这些引脚的电平并锁存起来。在正常运行过程中你再改变这些引脚的电平是无效的。下载端口下载端口就是指把编译好的程序烧录到芯片内部Flash存储器的物理连接接口。它是在PCB上为烧录程序预留的一组引脚。STM32F103C8T6核心板原理图