stm32学习
海溟
这个作者很懒,什么都没留下…
展开
-
Stm32(十)基于pwm的电机转动
1.使用TIM3定时器发出pwm信号控制PB5端口达到控制电机的效果(控制电机的转动状态和速度)timer.c#include "timer.h"#include "led.h"u8 TIM5CH1_CAPTURE_STA=0; u16 TIM5CH1_CAPTURE_VAL;void TIM3_IRQHandler(void) //TIM3 ??{if(TIM_GetITStatus(TIM3, TIM_IT_Update)!=RESET){ LED1=!LED1; TIM_C原创 2020-07-27 19:48:08 · 1574 阅读 · 0 评论 -
Stm32学习(十一)电容触摸按键
1.RC充放电电路原理:RC电路充放电公式:Vt = V0 + (V1-V0)*[1-exp(-t/RC)]vo为电容的初始电压值:v1为电容最终可充到或放到的电压值:vt为t时刻电容上的电压值结论:同样的条件下,电容值C跟时间值t成正比关系,电容越大,充电到达某个临界值的时间越长。原理:RC电路充放没按键时(cs),有一个电容,测出在该情况下达到某一特定电压需要的时间(t1),按下 按键时,多并联了一个电容(cx),电容变大(cs+cx),这时达到某一电压需要的时间(t2)比第一次长,原创 2020-07-27 15:55:17 · 320 阅读 · 0 评论 -
Stm32学习(十)通用定时器pwm
1.PWM工作过程CCR1:捕获比较(值)寄存器(x=1,2,3,4):设置比较值。CCMR1:OC1M[2:0]位:对于PWM方式下,用于设置PWM模式1【110】或者PWM模式2【111】。CCER:CC1P位:输入/捕获1输出极性。0:高电平有效,1:低电平游戏。CCER:CC1E位:输入/捕获1输出使能。0:关闭,1:打开。2.PWM模式脉冲宽度调制模式可以产生一个由TIMx_ARR寄存器确定频率,由TIMx_CCRx寄存器确定占空比的信号。在TIMx_CCMRx寄存器,最后还要设置T原创 2020-07-25 09:58:54 · 455 阅读 · 0 评论 -
Stm32学习(九)通用定时器
1.STM32定时器STM32F10x系列总共最多有8个定时器2.STM32的通用TIMx(TIM2,TIM3,TIM4,TIM5)定时器功能特点位于低速的APB1总线上(APB1)16位向上,向下,向上/向下(中心对齐)计数模式,自动装载计数器(TIMx_CNT)16位可编程预分频器(TIMx_PSC),计数器时钟频率的分频系数为1-65535之间的任意数值4个独立通道(TIMx_CH1-4),这些通道可以用来作为:(1)输入捕获(2)输出比较(3)PWM生成(4)单脉冲模式输出可原创 2020-07-18 15:57:23 · 550 阅读 · 0 评论 -
Stm32学习(九)时钟中断实验
程序要求通过定时器中断配置,每500ms中断一次,然后中断服务函数中控制LED实现LED1状态取反(闪烁)。Tout(溢出时间)=(ARR+1)(PSC+1)/Tclk1.定时器中断实现步骤(1)能定时器时钟 RCC_APB1PeriphClockCmd();(2)初始化定时器,配置ARR,PSCTIM_TimeBaseInit();(3)开启定时器中断,配置NVICvoid TIM_ITConfig();NVIC_Init();(4)使能定时器TIM_Cmd();(5)编原创 2020-07-18 15:56:53 · 735 阅读 · 0 评论 -
stm32学习(八)窗口看门狗
1.窗口看门狗窗口看门狗喂狗时间是是一个有上下限的范围内(窗口),你可以通过设定相关寄存器,设定其上限时间(下限固定)。喂狗的时间不能过早也不能过晚。原创 2020-07-16 14:20:53 · 287 阅读 · 0 评论 -
Stm32学习(八)独立看门狗
1.看门狗的意义在由单片机构成的微型计算机系统中,由于单片机的工作常常会受到来自外界电磁场的干扰,造成程序的跑飞,而陷入死循环,程序的正常运行被打断,由单片机的控制系统无法继续工作,会造成整个系统的陷入停滞状态,发生不可预料的后果,所以出于对单片机运行状态进行实时监测的考虑,便产生了一种专门用于监测单片机程序运行状态的模块或者芯片,俗称“ 看门狗 ”(watchdog)。2.看门狗的作用在启动正常运行的时候,系统不能复位。在系统跑飞(程序异常执行)的情况,系统复位,程序重新执行。3.看门狗stm原创 2020-07-14 16:51:59 · 173 阅读 · 0 评论 -
Stm32学习(七)外部中断
1.外部中断(1)stm32的每一个IO都可以作为外部中断输入。(2)stm32的中断控制器支持19个外部中断/事件请求:线0~15:对应外部IO口的输入中断。线16:连接到PVD输出。线17:连接到RTC闹钟事件。线18:连接到USB唤醒事件。每个外部中断线可以独立的配置触发方式(上升沿,下降沿或者双边沿触发),触发/屏蔽,专用的状态位。*2.IO与中断线的对应 *(112IO对应16个中断线)STM32 是这样设计,GPIO 的管教 GPIOx.0~GPIOx.15(x=A,B,C,原创 2020-07-13 16:01:17 · 989 阅读 · 0 评论 -
Stm32学习(六)串口配置(二)
1.串口配置的一般步骤(1)串口时钟使能,GPIO时钟使能:RCC_APB2PeriphClockCmd();(2)串口复位:USART_DeInit();这一步不是必须的(3)GPIO端口模式设置:GPIO_Init();模式设置GPIO_Mode_AF_PP(4)串口参数初始化:USART_Init();(5)开启中断并且初始化NVIC(如果需要开启中断才需要这个步骤)NVIC_Init();USART_ITCon;(6) 使能串口:USART_Cmd();(7) 编写中断处理函数原创 2020-07-12 11:16:46 · 537 阅读 · 0 评论 -
Stm32学习(六)串行通信原理(一)
1.通信方式并行通信-传输原理:数据各个位同时传输。-优点:速度快-缺点:占用引脚资源多串行通信-传输原理:数据按位顺序传输。-优点:速度相对较慢-缺点:占用引脚资源少2串行通信按照数据传送方向,分为:单工:数据传输只支持数据在一个方向上传输半双工:允许数据在两个方向上传输,但是,在某一时刻,只允许数据在一个方向上传输,它实际上是一种切换方向的单工通信;全双工:允许数据同时在两个方向上传输,因此,全双工通信是两个单工通信方式的结合,它要求发送设备和接收设备都有独立的接收和发送原创 2020-07-12 10:50:17 · 177 阅读 · 0 评论 -
Stm32 IO的模式
在STM32中选用IO模式(1) 浮空输入_IN_FLOATING ——浮空输入,可以做KEY识别,RX1(2)带上拉输入_IPU——IO内部上拉电阻输入(3)带下拉输入_IPD—— IO内部下拉电阻输入(4) 模拟输入_AIN ——应用ADC模拟输入,或者低功耗下省电(5)开漏输出_OUT_OD ——IO输出0接GND,IO输出1,悬空,需要外接上拉电阻,才能实现输出高电平。当输出为1时,IO口的状态由上拉电阻拉高电平,但由于是开漏输出模式,这样IO口也就可以由外部电路改变为低电平或不变。可以读转载 2020-07-12 16:16:09 · 438 阅读 · 0 评论 -
Stm32学习(五)NVIC中断优先级
1.NVIC中断优先级分组CM3内核支持256个中断,其中包含了16个内核中断和240个外部中断,并且具有256级的可编程中断设置。STM32并没有使用CM3内核的全部东西,而是只用了它的一部分STM32有84个中断,包括16个内核中断和68个可屏蔽中断,具有16级可编程的中断优先级。STM32F103系列上面,又只有60个可屏蔽中断(在107系列才有68个)2.中断管理方法首先,对STM32中断进行分组,组0~4。同时,对每个中断设置一个抢占优先级和一个响应优先级值。3.抢占优先级&原创 2020-07-11 16:45:51 · 2266 阅读 · 0 评论 -
Stm32学习(四)端口复用和重映射学习
端口复用1.端口的复用STM32有很多的内置外设,这些外设的外部引脚都是与GPIO复用的。也就是说, 一个GPIO如果可以复用为内置外设的功能引脚,那么当这个GPIO作为内置外设使用的时候,就叫做复用。2.端口复用配置过程(以PA9,PA10配置为串口1为例)(1)GPIO端口时钟使能RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE);(2)复用外设时钟使能RCC_APB2PeriphClockCmd(RCC_APB2Periph_USA原创 2020-07-11 16:45:22 · 699 阅读 · 0 评论 -
Stm32学习(三)Systick的学习
1.Systick定时器Systick定时器, 是一个简单的定时器,对于CM3,CM4内核芯片,都有Systick定时器。Systick定时器常用来做延时,或者实时系统的心跳时钟。这样可以节省MCU资源,不用浪费一个定时器。比如UCOS中,分时复用,需要一个最小的时间戳,一般在STM32+UCOS系统中,都采用Systick做UCOS心跳时钟。2.Systick工作原理Systick定时器就是系统滴答定时器,一个24位的倒计数定时器,计到0时,将从RELOAD寄存器中自动重装载定时初值。只要不把它S原创 2020-07-09 16:58:05 · 243 阅读 · 0 评论 -
stm32学习(二)按键输入实验
理论原理图:原理:原key0和key1是高电压,wkup_up是低电压,当分别按下时key0,key1变为低电压,而wkup_up则为高电压代码1.初始化键位``//按键初始化函数void KEY_Init(void) //IO 初始化{ GPIO_InitTypeDef GPIO_InitStructure;RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA|ALIENTEK 精英 STM32F103 V1 开发板教程STM32F1 开发指南(精英原创 2020-07-08 20:35:45 · 2065 阅读 · 0 评论 -
Stm32学习(一)端口的使用
跑马灯实验1.使能端口(以PB,PC为例)RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB ENABLE); //使能 PB端口时钟RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOE, ENABLE); //使能PE端口时钟2.初始化端口号GPIO_InitTypeDef GPIO_InitStructure;GPIO_InitStructure.GPIO_Pin = GPIO_Pin_5; //LED0-->P原创 2020-07-08 10:25:37 · 4422 阅读 · 0 评论