长短按键(此定时器的时钟频率是80MHz,F103是72MHz) 2.基本定时器是TIM6和TIM7,按键设定为10ms扫描一次,PSC设为80,ARR为10000,Key[i].Key_Judge = 0;1.GPIO口设置成上拉输入(默认为高电平,按下按键时为低电平)uint8_t Key_Num = 0;
STM32 PWM输出工作原理 如下图,定时器分为三部分结构,基本的时基单元,输入捕获和输出比较。输入捕获比较寄存器是连接这三部分的桥梁。PWM占空比(Duty):高电平持续时间(TON)与周期时间(Period)的比值。PWM周期(Period):一个完整波形所持续的时间。
中断系统介绍 当中央处理器CPU正在处理某项事的时候外界发生了紧急事件请求,要求CPU暂停当前工作转而去处理这个紧急事件,此时CPU将保存断点地址(指的是当前指令执行完后下一条指令所在的地址)优先处理最紧急事件的中断请求源,即规定每一个中断源有一个优先级别,CPU总是先处理优先级别最高的中断请求。当CPU正在处理一个中断请求时,发生了另外一个优先级比它还高的中断请求。如果CPU能够暂停对原来中断源的服务程序,转而去处理优先级更高的中断请求源,处理完以后,再回到原低级中断服务程序,这样的过程称为。
MPU6050陀螺仪传感器 九轴姿态传感器:加了一个三轴磁场强度传感器十轴姿态传感器:加了一个气压强度传感器XCL、XDA可以接扩展的磁力计或者气压计,来弥补此芯片缺失的稳定偏航角或者飞行高度。接此引脚可以在芯片内部将扩展传感器和内部的六轴姿态传感器的数据进行数据融合和姿态解算。若不需要也可以直接将扩展的传感器接到SCK和SCL,直接将数据发送到驱动芯片。
SPI通信协议(硬件) TDR将数据放到移位寄存器内时,TXE置1,此时可以再在TDR内放置数据;移位寄存器将数据通过MOSI将数据移出,同时接收MISO的移入数据,然后放置于RDR中,此时RXNE为1,当检查RXNE置1时,尽快将数据从RDR中读出。TDR数据整体转入移位寄存器的时刻,置TXE标志位为1;移位寄存器数据整体转入RDR的时刻,置RXNE标志位为1。SPI1是APB2的外设,SPI2是APB1的外设。数据发送完等数据接收完之后再发送下一个字节数据。
SPI通信协议(软件) 四根通信线:SCK(Serial Clock)、MOSI(Master Output Slave Input)、MISD(Master Input Slave Output)、SS(Slave Select)【SS低电平有效,】同步,全双工(数据发送和接收单独各占一条线,能够同时发收数据)一主多从。
STM32 DMA直接存储器存取 DMA(Direct Memory Access)直接存储器存取【DMA有权限访问单片机内部存储器包括运行内存SRAM、程序存储器Flash和寄存器等等】DMA可以提供外设和存储器或者存储器和存储器之间的高速数据传输,无须CPU干预,节省了CPU资源。12个对可配置的通道:DMA1(7个通道),DMA2(5个通道)每个通道都支持软件触发特定的硬件触发(每个DMA通道,其硬件触发源是不一样的)STM32F103C8T6的DMA资源:DMA1(7个通道)
STM32 ADC模数转换器 ADC(Analog-Digital Converter)模拟-转换器ADC可以将引脚上连续变化的模拟电压转换为内存中存储的数字变量,建立模拟电路到数字电路的桥梁12位逐次逼近型ADC,1us转换时间(分辨率用多少位表示,12位AD值表示范围则是0~2^12-1(0~4095),位数越高,量化结果越精细,对应分辨率越高。1us转换时间对应的频率就是1MHz。输入电压范围:0~3.3V,转换结果范围:0~4095(中间是一 一对应的线性关系)18个输入通道,可测量16个外部和2个内部信号源。
STM32 TIM编码器接口 Encoder Interface 编码器接口编码器接口可接收增量(正交)编码器的信号,根据编码器旋转产生的正交脉冲,自动控制CNT自增或自减,从而指示编码器的位置、旋转方向和旋转速度。每个高级定时器和通用定时器都拥有1个编码器接口两个输入引脚借用了输入捕获的通道1和通道2。
STM32 TIM输入捕获 IC(Input Capture)输入捕获输入捕获模式下,等参数。每个可配置为模式(PWM输入模式Input),同时测量频率和占空比可配合模式,实现硬件全自动测量。通用定时器和高级定时器输入捕获相同,没有区别。基本定时器没有输入捕获功能。
STM32 TIM输出比较 OC(Output Compare)输出比较【IC(Input Compare)输入捕获;CC(Capture Compare)输入捕获和输出比较的单元】输出比较可以通过比较CNT与CCR寄存器值的关系,来对输出电平进行置1或0或翻转的操作,用于输出一定频率和占空比的波形。
STM32 EXTI外部中断 / 对射式红外传感器/旋转编码器 EXTI可以检测指定GPIO口的电平信号,当其指定的GPIO口产生电平变化时,EXTI将立即向NVIC发出中断申请,经过NVIC裁决后即可中断CPU主程序,使CPU执行中断上升沿/下降沿/双边沿/软件触发(具体原理见下面的EXTI框图,信号进到一个或门,只要有1即为1)所有的GPIO口,但相同的Pin不能同时触发中断16个GPIO_Pin,外加PVD输出(电源电压监测),RTC闹钟、USB唤醒、以太网唤醒。
STM32 Timer(TIM) 定时器可以对输入的时钟进行计数,并在计数值达到设定值时触发中断16位计数器、预分频器、自动重装寄存器的时基单元,在72MHz计数时钟下可以实现最大59.65s 的定时不仅具备基本的定时中断功能,而且还包含内外时钟源选择、输入捕获、输出比较、编码器接口、主从触发模式等多种功能分为高级定时器、通用定时器、基本定时器三种类型。
STM32 OLED显示屏 串口调试:通过串口通信,将调试信息发送到电脑端,电脑使用串口助手显示调试信息显示屏调试:直接将信息打印到显示屏Keil调试模式:借助Keil软件的调试模式,可使用单步运行、设置断点、查看寄存器及变量等功能。
STM32 GPIO简析 与51单片机类似,即按下导通,松手断开。且按键在按下以及松手时会有一段时间的抖动,对按键的控制稳定性有一定影响。(上方两个方法—按下时低电平,松手时高电平下方两种接法—按下时高电平,松手时低电平)第二个图可以配置为浮空输入或者上拉输入,二者在外部都有R1这个上拉电阻,只不过上拉输入时,STM32内部也有一个上拉电阻,使得上拉能力更强。按下导通为低电平,松手断开为高电平:按下时,接通GND,为低电平;松开时,按键悬空,导致电压不稳定,所以需要接一个上拉电阻,来得到一个稳定的电平。
STM32 GPIO输出 推挽输出模式下,P-MOS和N-MOS均有效,数据寄存器为1 时,上管导通,下管断开,输出接到VDD,输出高电平;数据寄存器为0时,上管断开,下管导通,输出接到VSS,输出低电平。通过二极管保护电路,上方VDD为3.3V, 下方VSS为0V,输入大于3.3V时,引脚与VDD导通;小于0V时,与VSS导通。输入模式下可读取端口的高低电平或电压,用于读取按键输入、外接模块电平信号输入、ADC电压采集、模拟通信协议接收数据等。利用上拉和下拉电阻,配置成上拉输入和下拉输入模式,若两个都断开,则为浮空输入模式。