STM32 F103ZET6学习
FHNCSDN
近期有些事情,有些消息回复不及时。
展开
-
电容触摸按键 实验
RC充放电电路原理:RC电路充放电公式:Vt = V0+(V1-V0)* [1-exp(-t/RC)]V0 为电容上的初始电压值;V1 为电容最终可充到或放到的电压值;Vt 为t时刻电容上的电压值。如果V0为0,也就是从0V开始充电。那么公式简化为:Vt= V1* [1-exp(-t/RC)]结论:同样的条件下,电容值C跟时间值t成正比关系, 电容越大,充电到达某个临界值的时间越长。电容充电时间与电容大小关系电容触摸按键原理:R:外接电容充放电电阻。Cs:原创 2020-12-10 16:06:51 · 1517 阅读 · 0 评论 -
定时器输入捕获实验
输入捕获简介:输入捕获模式可以用来测量脉冲宽度或者测量频率。STM32 的定时器,除了 TIM6 和 TIM7,其他定时器都有输入捕获功能。STM32 的输入捕获,简单的说就是通过检测 TIMx_CHx 上的边沿信号,在边沿信号发生跳变(比如上升沿/下降沿)的时候,将当前定时器的值(TIMx_CNT)存放到对应的通道的捕获/比较寄存器(TIMx_CCRx)里面,完成一次捕获。同时还可以配置捕获时是否触发中断/DMA 等。STM32 PWM工作过程:STM32 输入捕获工作过程(通道1为例):一句原创 2020-12-09 19:01:42 · 1464 阅读 · 0 评论 -
STM32 PWM输出实验
定时器用来产生PWM输出:STM32 的定时器除了 TIM6 和 7。其他的定时器都可以用来产生 PWM 输出。其中高级定时器 TIM1 和 TIM8 可以同时产生多达 7 路的 PWM 输出。而通用定时器也能同时产生多达 4路的 PWM 输出,这样,STM32 最多可以同时产生 30 路 PWM 输出!STM32 PWM工作过程STM32 PWM工作过程(通道1为例:CCR1:捕获比较(值)寄存器(x=1,2,3,4):设置比较值。CCMR1: OC1M[2:0]位:对于PWM方式原创 2020-12-09 11:42:47 · 2471 阅读 · 0 评论 -
STM32 定时器中断
通用定时器工作过程:原创 2020-12-08 19:20:28 · 18338 阅读 · 0 评论 -
STM32 通用定时器基本原理
STM32F10x系列总共最多有8个定时器:三种STM32定时器区别:通用定时器功能特点描述:①、 STM32 的通用 TIMx (TIM2、TIM3、TIM4 和 TIM5)定时器功能特点包括:位于低速的APB1总线上(时钟来源可以是APB1的时钟)16 位向上、向下、向上/向下(中心对齐)计数模式,自动装载计数器(TIMx_CNT)。16 位可编程(可以实时修改)预分频器(TIMx_PSC),计数器时钟频率的分频系数 为 1~65535 之间的任意数值。4 个独立通道(原创 2020-12-07 18:05:00 · 1008 阅读 · 0 评论 -
窗口看门狗
窗口看门狗概述之所以称为窗口就是因为其喂狗时间是一个有上下限的范围内(窗口),你可以通过设定相关寄存器,设定其上限时间(下限固定)。喂狗的时间不能过早也不能过晚。而独立看门狗限制喂狗时间在0-x内,x由相关寄存器决定。喂狗的时间不能过晚。窗口看门狗工作示意图窗口看门狗框图:窗口看门狗工作过程总结STM32F的窗口看门狗中有一个7位的递减计数器T[6:0],它会在出现下述2种情况之一时产生看门狗复位:当喂狗的时候如果计数器的值大于某一设定数值W[6:0]时,此设定数值在WWDG_CFR寄存器原创 2020-12-06 21:27:26 · 478 阅读 · 0 评论 -
独立看门狗实验
为什么要看门狗在由单片机构成的微型计算机系统中,由于单片机的工作常常会受到来自外界电磁场的干扰,造成程序的跑飞,而陷入死循环,程序的正常运行被打断,由单片机控制的系统无法继续工作,会造成整个系统的陷入停滞状态,发生不可预料的后果,所以出于对单片机运行状态进行实时监测的考虑,便产生了一种专门用于监测单片机程序运行状态的模块或者芯片,俗称“看门狗”(watchdog) 。看门狗解决的问题是什么在启动正常运行的时候,系统不能复位。在系统跑飞(程序异常执行)的情况,系统复位,程序重新执行。ST原创 2020-12-06 18:34:31 · 785 阅读 · 1 评论 -
外部中断实验
外部中断概述1、 STM32的每个IO都可以作为外部中断输入。2、 STM32的中断控制器支持19个外部中断/事件请求:线0~15:对应外部IO口的输入中断。线16:连接到PVD输出。线17:连接到RTC闹钟事件。线18:连接到USB唤醒事件。每个外部中断线可以独立的配置触发方式(上升沿,下降沿或者双边沿触发),触发/屏蔽,专用的状态位。思考: STM32供IO使用的中断线只有16个,但是STM32F10x系列的IO口多达上百个,STM32F103ZET6(112),STM32F103R原创 2020-12-06 15:54:37 · 1347 阅读 · 0 评论 -
正点原子stm32--串口通信实验讲解里关于USART_RX_STA的问题与思考
这篇博文讲的挺详细的可以参考以下:USART_RX_STA详解转载 2020-12-06 09:56:58 · 1057 阅读 · 0 评论 -
串口通信寄存器/库函数配置、实例编写
常用的串口相关寄存器USART_SR状态寄存器USART_DR数据寄存器USART_BRR波特率寄存器串口操作相关库函数(省略入口参数):void USART_Init(); //串口初始化:波特率,数据字长,奇偶校验,硬件流控以及收发使能void USART_Cmd();//使能串口void USART_ITConfig();//使能相关中断void USART_SendData();//发送数据到串口,DRuint16_t USART_ReceiveData();//接受数据,从原创 2020-12-05 19:58:20 · 1590 阅读 · 0 评论 -
STM32 串行通信原理
处理器与外部设备通信的两种方式:并行通信传输原理:数据各个位同时传输。优点:速度快缺点:占用引脚资源多串行通信传输原理:数据按位顺序传输。优点:占用引脚资源少缺点:速度相对较慢串行通信:按照数据传送方向,分为:单工:数据传输只支持数据在一个方向上传输半双工:允许数据在两个方向上传输,但是,在某一时刻,只允许数据在一个方向上传输,它实际上是一种切换方向的单工通信;全双工:允许数据同时在两个方向上传输,因此,全双工通信是两个单工通信方式的结合,它要求发送设备和接收设备都有独立原创 2020-12-04 21:40:36 · 768 阅读 · 0 评论 -
STM32中断优先级的管理(NVIC)
STM32 NVIC 中断优先级管理CM3 内核支持 256 个中断,其中包含了 16 个内核中断和 240 个外部中断,并且具有 256级的可编程中断设置。STM32 并没有使用 CM3 内核的全部东西,而是只用了它的一部分。STM32 有 84 个中断,包括 16 个内核中断和 68 个可屏蔽中断,具有 16 级可编程的中断优先级。STM32 的 68 个可屏蔽中断,在 STM32F103 系列上面,又只有 60 个(在 107 系列才有 68 个)。因为我们开发板选择的芯片是 STM32F10原创 2020-12-04 20:43:53 · 1902 阅读 · 0 评论 -
STM32F1 端口复用、端口(部分和完全)重映射
端口复用功能STM32 有很多的内置外设(比如:串口、ADC、DAC等是独立的模块和内核连接在一起),这些外设的外部引脚都是与 GPIO 复用的。也就是说,一个 GPIO如果可以复用为内置外设的功能引脚,那么当这个 GPIO 作为内置外设使用的时候,就叫做复用。大家都知道,MCU 都有串口,STM32 有好几个串口。比如说 STM32F103ZET6 有 5 个串口,我们可以查手册知道,串口 1 的引脚对应的 IO 为 PA9,PA10.PA9,PA10 默认功能是 GPIO,所以当PA9,PA10 引原创 2020-12-04 17:49:01 · 5482 阅读 · 0 评论 -
Systick滴答定时器寄存器、delay()延时函数、SysTick_Config函数
v原创 2020-12-03 21:09:53 · 1627 阅读 · 0 评论 -
SystemInit时钟系统初始化函数剖析
SystemInit()函数:void SystemInit (void){ /* Set HSION bit */ RCC->CR |= (uint32_t)0x00000001;//把内部的HSI RC(高速时钟)打开#ifndef STM32F10X_CL RCC->CFGR &= (uint32_t)0xF8FF0000;//这一句不会执行,由于定义的是STM32F10X_HD,他会执行else后的语句。#else RCC->CFGR &=原创 2020-12-02 21:10:51 · 582 阅读 · 0 评论 -
STM32 时钟系统
STM32时钟系统的基本概念概念及意义(1)概念:时钟系统是由振荡器(信号源)、定时唤醒器、分频器等组成的电路。常用的信号源有晶体振荡器和RC振荡器。(2)意义:时钟对数字电路而言非常重要,没有时钟数字电路就没法工作,其全称是时钟频率,一般由晶振来提供时钟频率。在数字电路中,所有数据、逻辑单元等状态的更新都是以时钟为基础的,时钟频率在数字电路中起着同步的作用。时钟是嵌入式系统的脉搏,处理器内核在时钟驱动下完成指令执行,状态变换等动作。外设部件在时钟的驱动下完成各种工作,比如串口的数据发送,A/D转化,原创 2020-12-02 19:26:10 · 691 阅读 · 0 评论 -
MDK寄存器地址映射分析
在51单片机中:首先我们看看 51 中是怎么做的。51 单片机开发中经常会引用一个 reg51.h 的头文件,下面我们看看他是怎么把名字和寄存器联系起来的:sfr P0 =0x80;sfr 也是一种扩充数据类型,点用一个内存单元,值域为 0~255。利用它可以访问 51 单片机内部的所有特殊功能寄存器。如用 sfr P1 = 0x90 这一句定义 P1 为 P1 端口在片内的寄存器。然后我们往地址为 0x80 的寄存器设值的方法是:P0=value;在STM32中:在 STM32 中,同样也原创 2020-12-02 16:44:42 · 611 阅读 · 0 评论 -
STM32F103ZET6 蜂鸣器、按键
蜂鸣器的硬件电路:蜂鸣器实验步骤:原创 2020-12-02 16:12:09 · 5326 阅读 · 2 评论 -
STM32F103ZET6 点灯的三种操作方式(库函数、寄存器、位操作)
main.c#include "stm32f10x.h"#include "LED.h"#include "delay.h"int main(void){ LED_Init();//GPIO³õʼ»¯ delay_init();//³õʼ»¯ÑÓʱº¯Êý while(1){ GPIO_SetBits(GPIOB,GPIO_Pin_5);//GPIOBÊä³ö¸ßµçƽ GPIO_SetBits(GPIOE,GPIO_Pin_5);//GPIOEÊä³ö¸ßµçƽ原创 2020-12-01 21:04:33 · 2592 阅读 · 0 评论 -
STM32F1 GPIO工作原理初探
GPIO工作方式:1、四种输入模式输入浮空输入上拉输入下拉模拟输入2、四种输出模式开漏输出:只可以输出强低电平,高电平得靠外部电阻拉高。输出端相当于三极管的集电极,要得到高电平状态需要上拉电阻才行,适合于做电流型的驱动,其吸收电流的能力相对强(一般20ma以内)开漏复用功能推挽式输出:可以输出强高低电平,连接数字器件推挽式复用功能三种最大翻转速度2MHZ10MHZ50MHZ...原创 2020-11-30 18:48:20 · 213 阅读 · 0 评论