
STM32
文章平均质量分 79
Azuresmh
try your best
展开
-
STM32输出PWM
ARR自动重装载寄存器(auto reload register) 。 CCR1捕获/比较寄存器(capture/compare register),显然有CCR2了。PSC预分频器(pre-scaler )。CNT计数器(cou 一:配置TIM3的ARR寄存器和PSC寄存器,确定PWM频率。这里配置的这两个定时器确定了PWM的频率,我的理解是:PWM的周期(频率)就是ARR寄存器值与PSC...原创 2018-08-23 18:28:02 · 17460 阅读 · 2 评论 -
3.STM32按键
STM32按键按键扫描有两种思路支持连按:举个例子就像家里的遥控器,如果支持连按那么你按下音量键以后音量会一直改变增加。不支持连按:还是举遥控器的例子,如果不支持连按,那么你一直按着音量键也只会增加一个static 函数解释:void example(){ int flag=0; flag++; return flag; } 第一个程序多次调用结果 0 0 0...原创 2019-02-03 17:52:02 · 1583 阅读 · 2 评论 -
STM32杂记
1.推挽输出 适合做一些开关控制,应为推挽输出可以快速的切换0和1,例如继电器,led等2./sys.h 今天我们来讲讲这个头文件/#ifndef __SYS_H //头件的中的#ifndef,这是一个很关键的东西。比如你有两个C文件,这两个C文件都include了同一个头文件。而编译时,这两个C文件要一同编译成一个可运行文件,于是问题来了,大量的声明冲突。还是把头文件的内容都放在#i...原创 2019-01-29 11:00:19 · 310 阅读 · 0 评论 -
STM32串口
PS:串口通信部分有个东西就是全双工和半双工 ,这个全双工就是两根线,可以同时发送和接收。这段引入 printf 函数支持的代码在 usart.h 头文件的最上方,这段代码加入之后便可以通过printf 函数向串口发送我们需要的内容,方便开发过程中查看代码执行情况以及一些变量值。这段代码不需要修改,引入到 usart.h 即可。//加入以下代码,支持 printf 函数,而不需要选择 u...原创 2019-02-07 23:02:14 · 419 阅读 · 0 评论 -
STM32中断
这里我们首先 STM32 IO 口中断的一些基础概念。STM32 的每个 IO 都可以作为外部中断的中断输入口,这点也是 STM32 的强大之处。STM32F103 的中断控制器支持 19 个外部中断/事件请求。每个中断设有状态位,每个中断/事件都有独立的触发和屏蔽设置。STM32F103 的19 个外部中断为:线 0~15:对应外部 IO 口的输入中断。线 16:连接到 PVD 输出。...原创 2019-02-08 22:35:47 · 2102 阅读 · 0 评论 -
STM32定时器PWM输出
PWM 简介脉冲宽度调制(PWM),是英文“Pulse Width Modulation”的缩写,简称脉宽调制,是利用微处理器的数字输出来对模拟电路进行控制的一种非常有效的技术。简单一点,就是对脉冲宽度的控制。STM32 的定时器除了 TIM6 和 7。其他的定时器都可以用来产生 PWM 输出。其中高级定时器 TIM1 和 TIM8 可以同时产生多达 7 路的 PWM 输出。而通用时器也能同...原创 2019-02-11 22:35:22 · 8443 阅读 · 6 评论 -
STM32寄存器操作端口模式SDA_OUT()/SDA_IN()
#define SDA_IN() {GPIOB->CRL&=0X0FFFFFFF;GPIOB->CRL|=(u32)8<<28;}#define SDA_OUT() {GPIOB->CRL&=0X0FFFFFFF;GPIOB->CRL|=(u32)3<<28;}是不是看到懵了,其实不难,相信用寄存器写过stm8...转载 2019-02-17 21:58:14 · 1950 阅读 · 1 评论 -
STM32之MPU6050第一部分
一、MPU6050基础介绍MPU6050 是 InvenSense 公司推出的全球首款整合性 6 轴运动处理组件,相较于多组件方案,免除了组合陀螺仪与加速器时之轴间差的问题,减少了安装空间。MPU6050 内部整合了 3 轴陀螺仪和 3 轴加速度传感器,并且含有一个第二 IIC 接口,可用于连接外部磁力传感器,并利用自带的数字运动处理器(DMP: Digital Motion Process...原创 2019-02-13 18:56:14 · 5480 阅读 · 0 评论 -
2.STM32蜂鸣器和LED的使用
对蜂鸣器和LED灯都进行宏定义以后控制LED的闪烁和蜂鸣器同步进行main.c#include "sys.h" #include "delay.h" #include "led.h" #include "beep.h" int main(void) { delay_init(); //延时函数初始化 LED_Init(); //初始化与LED连接...原创 2019-02-03 15:46:50 · 3135 阅读 · 1 评论 -
STM32什么时候需要复用IO(AFIO)
AFIO介绍:MCU有对外管脚,包括CPU的管脚和内置外设(PWM,TIM,ADC……)的管脚;他们都需要对外接口IO,但是管脚总数是有限的,有的管脚既作为普通IO,也作为外设IO,有时候甚至好几个内置外设共用一个IO,这就是管脚复用现象。比如随便一个管脚的原理图上:PA2/USART2_TX/ADC123_IN2/TIM5_CH3/TIM2_CH3表明这个管脚除了作为普通PA2之外,还...转载 2019-02-03 11:46:49 · 3837 阅读 · 0 评论 -
STM32中断总结
STM32的每个IO都可以作为外部中断输入。 STM32的中断控制器支持19个外部中断/事件请求: 线0~15:对应外部IO口的输入中断。 线16:连接到PVD输出。 线17:连接到RTC闹钟事件。 线18:连接到USB唤醒事件。每个外部中断线可以独立的配置触发方式(上升沿,下降沿或者双边沿触发),触发/屏蔽,专用的状态位。 从上面可以看出,STM32供IO使用的中断线只有16个...原创 2018-08-22 23:18:31 · 712 阅读 · 0 评论 -
NVIC
CM3内核支持256个中断,其中包含了16个内核中断和240个外部中断,并且具有256级的可编程中断设置。 STM32并没有使用CM3内核的全部东西,而是只用了它的一部分。 STM32有84个中断,包括16个内核中断和68个可屏蔽中断,具有16级可编程的中断优先级。 STM32F103系列上面,又只有60个可屏蔽中断(在107系列才有68个) 先,对STM32中断进行分组,组0~4。同时,...原创 2018-08-22 23:19:53 · 1909 阅读 · 0 评论 -
STM32定时器上
定时器种类 位数 计数器模式 产生DMA请求 捕获/比较通道 互补输出 特殊应用场景 高级定时器 (TIM1,TIM8) 16 向上,向下,向上/下 可以 4 有 带死区控制盒紧急刹车,可应用于PWM电机控制 通用定时器(TIM2~TIM5) 16 向上,向下,向上/下 可以 4 无 通用。定时计数,PWM输出,输入捕获,输出比较 基本定...原创 2018-08-23 00:36:50 · 1402 阅读 · 0 评论 -
STM32GPIO
关于STM32GPIO口的8种工作模式,我们先引出一些问题?STM32GPIO口如果既要输入又要输出怎么办?1、浮空输入模式上图红色的表示便是浮空输入的过程,外部输入时0读出的就是0,外部输入时1读出的就是1,外部没有输入IO处于阻塞读不出电平状态。用处:感觉在信号处理方面用的比较好,比如在读取一段一段的波形,可以清晰的知道什么时候是0信号,什么时候是1信号,什么时候是没有信号...转载 2018-08-01 20:16:35 · 1202 阅读 · 4 评论 -
STM32中断
112个IO GPIOA-GPIO16 一共有七组。 EXTI0-EXTI15 TI0映射GPIOA0 GPIOB0 ……..同一数字位不能同时映射原创 2018-08-16 22:08:26 · 371 阅读 · 0 评论 -
STM32按键部分
什么是上拉电阻?按键的上拉电阻为什么是10k欧姆?答:上拉电阻就是将一个不确定的信号,通过一个电阻和电源VCC相连,固定在高电平。作用:1)增加输出引脚的驱动能力(其实就是增加当前导线的电流);2)防止引脚悬空,否则会产生积累电荷(静电),影响电路稳定性;3)特别是按键的时候,引脚电平不定的时候,给它一个确定的电平。至于为什么是10k?因为电阻越小,功耗越大,电阻越大,芯片...转载 2018-08-21 10:59:07 · 2547 阅读 · 0 评论 -
OLED显示STM32
OLED显示屏其实就是个128*6464=8 * 8 八页的界面OLED由于同时具备自发光,不需背光源、对比度高、厚度薄、视角广、反应速度快、可用于挠曲性面板、使用温度范围广、构造及制程较简单等优异之特性,被认为是下一代的平面显示器新兴应用技术。模块的8080并口读/写的过程为:先根据要写入/读取的数据的类型,设置DC为高(数据)/低(命令),然后拉低片选,选中SSD1306,接着我们根...原创 2019-01-25 22:01:40 · 7151 阅读 · 0 评论 -
1.STM32跑马灯实验
跑马灯实验很简单,其实就是两个LED,一个亮灭后延时后另一个亮灭。main.c#include "sys.h"#include "delay.h"#include "usart.h"#include "led.h" int main(void) { delay_init(); //延时函数开启 LED_Init(); //LED函数初始化 while(1) ...原创 2019-02-03 11:01:06 · 2088 阅读 · 1 评论 -
如何配置HC-05蓝牙模块 最清楚
自己之前在配对蓝牙模块的时候,参考很多资料却因为一些细节耽误了很长时间,现在将完整配对格式书写如下,意图帮助各位朋友1.首先你需要有两个转TTL口和两个蓝牙模块,tx和RX都反接2.将TTL插到电脑上打开串口助手(插得时候记得把蓝牙模块上面有个小按键按住,这是为了让蓝牙模块进入AT模式)3.配置参数对两个蓝牙模块发送测试指令:AT ...原创 2019-03-27 19:51:01 · 3191 阅读 · 0 评论