- 博客(57)
- 收藏
- 关注
原创 STM32 DMA数据转运
本文介绍了DMA初始化配置、DMA数据转运的基础内容。以上就是今天要讲的内容,本文仅仅简单介绍了DMA初始化配置以及一些配置代码的细节。
2024-06-17 00:15:00
1182
原创 STM32 DMA直接存储器存取
DMA是一个转运数据小助手,它主要是用来协助CPU完成数据转运的工作。本文就介绍了DMA的基础内容。DMA(Direct Memory Access)直接存储器存取。DMA可以提供外设和存储器或者存储器和存储器之间的高速数据传输,无须CPU干预,节省了CPU的资源。12个独立可配置的通道: DMA1(7个通道), DMA2(5个通道)。每个通道都支持软件触发和特定的硬件触发。STM32F103C8T6 DMA资源:DMA1(7个通道)。DMA内部的多个通道,可以进行独立的数据转运;
2024-05-01 23:31:18
1360
原创 STM32 DA数字模拟转换原理
之前文章讲述了STM32中AD模拟数字转换器的内容,文中AD原理中涉及DA原理的内容。本文就介绍了DA数字模拟转换的基础内容。以上就是今天要讲的内容,本文仅仅简单介绍了DA数字模拟转换的原理和DA原理所涉及的一些电路知识。
2024-04-22 01:30:00
1467
原创 C语言tip 字面串存储
C语言把字面串作为字符数组来处理。当C语言编译器在程序中遇到长度为n的字面串时,它会为字面串分配长度为n+1的内存空间。这块内存空间将用来存储字面串中的字符,以及一个用来标志字符串末尾的额外字符(空字符)。字面串 "abc" 是作为有4个字符的数组来储存的:a、b、c、\0。字面串是作为数组来存储的,编译器会把它看作 char * 类型的指针。字符串" "作为单独一个空字符来存储。是一个所有位都为0的字节,因此用转义序列 \0 来表示。注: ' \0 ' 与 ' 0 ' 不同。
2024-03-25 20:49:49
189
原创 STM32 AD多通道函数设计
之前博文介绍AD单通道函数设计的基础内容,本文在之前博文的基础上做一修改,用简单的方法实现AD多通道函数设计:利用单次转换,非扫描的模式来实现AD多通道的设计。这样只需要在每次触发之前手动更改一下列表第一个位置的通道就行,如第一次转换,先写入通道0,之后触发、等待、读值;第二次转换,先把通道0改成通道1,之后触发、等待、读值;第三次转换,再改为通道2,之后触发、等待、读值,以此类推。这样在转换前先指定一下通道,再启动转换就可以简单轻松地实现多通道转换的功能了。
2024-03-25 20:21:36
1258
原创 STM32 AD单通道函数设计
本文介绍AD单通道函数设计的基础内容。调用一次这个函数块就相当于执行了一次图单次转换,非扫描模式的流程。以上就是今天要讲的内容,本文仅仅简单介绍了AD单通道函数设计的步骤和代码含义。
2024-03-22 16:55:01
1493
原创 STM32 ADC数模转换器
GPIO只能读取引脚的高低电平,只有两个值:高电平或低电平。而ADC可以对高电平和低电平之间的任意电压进行量化,最终用一个变量来表示。读取这个变量就可以知道引脚的具体电压是多少。ADC好比一个电压表,可以把引脚的电压值测出来,放在一个变量里。ADC(Analog-Digital Converter)模拟-数字转换器ADC可以将引脚上连续变化的模拟电压转换为内存中存储的数字变量,建立模拟电路到数字电路的桥梁12位逐次逼近型ADC,1us转换时间。
2024-03-12 21:35:19
4442
原创 STM32 编码器接口测速
如何用编码器旋转控制CNT自增自减,本文介绍编码器接口测速的配置步骤。以上就是今天要讲的内容,本文仅仅简单介绍了编码器接口测速配置步骤、需要用到的库函数以及具体参数配置。
2024-03-07 08:37:31
2609
原创 STM32 TIM编码器接口
本文介绍通过定时器的编码器接口来自动计次。之前博文介绍过通过触发外部中断,在中断函数里手动进行计次。编码器接口自动计次与触发外部中断手动计次相比较而言,使用编码器接口的好处就是节约软件资源。如果使用外部中断计次,当电机高速旋转时,编码器每秒产生上千上万个脉冲,程序就得频繁进中断。进中断之后,完成的任务又只是简单的加一减一,软件资源就被这种简单而又低级的工作给占用了。所以对于这种需要频繁执行且操作又简单的任务,一般都会设计一个硬件电路模块来自动完成。
2024-03-04 16:46:48
2280
原创 STM32 PWMI模式测频率占空比
博文介绍如何配置输入捕获电路来测量PWM波形的频率、占空比、脉冲间隔、电平持续时间等参数。以上就是今天要讲的内容,本文仅仅简单介绍了配置输入捕获电路来测量PWM波形的频率、占空比、脉冲间隔、电平持续时间等参数。
2024-02-26 08:37:40
2421
1
原创 STM32 输入捕获模式测频率
博文介绍如何配置输入捕获电路来测量频率。以上就是今天要讲的内容,本文仅仅简单介绍了输入捕获的配置步骤和注意事项。
2024-02-19 09:21:55
3208
1
原创 STM32 TIM输入捕获测频率占空比库函数
TIM_GetCapture1、TIM_GetCapture2、TIM_GetCapture3、TIM_GetCapture4函数读取4个通道的CCR,这四个函数和TIM_SetIC1Prescaler、TIM_SetIC2Prescaler、TIM_SetIC3Prescaler、TIM_SetIC4Prescaler四个函数是对应的,读写的都是CCR寄存器。选择输入触发源TRGI,对应主从触发模式图中的从模式触发源选择,调用这个函数就能选择从模式的触发源了,如TI1FP1等。
2024-02-19 08:42:51
2015
原创 STM32 TIM输入捕获
输入捕获用于测量PWM波形的频率、占空比、脉冲间隔、电平持续时间等参数。IC(Input Capture)输入捕获输入捕获模式下,当通道输入引脚出现指定电平跳变时,当前CNT的值将被锁存到CCR中,可用于测量PWM波形的频率、占空比、脉冲间隔、电平持续时间等参数每个高级定时器和通用定时器都拥有4个输入捕获通道可配置为PWMI模式,同时测量频率和占空比可配合主从触发模式,实现硬件全自动测量1和2两部分加起来是输入捕获的电路,2和3两部分加起来是输出比较的电路。
2024-02-05 11:54:24
3742
1
原创 C语言代码 编写函数不允许创建临时变量,求字符串的长度
(3)上一个代码中函数创建了临时变量 count ,那么如何设计一个函数不创建临时变量的条件下还可以求出字符串长度。srtlen 库函数用来返回字符串长度(不包括结尾的“\0”)。(2)然后来编写一个函数,求字符串的长度,也就是模拟实现 strlen 函数。在上一个函数的基础上,去掉变量 count ,用上一篇函数递归博客(= '\0' 条件下返回 0,是函数递归的限制条件。(1)首先来编写一个求字符串长度但不编写自定义函数的代码。这里运用了函数的传址调用,详见。)中的方法来设计递归的思路。
2024-01-29 09:14:30
880
原创 STM32 引脚重映射
STM32单片机中片上外设的端口可以借指定GPIO口来输出,也就是引脚复用。但是当指定端口输出冲突了,没法同时使用时怎么办呢?本文介绍问题的解决办法:引脚重映射。
2024-01-29 09:00:19
5372
原创 STM32 PWM驱动设计
PWM本质是利用面积等效原理来改变波形的有效值。一、PWM驱动配置步骤第一步、RCC开启时钟,将需要的TIM外设和GPIO外设的时钟打开。第二步、配置时基单元,包括时钟源选择的配置。第三步、配置输出比较单元,包括CCR的值、输出比较模式、极性选择、输出使能这些参数。(在库函数中也是用结构体统一来配置)。第四步、配置GPIO,把PWM对应的GPIO口初始化为复用推挽输出的配置。第五步、运行控制,启动计数器就可以输出PWM了。以上就是今天要讲的内容,本文仅仅简单介绍了PWM驱动配置。
2024-01-27 20:14:38
2721
1
原创 STM32 PWM驱动常用库函数
本文主要分类归纳了一些常用的PWM驱动常用库函数。以上就是今天要讲的内容,本文仅仅简单介绍了PWM驱动常用库函数。
2024-01-23 10:13:55
2307
原创 STM32 TIM输出比较、PWM波形
STM32定时器的输出比较功能,它主要用来输出PWM波形,而PWM波形是驱动电机的必要条件。输出比较可以通过比较CNT与CCR寄存器值的关系,来对输出电平进行置1、置0或翻转的操作,用于输出一定频率和占空比的PWM波形。
2024-01-15 08:58:09
3844
原创 C语言 结构体
将多个数据的集合对应到程序中时,最好在将其聚合后再对应。结构体表示任意类型的数据的集合,最适合用来实现这种结构的数据。结构是一些值的集合,这些值称为成员变量。结构的每个成员可以是不同类型的变量。
2024-01-08 08:40:54
1775
原创 C语言 指针学习总结
指针是内存中一个最小单元的编号,也就是地址。平时口语中说的指针,通常指的是指针变量,是用来存放内存地址的变量。以上就是今天要讲的内容,本文介绍了指针的内容。
2024-01-02 17:23:54
2449
1
原创 C语言 指针初阶
上一篇博文C语言 指针-CSDN博客简单介绍了指针,本篇文章是对指针内容的补充。以上就是今天要讲的内容,本文仅仅简单介绍了指针和数组、二级指针、指针数组的内容。
2024-01-01 11:40:36
980
原创 C语言 指针
指针理解的2个要点:指针是内存中一个最小单元的编号,也就是地址。平时口语中说的指针,通常指的是指针变量,是用来存放内存地址的变量。以上就是今天要讲的内容,本文仅仅简单介绍了指针。
2023-12-25 22:18:26
2315
1
原创 C语言 编程题
2.有一个整数序列(可能有重复的整数),现删除指定的某一个整数,输出删除指定数字之后的序列,序列中未被删除数字的前后位置没有发生改变。1.小明上课需要走n阶台阶,他每次可以选择走一阶或者走两阶,他一共有多少种走法?3.输出n个成绩,换行输出n个成绩中最高分和最低分的差。序列长度和序列中的值都满足 1 ≤ n ≤ 50。一行,输出n个成绩中最高分数和最低分数的差。输入包含一个整数n(1 ≤ n ≤30)输出一个整数,即小明可以走的方法数。输出为一行,删除指定数字之后的序列。
2023-12-08 13:36:34
406
2
原创 C语言 表达式求值
C语言学习目录文章目录前言一、隐式类型转换1.1负数的整形提升1.2正数的整形提升1.3代码示例二、算术转换三、操作符的属性前言表达式求值的顺序一部分是由操作符的优先级和结合性决定。同样,有些表达式的操作数在求值的过程中可能需要转换为其他类型。一、隐式类型转换C的整型算术运算总是至少以缺省整型类型的精度来进行的。为了获得这个精度,表达式中的字符和短整型操作数在使用之前被转换为普通整型,这种转换称为整型提升。
2023-12-06 17:12:53
204
原创 C语言 操作符详解
本文介绍C语言操作符,有以下内容:算术操作符、移位操作符、位操作符、赋值操作符、单目操作符、关系操作符、逻辑操作符、条件操作符、逗号表达式、下标引用、函数调用和结构成员。一、算术操作符1. 除了 %操作符之外,其他的几个操作符可以作用于整数和浮点数。2. / 操作符:如果两个操作数都为整数,执行整数除法。而只要有浮点数执行的就是浮点数除法。整型的除法:int main()return 0;a=0浮点型的除法:int main()return 0;b=0.500000。
2023-12-04 22:29:42
1619
原创 STM32 定时器TIM
在STM32中,定时器起着至关重要的作用,它设计复杂但功能强大,针对不同的情境有严谨的设计。TIM(Timer)定时器定时器可以对输入的时钟进行计数,并在计数值达到设定值时触发中断。16位计数器、预分频器、自动重装寄存器的时基单元,在72MHz计数时钟下可以实现最大59.65s的定时定时器不仅具备基本的定时中断功能,而且还包含内外时钟源选择、输入捕获、输出比较、编码器接口、主从触发模式等多种功能根据复杂度和应用场景分为了高级定时器、通用定时器、基本定时器三种类型。
2023-12-01 21:43:22
1471
原创 STM32 中断系统
本文主要讲述STM32的中断系统和外部中断,中断系统是管理和执行中断的逻辑结构;外部中断是众多能产生中断的外设之一。当CPU正在执行某个程序时,由计算机内部或外部原因引起的紧急事件向CPU发出请求处理的信号,CPU在允许的情况下响应请求信号,暂时停止正在执行的程序,保护好断点处的现场,转向执行一个用于处理该紧急事件的程序,处理完成后又返回被终止的程序断点处,继续执行原程序,这一过程就是上图中中断响应和处理的过程。NVIC就是STM32中用来管理中断、分配优先级的。
2023-11-23 21:50:40
1994
原创 STM32 GPIO常用库函数使用
GPIO_InitTypeDef 结构体/*!/*!/*!//GPIOA外设的0号引脚设为高电平//GPIOA外设的0号引脚设为高电平//设为低电平//设为高电平//设为低电平//设为高电平PortVal:待写入端口数据寄存器的值,值为16进制。以上就是今天要讲的内容,本文仅仅简单介绍了GPIO输入常用函数的使用。
2023-11-19 21:16:17
1480
原创 STM32 GPIO
GPIO(General Purpose Input Output)通用输入输出口可配置为8种输入输出模式引脚电平:0V~3.3V,部分引脚可容忍5V输出模式下可控制端口输出高低电平,用以驱动LED、控制蜂鸣器、模拟通信协议输出时序等输入模式下可读取端口的高低电平或电压,用于读取按键输入、外接模块电平信号输入、ADC电压采集、模拟通信协议接收数据等以上就是今天要讲的内容,本文简单介绍了STM32中的GPIO结构和8种模式。
2023-11-18 16:36:06
700
原创 C语言 编程题 (递归函数)
编写一个函数 reverse_string(char* string) (递归实现)实现:将参数字符串中的字符方向排列,不是逆序打印。要求:不能使用C语言库函数的字符串操作函数。1.字符串逆序(递归实现)
2023-10-23 07:37:59
204
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人