这篇博客记录下STM32F103R8T6是怎么开ADC、用DMA搬数据的方法。方便日后使用的时候查资料。DMA其实就是个搬运工,专门负责搬数据,没有DMA之前,搬数据是由MCU核心来负责,虽说都能完成搬数据的动作,但是MCU干这件事浪费资源且效率低,所以有DMA的场合尽量使用DMA来负责搬数据,需要读数据的时候,可以直接去数组里取就行了。从建工程开始,下面是各步骤:第一步–选择时钟输入:第二步–设置调试模式:第三步–设置ADC基础设置、打开DMADMA模式选择为circular,代表循环模式,读完一次ADC之后,DMA继续读,并且继续往存放结果值的数组里面搬数据。开启了DMA之后,32Cube
前言最近在倒腾毕业设计,需要用到TOF050C,但是现有的案例都是软IIC,并且还是基于STM32F103的,笔者用的STM32F767,没有GPIO->CRH寄存器。问题来了,如果我每次都要去看寄存器手册属实费时间,这不干脆直接用硬IIC?于是乎,打开了TOF050C手册,硬啃!这手册好在它有工作流程图,能提高开发人员的理解速度。硬IIC开发代码由于是使用IIC,用定时器实现微秒级延时,这就不多说了。直接上库代码vl6180x.c:#include"vl6180x.h"#defineaddr_write0x52#defineaddr_read0x53#defineIDENTIFICATION
目录:1.独立看门狗介绍1.1.独立看门狗简介1.2.独立看门狗功能描述1.3.独立看门狗工作框图2.独立看门狗实验2.1.cubemx配置2.2.具体代码实现3.独立看门狗的相关寄存器3.1.键寄存器(IWDG_KR)3.2.预分频寄存器3.3.重装载寄存器(IWDG_RLR)3.4.状态寄存器(IWDG_SR)4.窗口看门狗介绍4.1.窗口看门狗简介4.2.窗口看门狗的结构框图4.3.计数器和窗口值的设置5.窗口看门狗实验5.1.cubemx配置5.2.具体代码实现6.窗口看门狗的相关寄存器6.1.控制寄存器(WWDG_CR)6.2.配置寄存器(WWDG_CFR)6.3.状态寄存器(WWD
一、串口的基本概念【数据组成】串口的通讯协议由开始位,数据位,校验位,结束位构成。【数据结构】一般以一个低电平作为一帧数据的起始,接着跟随8位或者9位数据位,之后为校验位,分为奇校验,偶校验和无校验,最后以一个先高后低的脉冲表示结束位,长度可以设置为0.5,1,1.5或2位长度。【奇偶校验原理】统计发送数据中高电平即’1’的奇偶,将结果记录在奇偶校验位中发送给接收方,接收方收到奇偶校验位后和自己收到的数据进行对比,如果奇偶性一致就接受这帧数据,否则认为这帧数据出错。如下图所示:一个8位数据位,1位奇偶校验位,1位结束位的串口数据帧。上图的解释如下:注意事项:一般进行串口通讯时,收发双方要保证遵
效果视频: 基于STM32F11的1.3寸OLED屏_驱动芯片SH1106_哔哩哔哩_bilibili该屏幕用硬件SPI进行驱动的。买屏幕时商家都会提供驱动源码,显示文字,数字等的应该都没问题。我这次主要讲如何显示视频,我的图片显示和文字数字显示是自己写的(也可以私信我获取,但是显示速度没源码快)。stm32单片机内存不够大,一个视频可能就几M了,完全放不下。视频其实也就一帧一帧照片组合而成,我们会了一张图片的显示也就会了视频的播放了(循环发送图片信息再刷新屏幕显示)。接下来我会把视频播放的步骤说一遍(工具可以到下面网盘链接下载)第一步骤:视频的图片捕获 随便下载一个比较长时间的
效果视频: 基于STM32F11的1.3寸OLED屏_驱动芯片SH1106_哔哩哔哩_bilibili该屏幕用硬件SPI进行驱动的。买屏幕时商家都会提供驱动源码,显示文字,数字等的应该都没问题。我这次主要讲如何显示视频,我的图片显示和文字数字显示是自己写的(也可以私信我获取,但是显示速度没源码快)。stm32单片机内存不够大,一个视频可能就几M了,完全放不下。视频其实也就一帧一帧照片组合而成,我们会了一张图片的显示也就会了视频的播放了(循环发送图片信息再刷新屏幕显示)。接下来我会把视频播放的步骤说一遍(工具可以到下面网盘链接下载)第一步骤:视频的图片捕获 随便下载一个比较长时间的
stm32ADC精讲(基于HAL库)一.ADC的介绍1.原理讲解2.ADC的转换时间二.STM32原理图讲解1.ADC的主要功能2.基本设计规则3.ADC多重通道4.DMA的讲解三.cubemx的配置1.ADC的三种工作模式1)阻塞模式(也叫查询模式)cubemx的主要配置主要代码2).中断模式cubemx的主要配置主要代码3)DMA模式cubemx的主要配置主要代码2、总结一.ADC的介绍首先ADC是将模拟量信号转化为数字信号,简单来说就是把一些连续信号转化为010101。1.原理讲解典型的ADC叫做逐次逼近型ADC,接下来我们来分模块讲解上述电路图上图所示,是一个电压比较器,将待测电压Vi
这是一道学校出的电赛题目,要求在100*100cm的平面上实现定位实现声音定位。由于一米太大了,我们就做了40cm的,下面的讲解我按照40厘米的写。用到的处理器是stm32f103c8t6接下来分享一下调试心得。硬件部分需要制作发声装置和接收装置,详细可以参考这个文章.需要知道的是,扬声器发出的声音经过接收装置,得到的是一个方波信号,所以单片机需要根据这些方波求出距离解题思路一.直线既然我们说,接收模块得到的是方波信号,那么单片机肯定可以检测到方波的下降沿和上升沿,在直线上,声源距离接收模块越近,声音先到达,就先接收到下降沿,相反,声源距离接收模块远,就后接受到下降沿,这样我们可以得到时间差。
文章目录相关链接协议外设设置硬件PWM分析HAL设置DMA分析HAL设置方案设计代码实现解码函数开始发送和复位发送函数波形成品相关链接硬件介绍(PCB设计方案)模拟时序发送协议WS2812是一种异步串行通信,它每一位数据时间是ns级别的默认是高电平状态0码:220-380ns高电平+580-1600ns低电平1码:580-1600ns高电平+220-380ns低电平复位码:>280us低电平24Bit数据来代表GRB的亮度值从高位到低位发送,分别按照G->R->B的顺序发送先发送第一个灯的数据(离Dat输入直连的那个灯)例子:分别发送红绿蓝三色的数据给3个ws2812外设设置硬件PWM分析ST
1、通常的实现方式介绍环形缓冲区+定时器超时中断的方式优点环形缓冲区可以接收多帧数据数据帧超时间隔可以设置缺点设备任务比较繁重时,使用中断接收可能会丢失数据。尤其是在长时间关闭中断或者串口中断优先级不高时频繁进出中断。在使用RTOS的系统中,每收到一个数据就会进行一次任务到中断的切换和中断到任务的切换使用串口接收空闲中断+DMA的方式优点不会频繁在任务和中断之间切换,效率会更高一般不会丢失数据缺点空闲中断的时间对于同一个波特率来说是固定的,但某些时候1个字节的接收时间太短,不能作为数据帧接收完成的标志2、接收超时中断的相关内容GD32F4系列的单片机串口除了空闲中断外,还有可配置时间的接收超时