![](https://img-blog.csdnimg.cn/20201014180756913.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
STM32
Dynamicw
菜鸟起飞
展开
-
STM32----通用定时器TIM2~TIM5的三种功能
通用定时器TIM2~5引脚定义TIM2_CH1------PA0TIM2_CH2------PA1TIM2_CH3------PA2TIM2_CH4------PA3TIM3_CH1------PA6TIM3_CH2------PA7TIM3_CH3------PB0TIM3_CH4------PB1对于通用定时器主要有三个功能:基本的定时器功能,和基本定时器相同PWM脉冲输出测量输入脉冲的频率和脉冲宽度基本定时器功能TIM2~5的基本定时器功能与基本定时器TIM6和TIM原创 2020-06-12 10:00:40 · 7280 阅读 · 1 评论 -
STM32----TIM6和TIM7
基本定时器TIM6和TIM7对于STM32来说有8个TIM定时器,TIM1和TIM8为高级定时器、TIM2~5为通用定时器,TIM6和TIM7位基本定时器。他们都是十六位的定时器。今天说的是TIM6和TIM7基本定时器,它的功能最简单。有两个寄存器一个是TIMx_CNT(小跑),另一个是TIMx_ARR(目标)。工作时每来一个时钟脉冲小跑就加一,直到小跑中的数值和目标中的数值相等,将小跑中的数值清零,进入中断函数进行相应的处理。可以看到这个过程中比较重要的就是这个时钟脉冲,脉冲来的快慢对计数有相当大的影原创 2020-06-10 11:11:28 · 2367 阅读 · 0 评论 -
STM32----SysTick实现监控开机时长
SysTick实现监控开机时长systick系统定时器,又叫滴答定时器。在我看来比TIM使用起来要简单。在实现监控开机时长的例子中:配置定时器以相同的时间间隔进入中断,在中断不断累加计数变量,然后利用计数变量和时间间隔计算出相应的时长。首先是对SysTick的配置,主要配置其进入中断的时长,一般来说SysTick使用的AHB时钟,计数计数器加一的时间为1/72000000s.在SysTick_Config()函数中参数为进入中断的计数。配置好后,计数器中的数值即为配置的数,每一个时钟周期计数器中的数减原创 2020-06-09 15:30:01 · 1426 阅读 · 0 评论 -
STM32----ADC多通道采集
adc多通道采集数据之前对于单通道的采集,已经做出了配置的相关解释。在单通道采集中存储采集的值为单个变量,对于多通道而言需要使用数组来存储每个通道的转换数据。具体的adc配置文件如下:void ADC_Configuration(void){ ADC_InitTypeDef adc_s; adc_s.ADC_ContinuousConvMode = ENABLE; adc_s.ADC_DataAlign = ADC_DataAlign_Right; adc_s.ADC_External原创 2020-06-09 11:21:26 · 3986 阅读 · 1 评论 -
STM32----重温ADC测量电压值
ADC测量电压值实现目标使用两个按键控制串口的输出和ADC的转换。使用DMA将ADC数据存放在内存中,然后计算对应的电压值。然后由串口1发送至上位机。主要讲一下对于按键和串口的配置与之前都一样只是在按键的中断函数中添加了控制的内容,控制ADC的转换开始和关闭,控制DMA的开启和关闭,通过标志flag来控制串口打印的内容。void EXTI1_IRQHandler(void){ if(EXTI_GetITStatus(EXTI_Line1) == SET) { GPIO_ResetBits(G原创 2020-06-08 17:11:51 · 1843 阅读 · 0 评论 -
STM32-----找个搬砖的搬数据
搬砖工人(DMA)本节中,利用DMA将陀螺仪中的数据通过串口2,读取到内存,然后再由串口1通过DMA发送出来。当然了 需要一个老板来控制什么时候开始搬什么时候结束。使用外部中断两个按键,一个控制开始搬,一个控制停止搬。具体的工作流程,USART2通过DMA读取陀螺仪的数据放置在内存中,然后USART1通过DMA发送出去,按键作为外部中断开控制DMA的使能和不使能。LED显示是否传输,当USART1开始发送数据时,LED灯亮,否则灭。监督(LED)老板(EXTI)搬砖工人(DMA)运输(USAR原创 2020-06-03 14:38:09 · 211 阅读 · 0 评论 -
STM32嘀!嘀!嘀!点触式发报机
STM32使用按键控制串口发送和停止主要用到三部分的内容,GPIO控制LED灯的亮灭EXTI外部按键触发中断,在中断中控制串口的使能USART串口发送数据一、GPIO控制LED首先开启对应的时钟,配置GPIO为推挽输出: GPIO_InitTypeDef gpio_s; RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA | RCC_APB2Periph_GPIOD,ENABLE); gpio_s.GPIO_Pin = GPIO_Pin_8;原创 2020-05-29 15:38:57 · 380 阅读 · 1 评论 -
STM32利用库函数驱动OLED
使用的1.3寸OLED是I2C接口的对外有四个引脚,分别是VCC、GND、SCL、SDL。首先看一下运行的效果图:成功在小屏幕上显示“你好”。首先,我们需要配置好STM32的I2C外设,和GPIO的模式。PB6—>SCLPB7—>SDAGPIO口配置为开漏输出模式。void GPIO_Config(){ GPIO_InitTypeDef GPIO_STRUCT; ...原创 2019-08-28 20:12:30 · 3662 阅读 · 1 评论 -
摇杆控制LED灯的亮度
系统概要在该系统中,所用到的技术有ADC、DMA、TIM、USART。有些可以没有必要使用,但为了作为前一段时间的总结,所以把这几种都给使用上了。说一下做这个的思路,之前每一块都已经学习过,并且都已经实现了,所以想着做这个小项目来练练手。在这里面ADC和DMA读取摇杆的位置,TIM用来输出PWM控制LED的亮度,USART串口用来输出打印一些运行时的信息。如下图所示:系统实现项目的文件结构...原创 2019-08-16 16:29:57 · 1261 阅读 · 1 评论 -
基本定时器TIM6和TIM7使用
基本定时器基本定时器TIM6和TIM7是一个16位的只能向上计数的定时器,只能定时,没有外部IO。初始化结构体的详解:typedef struct{ uint16_t TIM_Prescaler; //预分频器 uint16_t TIM_CounterMode; //计数模式 uint16_t TIM_Period; ...原创 2019-08-12 10:44:51 · 3632 阅读 · 0 评论 -
ESP8266使用历程
首先,我用的是野火的esp8266模块,对外的接口有VCC、GND、TXD、RXD、RST、IO_O。在使用之前,首先使用官方的AT调试指令集,来对ESP8266模块进行调试。具体的指令集如:总结一下模块的使用流程,该模块可以在三种模式下使用:1、station模式2、AP模式3、两种模式共用首先模块作为station模式下:使用UDP步骤:测试设置串口(写入内存)设置工作...原创 2019-08-24 15:46:03 · 1634 阅读 · 0 评论 -
STM32----摸石头过河系列(八)
在STM32中定时器(TIM)是很重要的外设,具有相当多的作用,并且用法多样,内容多。今天来分析一下定时器的理论知识,没有实例。在STM32中定时可以分为三类:基本定时器、通用定时器、高级定时器。一、基本定时器计数器定时器TIMx_CNT,只能向上计数,重载寄存器TIMx_ARR中保存的是定时器的溢出值。TIMx_CNT由时钟触发进行计数,当计数器的值等于溢出值时,产生溢出事件触发中断...原创 2019-03-24 11:17:16 · 474 阅读 · 0 评论 -
STM32----摸石头过河系列(六)
今天了解一下ADC,stm32中的模数转换利用的是逐次逼近的方法,这个当时在考研时特别熟,现在又忘了,又去问了一下万能的百度。先是多少了解一下这个转换过程,在32的开发过程中用不到,但毕竟从事这个的,别显的太外行哈!现在拿一个四位的举个例子。收到一个输入的电压,值设为X,第一步将四位的最高位置为1然后其他的全为零,设这个值为Y。那么第一次时二进制Y = 1000即十进制Y=8,若Y < X ...原创 2019-03-19 12:25:44 · 179 阅读 · 0 评论 -
STM32----摸石头过河系列(七)
今天练习了32中的SysTick定时器,通常叫做滴答定时器。定时器的作用,用过51的想必都知道。定时器主要用来处理一些周期性的,时间间隔固定的事件。同时定时器也可以用来得到一个事件所耗费的时间。下面来看一下滴答定时器的配置过程:初始化定时器,配置定时进入中断的时间间隔 如果配置失败,则死循环等待 配置成功后,先关闭定时器 在延时函数中使用全局变量记录进入了中断几次,并使能定时器 书写中...原创 2019-03-21 15:51:12 · 210 阅读 · 0 评论 -
STM32----摸石头过河系列(五)
今天总结一下DMA(Direct Memory Access,直接存储器存储),在以往我们从串口读取数据到内存的流程是,cpu通过串口读取导数据,然后CPU再将数据写入固定的内存。这种读取方式占用了大量的cpu资源,如果数据量非常大,CPU将耗费大量的时间来进行数据的读写操作。因此DMA应运而生。DMA的作用是啥呢?从名字能看出来一二,它可以直接从串口读取数据存储在内存中,几乎不占用CPU的资源。...原创 2019-03-14 11:59:02 · 327 阅读 · 0 评论 -
STM32----摸石头过河系列(四)
今天分析STM32一个相当重要的外设——串口,在我使用的这款单片机中有三个串口分别为USART1,USART2,USART3。其中USART1挂载在总线APB2上,USART2,3挂载在APB1上。这是什么意思呢!APB2可以看做是高速公路,传输速度很快。APB1可以看做是省道,传输速度会慢很多。这次以USART1为例,若要使用USART2,3只需要在时钟配置,以及端口配置的地方修改为相应的串口即...原创 2019-03-05 09:26:24 · 253 阅读 · 0 评论 -
STM32----摸石头过河系列(三)
前两次了解了LED的打开和关闭,以及按键的检测和按键作为输入的中断。今天来了解一下SysTick系统定时器。玩过51的想必对定时器一定不会陌生。定时器可以让我们隔着固定的时间的去做一些事情,比如让LED进行闪烁,闪烁间隔为1s。让我们来看源代码:#include<stm32f10x.h>#include<stm32f10x_rcc.h>#include<...原创 2019-02-25 09:54:17 · 160 阅读 · 0 评论 -
STM32----摸石头过河系列(二)
今天将要学习关于按键相关的两个点,一个是按键的输入,另一个是外部中端。话不多说进入今天的正题:一、按键的输入今天我们想要实现的是利用两个按键来控制板子上的LED的亮灭。当第一个按键按下时LED点亮,当另一个按键按下时LED关闭。要实现的功能清除了,接下来让我们来看看原理图(在一中有我黏贴的原理图)。在原理图中,查看两个按键所连接的引脚,在我的板子中是PC1和PC13,同时需要查看两个按键所...原创 2019-02-22 09:15:27 · 180 阅读 · 0 评论 -
STM32----摸石头过河系列(一)
在学习stm32之前,我较为熟练的掌握了51单片机的开发,可以运用51中的输入、输出,以及定时器、中断等。今天第一天,学习stm32点亮LED灯。在本次学习中使用的是stm32f103RC系列单片机,开发工具使用的是Keil5,所使用的开发板原理图如下: 在以后相当一段时间,我都将使用该开发板。天不早了,开始干活。在51中想要点亮一个LED直接P1^0= 1就可以了,在st...原创 2019-02-21 14:48:26 · 335 阅读 · 1 评论