- 博客(26)
- 问答 (2)
- 收藏
- 关注
原创 ADC模数转换器
ADC:模拟-数字转换,将引脚上的连续变化的模拟电压转化为内存中储存的数字变量,建立起模拟电路到数字电路的桥梁(DAC与之相反)12位逐次逼近型ADC,1us转换时间(表示范围0~2^12-1=4095,位数越高量化结果越精细,对应分辨率越高;转换时间表示从转化开始到结束,需要1us的时间,对应AD转换的频率就是1MHz,这是STM32 ADC的最高转换频率)输入电压范围:0~3.3V,转换结果范围:0~4095(电压和转换结果之间成正比)
2024-05-04 17:06:35
878
原创 TIM编码器接口测速
(3)配置输入捕获IC_Init(注意在输入捕获结构体配置中,我们无需全部配置,因为我们只用到了输入滤波器和边沿检测器;我们可以将无用部分删除,但为了避免出错,在进行结构体赋值时用TIM_ICStructInit(&TIM_ICInitStructure);在这里,我们并不会使用72M内部时钟和在时基单元初始化设置的计数方向,因为此时计数时钟和计数方向都处于编码器接口托管的状态,计数器的自增和自减手编码器控制。(2)配置GPIO和时基单元(时基单元中PSC赋值为0,不分频;
2024-04-13 22:04:37
1034
原创 输入捕获测量PWM频率和占空比
TI1FP2在选择下降沿触发,选择交叉连接进入通道2,下降沿触发时CCR2的值即为一个周期电平中高电平的计数值,用CCR2/CCR1即可得到占空比(根据左上分析得出计算模式)而我们显示的是TIM3测量出的结果,通过测量结果与我们自行输出的方波对比检验测量是否精准。将波形输入从PA0口,输出到PA6口(具体IO口可查引脚定义表)主函数这里改变的是TIM2口产生的方波的CCR值和PSC值。此时结果应为 Freq:00100Hz。此时结果应为 Freq:01000Hz。,输入到TIM3的CH1接口处。
2024-04-13 19:38:47
434
原创 关于keil软件中手动添加.c和.h文件,.h文件不显示的方法
2.未正确链接到源文件: 确保头文件在源文件中正确引用。在源文件中使用 #include 指令来包含头文件,例如:#include "your_header_file.h"。如果头文件路径不正确或者文件名拼写错误,头文件可能不会显示在源文件下面。1.未添加到项目中: 确保头文件已经添加到了你的项目中。在Keil中,你可以在项目资源管理器中看到项目的文件结构。如果头文件没有出现在其中,你需要将其添加到项目中。在Keil中创建的头文件(.h 文件)通常应该显示在与其相关联的源文件(.c 文件)下面。
2024-04-11 22:01:12
5332
1
原创 输入捕获测量PWM频率
将波形输入从PA0口,输出到PA6口(具体IO口可查引脚定义表)利用TIM2的CH1产生PWM波,输入到TIM3的CH1接口处。所以本实验中将PA0连接到PA6。PSC扩大10倍,频率降低10倍。更改main.c中相关值。
2024-04-11 21:42:23
224
原创 TIM输入捕获IC(Inpute Capture)
输入捕获模式下,当通道输入引脚出现指定电平跳变,当前CNT的值将被锁存到CCR中,可用于测量PWM波形的频率、占空比、脉冲间隔、电平持续时间等参数高级定时器和通用定时器都拥有4个输入捕获通道,每个定时器输入捕获或者输出比较只能选其一可配合PWMI模式,同一个引脚方波进入两个不同的通道,同时测量频率和占空比可配合主从触发模式,实现硬件全自动测量。
2024-04-10 18:21:55
1849
原创 TIM输出比较
PWM(Pluse Width Modulation)脉冲宽度调制在具有惯性的系统中,可以通过对一系列脉冲的宽度进行调制,来等效地获得所需要的模拟量,常用于电机控速等领域,这里特殊说明,必须是具有惯性的系统PWM参数:频率 = 1/Ts 占空比 = Ton/Ts 分辨率 = 占空比变化步距占空比决定了PWM等效出来的模拟电压的大小,并且呈现线性。若高电平为5V,低电平0V,50%占空比模拟电压为2.5V。
2024-04-09 21:41:59
899
原创 定时器外部时钟计数
● 内部时钟(CK_INT)● 外部时钟模式1:外部输入脚(TIx)● 外部时钟模式2:外部触发输入(ETR)● 内部触发输入(ITRx):使用一个定时器作为另一个定时器的预分频器(常用来做级联操作)我们选择通用定时器TIM2,查表得知该定时器的ETR接口默认为PA0引脚。
2024-04-02 21:58:47
325
原创 中断应用,旋转编码器计次
本程序中中断检测为上升沿触发,所以当A相为上升沿时,B相为高电平,编码器为左转。当B相为上升沿时,A相为高电平,编码器为右转。通过AB两项输出两个方波,根据他们的偏移规律来判断旋转编码器的正转和反转。该函数不能随意取名,要遵循官方命名规则,函数名称在启动文件中查找。
2024-04-01 21:45:43
245
原创 STM32F103C8T6的外部触发定时器(ETR)引脚
资源:TIM1、TIM2、TIM3、TIM4。STM32F103C8T6有四个定时器。为什么只有TIM2有ETR引脚?
2023-12-02 21:01:24
535
原创 STM32定时器(一):定时器中断、定时器外部时钟
高级定时器(TIM1、TIM8);APB2总线;除通用功能外,额外拥有重复计数器、死区生成、互补输出、刹车输入等通用定时器(TIM2、3、4、5);APB1总线;除基本功能外,额外具有内外时钟源选择、输入捕获、输出比较、编码器接口、主从触发模式等基本定时器(TIM6、TIM7);APB1总线;定时中断、主模式触发DAC功能STM32F103C8T6定时器资源:TIM1、TIM2、TIM3、TIM4。
2023-12-01 21:10:36
1054
原创 外部中断实验-对射式传感器OLED 屏幕计数
EXTI可以检测指定的GPIO口的电平信号,当其指定的GPIO口产生电平变化时,EXTI将立刻向NVIC发出中断申请,经过NVIC判断后可中断CPU主程序,使CPU执行EXTI对应的中断程序。//调用清除EXTI配置,恢复上电前状态//初始化EXTI函数,使用方法类似GPIO_Init//传递结构体地址//软件触发外部中断//获取指定标志位是否置1//对置1的标志位清除//获取中断标志位是否置1//清除中断挂起标志位//中断分组//根据结构体里面的指定参数初始化NVIC//设置中断向量表。
2023-11-16 18:28:04
68
原创 GPIO输入输出实验:振动传感器控制led点亮
这里注意,我们在初始化端口后,端口默认为低电平,二极管点亮。设置端口为高电平,二极管熄灭。STM32F103C8T6,SW-1801P振动传感器,发光二极管。发光二极管正极接电源,负极接IO口,低电平点亮。3.1 LED.c代码。3.2 振动传感器代码。3.3 main函数。
2023-10-25 15:41:23
140
原创 常见的单片机外设,继电器,振动传感器
所以GPIO输入模式选择GPIO_MODE_IPD 下拉输入。2. 浮空输入(GPIO_Mode_IN_FLOATING )7. 复用开漏输出 ( GPIO_Mode_AF_OD )8. 复用推挽输出( GPIO_Mode_AF_PP )5. 开漏输出( GPIO_Mode_Out_OD )6. 推挽输出( GPIO_Mode_Out_PP )4. 下拉输入(GPIO_Mode_IPD )1. 模拟输入(GPIO_Mode_AIN)3. 上拉输入(GPIO_Mode_IPU)
2023-09-04 20:48:13
164
原创 stm32单片机库模板的建立和简单的固件库程序编写
另外再添加新的.c和.h文件时,先添加.c然后在第一行#include"xxx.h",之后进行编译,.h会自动归类到.c文件下,之后在.c和.h文件里添加#include"stm32f103.h"包含。其中,CMSIS文件里复制粘贴拷贝之前STM32F10x_StdPeriph_Lib_V3.5.0文件下,STM32F10x_StdPeriph_Lib_V3.5.0\Libraries\CMSIS\CM3\DeviceSupport\ST\STM32F10x中的和。在当前文件夹下,新建立这四个文件夹。
2023-09-03 21:48:56
248
原创 c语言学习日记:输出数组反序存放问题,新人学习数组常见的错误
2.其他数组数据量地址想赋值给指针变量必须加取地址符&;1.数组名为数组首地址,可以直接赋值给指针变量;结果输出验证,无问题。
2023-06-26 12:04:20
208
空空如也
C语言成绩输出四舍五入问题
2022-09-04
求平均值遇到的一些问题
2022-08-06
TA创建的收藏夹 TA关注的收藏夹
TA关注的人