STM32
Aspirant-GQ
这个作者很懒,什么都没留下…
展开
-
STM32—驱动GY85-IMU模块
GY85是一个惯性测量模块,内部集成了三轴加速度计、三轴陀螺仪、电子罗盘、气压传感器等芯片,用于测量和报告设备速度、方向、重力,模块可以将加速度计、陀螺仪、电子罗盘等传感器的数据进行综合,在上位机可以结合各种数据进行惯导算法融合。这里介绍一下STM32驱动GY85的代码,模块与STM32的通信接口是IIC协议,我们采用软件IO口模拟IIC时序进行通信,读取到各个芯片的数据存放在全局变量,关于GY85的介绍以及一些基础知识可以参考这篇博客:点击跳转芯片说明:ADXL345:三轴加速度计,测量Roll、原创 2020-07-22 11:05:19 · 4543 阅读 · 18 评论 -
STM32—DAC配置
文章目录一.DAC介绍二.主要寄存器说明三.代码及配置一.DAC介绍ADC是模数转换器,可以将模拟电压转换位数字信号;DAC是数模转换器,可以将数字信号转换为模拟电压。STM32F103ZET6内部DAC有2个通道,12位数字输入(也可以配置为8位),可以按要求输出不同的信号波形,其主要特点如下:2个DAC转换通道每个通道都有DMA功能2个通道可以同时转换或者分别转换输入信号可以是...原创 2020-04-30 20:13:33 · 2884 阅读 · 0 评论 -
STM32—PID控制在直流电机中的应用
文章目录一.PID控制算法1.什么是PID2.PID系数的理解Ⅰ.比例(P)部分Ⅱ.积分(I)部分Ⅲ.微分(D)部分3.PID的数字化处理二.位置闭环控制三.速度闭环控制一.PID控制算法1.什么是PIDPID:Proportion-Integral-Differential在过程控制中,我们经常使用的一种算法就是PID算法了,所谓PID控制算法就是对偏差进行比例、积分、微分控制,来使偏差...原创 2020-04-28 23:23:39 · 25213 阅读 · 27 评论 -
STM32—串口使用总结
文章目录一.仅向上位机打印调试信息二.与上位机交互信息三.作为驱动接口在日常学习中,串口经常作为和上位机通信的接口,进行打印信息方便调试程序,有时也会作为模块的驱动接口,所以总结一下串口的几种使用方法对以后的开发还是很有帮助的。有关串口的知识我在之前的博客中有介绍:点击链接跳转一.仅向上位机打印调试信息单纯利用串口向上位机打印调试信息,程序如下:void USART1_Init( uin...原创 2020-04-22 22:28:15 · 1699 阅读 · 0 评论 -
SIM900A—发送、接收中英文短信
文章目录一.SMS简介一.SMS简介SMS(Short Messaging Service)中文名称短信服务,短信是当下每一部手机上必备的功能之一,顾名思义,它是在手机之间发送文字信息或从个人计算机或手持设备向手机发送信息的一种方式,其文本信息的最大发送量为160个字符(字母、数字或者拉丁字母中的字符),对于中文一般最大发送量为70个字符。这里我想用SIM900A模块实现短信的收发。...原创 2020-03-05 23:57:50 · 12421 阅读 · 10 评论 -
SIM900A—基础指令
文章目录1.ATE指令设置回显2.ATQ指令设置返回3.ATV指令设置返回格式4.AT+CFUN设置模块功能5.AT+IPR设置波特率6.AT+CMEE设置上报错误格式7.各种码(IMEI、IMSI、CCID)的查询、修改8.AT+CSQ查询信号强度9.AT+CREG查询网络注册信息10.AT+CGATT查询GPRS网络附着状态11.开机测试指令流程1.ATE指令设置回显模块默认:ATE1...原创 2020-03-05 23:50:47 · 2720 阅读 · 0 评论 -
STM32—TIMx实现编码器四倍频
文章目录一.储备知识二.TIMx的编码器模式介绍1.计数边沿设置2.选择极性和使能3.使能4.计数方向三.代码部分一.储备知识通过STM32的定时器编码器接口模式对编码器进行四倍频,并使用M法测速得到小车电机的速度信息。编码器的相关知识之前介绍过:编码器sM法测速:读取每10ms的脉冲数,以脉冲数的多少代表速度的快慢。二.TIMx的编码器模式介绍TIMx的编码器模式,每个定时器只能测量...原创 2020-02-22 12:34:07 · 8226 阅读 · 5 评论 -
STM32—驱动六轴MPU6050输出欧拉角
文章目录一.MPU6050介绍1.MPU6050与陀螺仪、加速度计的关系:2.整体概括3.引脚说明4.基本配置及相关寄存器电源管理寄存器1陀螺仪配置寄存器加速度计配置寄存器FIFO使能寄存器陀螺仪采样率分频寄存器温度传感器寄存器二.代码详解1.框架2.mpu_iic.c/mpu_iic.h3.mpu6050.c/mpu6050.h4.DMP相关代码5.mian()函数一.MPU6050介绍1....原创 2020-02-15 18:06:37 · 13239 阅读 · 11 评论 -
STM32—驱动RFID-RC522模块
文章目录一.S50(M1)卡介绍1.S50(M1)卡基础知识2.内部信息3.存取控制4.数据块的存取控制5.控制块的存取控6.工作原理7.M1与读卡器的通信一.S50(M1)卡介绍1.S50(M1)卡基础知识1.每张卡有唯一的序列号,32位2.卡的容量是8Kbit的EEPROM3.分为16个扇区,每个扇区分为4块,每块16个字节,以块为存取单位4.每个扇区都有独立的一组密码和访问控制...原创 2020-02-10 17:15:53 · 27169 阅读 · 11 评论 -
STM32—4线SPI驱动SSD1306 OLED
文章目录一.OLED简介二.驱动SSD1306所需知识1.引脚介绍2.通信时序3.显存GRAM4.字库5.SSD1306基本命令三.代码讲解1.相关引脚配置2.模拟SPI通信3.OLED初始化函数4.图像刷新与清屏函数5.画点函数6.显示字符函数7.显示字符串函数8.显示特殊图像一.OLED简介OLED,即有机发光二极管(Organic Light-Emitting Diode),又称为有机电...原创 2020-02-05 20:09:06 · 7912 阅读 · 9 评论 -
STM32—TIMx输出PWM信号驱动MG996R舵机
文章目录一.前言二.MG996R舵机简介三.TIM定时器简介四.通用定时器TIMx1.TIMx主要功能2.TIMx框图3.计数单元4.时钟选择5.输出比较PWM五.TIM3输出双路PWM信号代码详解1.TIMx初始化结构体详解2.TIM3输出俩路PWM初始化代码3.主函数一.前言利用STM32的TIM3的通道1、通道2,输出俩路PWM信号,驱动MG996R舵机。涉及到:TIM定时器基本原理,...原创 2020-01-22 08:57:22 · 11132 阅读 · 1 评论 -
STM32—驱动BT-06蓝牙模块传输数据
文章目录BT-06简介数据透传配置串口USART1初始化函数USART2初始化函数USART2的NVIC配置USART1串口重映射BT-06简介BT06蓝牙模块是专为智能无线数据传输而打造,遵循V3.0 蓝牙规范。本模块支持UART接口,并支持SPP蓝牙串口协议,具有成本低、体积小、功耗低、收发灵敏性高等优点,只需配备少许的外围元件就能实现其强大功能。BT-06蓝牙模块驱动简单,只需要4根线...原创 2019-11-25 23:08:01 · 9655 阅读 · 2 评论 -
STM32—驱动DHT11数字温湿度传感器
文章目录DHT11模块简介DHT11数据传输DHT11通信时序代码实现相关引脚初始化复位模块判断响应模块读取数据包模块DHT11模块简介DHT11数字温湿度传感器,用来测量环境的温度和湿度,而且传输的数据是数字信号,这与DS18B20传输的模拟采集的数据不一样,相比DS18B20而言DHT11的数据采集的处理更加精确,而且驱动也更加方便。DHT11传感器包括一个电阻式测湿元件和一个NTC测温...原创 2019-11-24 11:50:13 · 8698 阅读 · 1 评论 -
STM32—驱动HC-SR04超声波测距模块
文章目录超声波测距原理HC-SR04工作原理STM32实现驱动1.引脚的配置2.时序控制3.时间差测量4.如何将距离测出来超声波测距原理利用HC-SR04超声波测距模块可以实现比较精确的直线测距,其测距原理图如下:HC-SR04的一端发出超声波,接触到反射物后反射,被另一个端口接收到,所以只要知道发射和接收的时间差,就可以根据声波传播的速率算出HC-SR04和反射物直接的距离。所以实现超...原创 2019-11-23 20:21:52 · 18947 阅读 · 30 评论 -
RT-Thread—重映射串口到rt_kprintf
文章目录重映射rt_kprintf()函数定义自定义rt_hw_console_output()重映射在初学C语言时,用的最多的怕是printf()函数了,其作用就是将传入的参数打印到屏幕上,可以实现人机交互或方便用户对程序的调试等等。在RT-Thread中,也有一个打印函数rt_kprintf(),其作用和printf()类似,可以在调试时输出各种信息。但是如果想要使用rt_kprintf...原创 2019-11-17 15:54:14 · 4352 阅读 · 1 评论 -
利用ST-LINK配合ST-LINK Utility 将bin文件下载到STM32的FLASH中
文章目录背景1.连接ST-LINK V2与单片机2.配置工程3.配置ST-LINK Utility4.烧录bin文件背景项目需求,要把字模文件导入到32中FLASH的指定地址,使用了ST-LINK V2 连接单片机和计算机,然后通过ST-LINK Utility 软件的配合将弄好的字模bin文件导入到FLASH指定地址。下面记录一下整个过程:1.连接ST-LINK V2与单片机博主的只需...原创 2019-11-02 09:50:12 · 4422 阅读 · 0 评论 -
LCD12864
文章目录前言LCD12864简介前言最近实验室老师分配了一个项目,目前正在研究LCD12864液晶显示屏的原理,目的是可以驱动这个显示屏,并且可以接收项目其他部分发送的数据,实时动态的显示在屏幕上。LCD12864简介emm今天赶时间,就周末把博客填坑吧。。。...原创 2019-10-24 19:19:29 · 1577 阅读 · 0 评论 -
STM32—位带操作
STM32中的位带操作: 名字为位带操作,实际上是对位的操作,位操作就是可以单独的对一个比特位读和写,这个在 51 单片机中非常常见。 51 单片机中通过关键字 sbit 来实现位定义, STM32 没有这样的关键字,而是通过访问位带别名区来实现。STM32 的全部寄存器都可以通过访问位带别名区的方式来达到访问原始寄存器比特位的效果,这比 51 单片机强大很多。因为 51 单片机里面并不是所有的寄...原创 2019-07-21 17:24:01 · 854 阅读 · 0 评论 -
STM32—重定向printf和getchar函数到串口
在STM32测试串口的时候经常需要在开发板和上位机之间传输数据,我们可以用c语言中的printf()函数和getchar()函数来简化传输。以printf()为例:printf()函数实际上是一个宏,最终调用的是 fputc(int ch,FILE *f)这个函数来执行输出的,所以我们需要修改这个函数,使函数向串口输出,这样当再次引用printf()函数时,printf()就是通过串口向上位机...原创 2019-07-30 17:17:15 · 9307 阅读 · 3 评论 -
STM32—中断详解(配合按键中断代码,代码亲测)
在STM32中执行中断主要分三部分:1.配置NVIC_Config()函数2.配置EXTI_Config()函数3.编写中断服务函数(注:本文章所用代码为中断按键代码,实现了按键进入中断从而控制LED亮灭)配置NVIC_Config()函数NVIC 是嵌套向量中断控制器,控制着整个芯片中断相关的功能,它跟内核紧密耦合,是内核里面的一个外设。NVIC_Config()函数代码如下:s...原创 2019-07-25 17:35:23 · 63968 阅读 · 34 评论 -
STM32—串口通讯详解
串口通讯目录物理层协议层USART简介代码讲解串口通讯(Serial Communication)是一种设备间非常常用的串行通讯方式,因为它简单便捷,因此大部分电子设备都支持该通讯方式,其通讯协议可分层为协议层和物理层。物理层规定通信协议中具有机械、电子功能的特性,从而确保原始数据在物理媒体的传播;协议层主要规定通讯逻辑,统一双方的数据打包、解包标准。通俗的讲物理层规定我们用嘴巴还是肢体交流,协...原创 2019-07-30 22:26:34 · 87392 阅读 · 13 评论 -
STM32—IIC通信(软件实现底层函数)
使用GPIO引脚模拟SDA和SCL总线实现软件模拟IIC通信,IIC的具体通信协议层和物理层链接:IIC#ifndef __BSP_IIC_H#define __BSP_IIC_H#include "stm32f10x.h"#define SCL_PORT GPIOA#define SCL_PIN GPIO_Pin_2#define SCL_M...原创 2019-08-03 20:13:15 · 750 阅读 · 0 评论 -
STM32—时钟树(结合系统时钟函数理解)
时钟树的概念:我们可以把MCU的运行比作人体的运行一样,人最重要的是什么?是心跳! 心脏的周期性收缩将血液泵向身体各处。心脏对于人体好比时钟对于MCU,微控制器(MCU)的运行要靠周期性的时钟脉冲来驱动,而这个脉冲的始源往往是由外部晶体振荡器提供时钟输入,最终转换为多个外部设备的周期性运作。这种时钟“能量”的传递路径犹如大树的养分由主干流向个分支,因此称为时钟树。STM32时钟:在STM32...原创 2019-07-22 23:53:14 · 15471 阅读 · 5 评论 -
STM32—SysTick系统定时器
SysTick是STM32中的系统定时器,利用SysTick可以实现精确的延时。SysTick—系统定时器属于 CM3 内核中的一个外设,内嵌在 NVIC 中。系统定时器是一个 24bit 的向下递减的计数器,计数器每计数一次的时间为 1/SYSCLK,一般我们设置系统时钟 SYSCLK 等于 72M。当重装载数值寄存器的值递减到 0 的时候,系统定时器就产生一次中断,以此循环往复。因为 Sy...原创 2019-07-26 21:26:03 · 1526 阅读 · 0 评论 -
STM32—DMA存储器到外设
DMA目录DMA简介DMA框图DMA传输数据分析1.传输的方向2.传输的数量3.传输的模式代码部分DMA初始化结构体USART配置函数DMA配置函数主函数DMA简介DMA(Direct Memory Access)——直接存储器存取,就像其名称一样,DMA的主要作用是搬数据,DMA可以把数据从存储器搬到外设、从外设搬到存储器、从存储器搬到存储器。DMA的特殊之处就是搬运数据不需要占用CPU,D...原创 2019-08-01 16:19:05 · 9721 阅读 · 4 评论 -
STM32—SPI详解
目录一.什么是SPI二.SPI协议物理层协议层1.通讯时序图2.起始和停止信号3.数据有效性4.通讯模式三.STM32中的SPI简介功能框图1.通讯引脚2.时钟控制逻辑3.数据控制逻辑4.整体逻辑控制初始化结构体一.什么是SPISPI是串行外设接口(Serial Peripheral Interface)的缩写,SPI是一种高速、全双工、同步通信的通信总线,被广泛应用在ADC、LCD等与MCU...原创 2019-08-09 14:23:55 · 29032 阅读 · 12 评论 -
STM32—SPI读写FLASH
目录FLASH简介W25Q64W25Q64简介FLASH控制指令FLASH内部存储结构代码讲解读取芯片ID发送写使能信号等待FLASH不忙擦除扇区写入数据读取数据注FLASH简介FLASH俗称闪存,和EEPROM一样,都是掉电数据不丢失的非易失行存储器,但FLASH的存储容量普遍大于EEPROM,现在像如U盘、SD卡、SSD固态硬盘以及STM32芯片内部存储程序的设备都是FLASH类型的存储...原创 2019-08-14 21:26:22 · 1544 阅读 · 0 评论 -
STM32—ADC详解
文章目录ADC简介ADC功能框图讲解ADC简介STM32f103系列有3个ADC,精度为12位,每个ADC最多有16个外部通道。其中ADC1和ADC2都有16个外部通道,ADC3一般有8个外部通道,各通道的A/D转换可以单次、连续、扫描或间断执行,ADC转换的结果可以左对齐或右对齐储存在16位数据寄存器中。ADC的输入时钟不得超过14MHz,其时钟频率由PCLK2分频产生。ADC功能框图讲解...原创 2019-08-26 20:23:20 · 205140 阅读 · 76 评论 -
STM32—ADC多通道采集电压
文章目录ADC详解程序说明函数主体引脚配置ADC和DMA配置主函数ADC详解前面的博客中详细介绍了STM32中ADC的相关信息,这篇博客是对ADC内容的一个总结提升,ADC的详细介绍:ADC详解程序说明为了使这次代码阅读方便,博主没有在头文件中宏定义变量,都是直接采样库函数中的规定形参。此次采用多通道采集电压,使用ADC1的通道10、11、12、13、14、15一共六个通道,采用DMA将转...原创 2019-08-26 20:55:21 · 14852 阅读 · 6 评论 -
STM32—常用的几种伪指令宏
1.说到伪指令宏一般就会联想到指令、宏指令和伪指令。先借用别人的话简单介绍一下三者之间的关联和区别(看到一个博主写的很不错):我们使用的各种指令,都是写给“编译软件”看的。要由“编译软件”翻译成计算机可以识别的机器语言,即机器码。通俗地讲:就好像召开新闻发布会,主持人用中文讲话,由一个翻译,现场翻译成英文,讲给外国记者听。主持人说的中文,大部分都是要翻译成英文的;少数几句,是说给翻译听...原创 2019-07-18 13:00:22 · 1256 阅读 · 0 评论