
STM32
文章平均质量分 77
韩立 •
这个作者很懒,什么都没留下…
展开
-
HAL库--串口DMA接收中断的三种方式
最常见的方法就是使用这个库函数,其使用方法类似于,初始化时需要调用一次,然后每次在中断服务函数里面处理完数据后重新调用一次。使用只需要打开串口接收中断,即;使用空闲中断需要在初始化时打开串口空闲中断使能,调用方式为:。此时DMA中断可开可不开,开了也不用管,因为数据处理是在串口空闲中断中进行的。1. 串口初始化代码:初始化中调用开启空闲中断,启动DMA串口接收,是接收缓冲区,是定义的DMA接收缓冲区长度,接收的数据不能超过这个长度。2. 中断处理:中断处理有两种方式,第一种是直接定义在中,第二种是自定原创 2025-04-22 16:05:30 · 1025 阅读 · 0 评论 -
STM32--HAL库配置外部中断
链接:https://pan.baidu.com/s/1K6u4CjBeNrwut3pp64EqRw 提取码:xdf9 hi,这是我用百度网盘分享的内容~复制这段内容打开「百度网盘」APP即可获取。然后在到GPIO处做如下选择:由下图中序号1可得:PD1是外部中断,PD2是普通引脚.由打印的数据可得:每次下降沿都会触发串口发送信息到串口打印软件上。第一步是选中对应的GPIO引脚:如图点击红色框内的即可。下图序号2可得:选择的模式为下降沿触发PD1外部中断。之后在配置NVIC 如下图 使能外部中断。原创 2024-07-24 09:54:53 · 545 阅读 · 0 评论 -
STM32---HAL库外设配置--串口外设配置及使用
链接:https://pan.baidu.com/s/14t2Fo1lSXfboVnMfqBiltw 提取码:5fyp hi,这是我用百度网盘分享的内容~复制这段内容打开「百度网盘」APP即可获取。最后点击NVIC,设置中断优先级,一般默认即可。如果想设置,需要将下图中的1勾选去除,然后自己设置优先级。到这一步都设置好了,接下来就是生成代码,然后加一些代码,就可以使用了。一:首先按照本人的时钟配置博客配置,配置好基础时钟。配置如下:首先配置成异步收发模式,如图中的序号1。下图中的1不用设置,默认即可。原创 2024-07-22 16:50:35 · 614 阅读 · 0 评论 -
正点原子stm32HAL库学习_基础篇_1
STM32F103ZET6.pdf 是最新的英文版(V13)STM32 数据手册STM32F103ZET6(中文版).pdf 是中文版(V5)STM32 数据手册大家可以根据自己的喜欢来选择合适的版本进行阅读,内容上基本大同小异,从准确性全面性的角度来说,看V13 英文版是最好的,从简单,易懂来说,看V5 中文版也是可以的。原创 2023-06-30 15:28:49 · 777 阅读 · 0 评论 -
SPI通信以及与W2Q564(ROM)交换(读写)数据
存储器分为易失性存储器(RAM:内存)和非易失性存储器(ROM存储的数据是否是掉电不丢失)易失性存储器一般包括SRAM、DRAM等非易失性存储器一般包括E2PROM、Flash等接口示意图和引脚功能:W2Q564的存储原理图:划分空间首先,整个矩形空间里,是所有的存储器,存储器以字节为单位,每个字节都有唯一的地址,W25Q64的地址宽度是24位,3个字节,所以看到左下角,它的地址是00 00 00h,h代表16进制。之后的空间地址依次自增,指导最后的一个字节地址是7F FF FF h。原创 2023-06-01 13:51:36 · 1640 阅读 · 1 评论 -
硬件IIC通信以及源码使用说明(代码可迁移版本)
本文继承自软件IIC通信,所以基础部分不细说,仅对如何使用源码进行讲解。以MPU6050为例,首先需要初始化硬件IIC通信硬件初始化。之后就是利用上述代码对MPU6050初始化功能。其次指定地址读和指定地址写函数。代码如下:(注释均做详细解释)后读取设备号和读取数据函数。原创 2023-05-22 00:56:49 · 804 阅读 · 1 评论 -
软件IIC通信以及源码解析(如何使用)
指定地址写,通常用作对状态机模块的控制寄存器写入二进制数,操作控制寄存器,进而让模块进行我们需要的功能。1:发送 从机地址+读写位(因为读之前必须先写入从机地址,所以是从机地址+写(写=0))最后我们就可以读取数据寄存器的数据了(因为配置好功能寄存器了,所以数据寄存器开始产生数据)。1:发送 从机地址+读写位(因为是写,所以是从机地址+写(写=0))3:写入你想发送的八位数据(该八位数据用来控制寄存器功能)。2:发送(要写)要操作的寄存器地址。2:发送(要读)要操作的寄存器地址。原创 2023-05-21 23:48:13 · 925 阅读 · 0 评论 -
STM32之TIM编码器接口
编码器简介:例子讲解:正交编码器有两个输出,一个A相,一个B相,AB接口输出正交信号。原创 2023-03-23 10:03:15 · 1469 阅读 · 0 评论 -
STM32之TIM输入捕获(IC)
图解:从左到右,最左边,是四个通道的引脚,参考引脚定义表就能知道引脚是复用在那个引脚,引脚进来,有一个三输入的异或门,这个异或门的输入接在了通道1、2、3端口,异或门的执行逻辑是,当输入引脚的任何一个有电平翻转时,输出引脚就产生一次电平翻转,之后输出通过数据选择器,到达输入捕获通道1,数据选择器如果选择上面一个,那输入捕获通道一的输入就是3个引脚的异或值,如果选择下面一个,那异或门就没有用,4个通道各用各的引脚。原创 2023-03-22 10:27:27 · 4952 阅读 · 3 评论 -
STM32:TIM定时器输出比较(OC)
PWM(Pluse Width Modulation)脉冲宽度调制在具有惯性的系统中,可以通过对一系列脉冲的宽度进行调制,来等效地获得所需要的模拟量,常用于电机控速等领域,也就是说,使用这个PWM波形,是用来等效地实现一个模拟信号的输出,也就是以一个很快的频率,给电机通电、断电,也就使电机维持在一个中等速度PWM参数:频率=1/Ts 占空比=Ton/Ts 分辨率=占空比变化步距这四个函数就是配置输出比较模块,一个函数配置一个单元用来给输出比较结构体赋一个默认的值的。原创 2023-03-20 18:54:05 · 12346 阅读 · 3 评论 -
STM32之基本定时器中断
一次定时器中断溢出的时间可以由以下的公式计算得来:一、TIM(Timer)定时器基本定时器中断可以对输入的时钟进行计数,并在计数值达到设定值(自动重装值)时触发中断;16位计数器、预分频器、自动重装寄存器的时基单元,在72MHz计数时钟下可以实现最大59.65s的定时;不仅具备基本的定时中断功能,而且还包含内外时钟源选择、输入捕获、输出比较、编码器接口、主从触发模式等多种功能;根据复杂度和应用场景分为了高级定时器、通用定时器、基本定时器三种类型。二基本定时器:有定时中断。原创 2023-03-13 06:03:37 · 7314 阅读 · 0 评论 -
STM32之ADC模数转换器单通道。
模拟-数字转换器ADC可以将引脚上连续变化的模拟电压转换为内存中存储的数字变量,建立模拟电路到数字电路的桥梁。12位逐次逼近型ADC,1us转换时间。分辨率含义:0 ~ 2^12,即0 ~ 4095 ,位数越高量化结果越精细,分辨率越高STM32的ADC输入是0~3.3V,所以ADC是将0~3.3V线性映射成0~4095。原创 2023-03-16 02:55:01 · 1270 阅读 · 0 评论 -
STM32之DMA转运学习,附代码
图解:左上角这里是Cortex-M3内核,里面包含了CPU和内核外设NVIC和SysTick等等,剩下的所有东西都可以看做存储器,所以总共就是存储器和CPU两个东西,Flash是主闪存,SRAM是运行内存,各个外设都可以看成是寄存器,也是一种SRAM存储器。寄存器是一种特殊的存储器。原创 2023-03-17 09:58:13 · 2082 阅读 · 0 评论 -
STM32之串口通信USART模块学习(1)
相关术语解释如下: 上图的CH340芯片实现USB协议转串口协议,通过该芯片,STM32的串口数据可通过该模块传送到PC端。 四、电平标准电平标准是数据1和数据0的表达方式,是传输线缆中人为规定的电压与数据的对应关系,串口常用的电平标准有如下三种:TTL电平:+3.3V或+5V表示1,0V表示0RS232电平:-3 ~ -15V表示1,+3 ~ +15V表示0RS485电平:两线压差+2 ~ +6V表示1,-2 ~ -6V表示0(差分信号) 串口发送数据的数据帧 波特率:串口通信的速率(波特率1原创 2023-03-18 16:50:57 · 3413 阅读 · 0 评论 -
STM32之EXTI外部中断
对射式红外式传感器计次:采用外部中断的实例(代码注释均有讲解)原创 2023-03-08 23:36:50 · 1787 阅读 · 2 评论 -
GPIO输入和输出以及八种工作模式
GPIO (general purpose input output)是通用输入输出端口的简称简单来说就是软件可控制的引脚,STM32芯片的GPIO引脚与外部传感器连接起来,从而实现与外部通讯、控制以及数据采集的功能。1.引脚全是GPIO?答案是否定的,不是所有引脚都是GPIO。原创 2023-03-05 14:21:42 · 3579 阅读 · 0 评论