自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(13)
  • 收藏
  • 关注

原创 7.1江科大STM32学习之ADC模数转换器(理论)

可以将引脚上连续变化的模拟电压转换为内存中存储的数字变量,建立模拟电路到数字电路的桥梁另外,使用DAC就可以将数字变量转化为模拟电压。上一节我们还学到了一个数字-模拟的桥梁:PWM。我们使用PWM来控制led的亮度,电机的速度,这就是DADC的功能。同时,PWM只有完全导通和完全断开两种状态。在这两种状态上都没有功率损耗,所以在直流电机调速这种大功率的应用场景,使用PWM来等效模拟量是比DADC更好的选择。并且PWM电路更加简单,更加常用。所以可以看出PWM还是挤占了DADC的很多应用空间。

2024-08-09 14:22:24 721

原创 6.2江科大STM32学习之TIM编码器接口(代码)

GPIO输入模式上下拉该怎么选择,主要看外部模块,如果外部模块输入高电平那么采用上拉模式,如果外部模块输入低电平那么采用下拉输入模式。由上图可知将任意一个极性反转了就会改变a,b的输入方向,从而导致实例方向发生改变变为于其相反放心,向右自增。第一个参数选择定时器,第二个参数选择编码器工作模式,后面两个参数是分别选择通道一和通道二电平极性。缺点就是当引脚悬空时(就是没有输入电平),就容易受到噪声信号的干扰,来回不断跳变。预分频器这里改成1-1,预分频给零,就是不分频,编码器的时钟直接驱动计数器。

2024-08-07 11:58:45 352

原创 6.2江科大STM32学习之TIM编码器接口

原理:编码器接口接收编码器(正交)的信号(输出的两个方波信号,相位相差九十度,超前九十度或者滞后九十度,分别代表正转和反转),根据编码器旋转产生的正交信号脉冲,从而来自动控制CNT自增或自减正交编码器编码器转的越快,这个方波的频率就越高,因此方波的频率就代表了速度。我们取出任意一相的信号来测频率,就能知道旋转速度了。但是只有一相的信号无法测量旋转方向。因为无论正转还是反转,它都是这样的方波,想要测量方向,还必须要有另一根线的辅助。

2024-08-03 15:10:14 838

原创 6.1江科大STM32学习之TIM输入捕获测频率和占空比

结构体配置输入捕获单元函数,输入捕获和输出比较都有四个通道,输入捕获因为可能有交叉通道存在所以没有用OCInit一样有四个通道配置函数。所以输入捕获的定时器要换一个,所以我们用TIM3。使用这个函数,只需要传入一个通道的参数就行了,在这个函数里会自动把剩下的一个通道初始化成相反的配置。比如这里传入通道1,直连,上升沿,那函数里面就会顺带配置通道2,交叉,下降沿。输出比较配置成PWM模式1,输出为高电平,输出使能打开,初始CCR设为0,如果传入通道2,直连,上升沿,函数就会顺带配置通道1,交叉,下降沿。

2024-08-01 14:27:11 993

原创 6.1江科大STM32学习之TIM输入理论

其原理:外部信号发生跳变然后倍边沿检测器检查到跳变信号然后CNT的值就被寄存器捕获,从而计算跳变的时间在整个过程中占高电平时间和低电平时间就是信号频率和占空比,并且没有输出因为四个引脚是共用,并且输入捕获和输出比较寄存器是公用的的所以对于同一个一个定时器只能进行输入捕获或者输出比较,二者只能进行其一输出比较原理:就只用到了CNT与寄存器的比较然后输出OC。

2024-07-30 15:29:56 611

原创 5.2江科大STM32学习之TIM输出比较(PWM)

推挽电路三种状态上管导通下管断开输出高电平下管导通上管断开输出低电平上下都断开输出高阻态通过PA0驱动LED:占空比越大LED越亮,占空比越小LED越暗TIM_OC1Init(配置数字比较初始化)TIM_OCStructInit(给输出比较赋一个默认值)TIM_ForcedOC1Config(配置强制输出模式,暂停输出波形并强制输出高低电平)TIM_OC1PreloadConfig(配置OC预装功能)TIM_OC1FastConfig(配置使能)

2024-07-27 14:07:31 412

原创 5.1江科大STM32学习之定时器外部中断和定时器外部时钟

一般为72MHZ,得出计算频率为1us,计算周期为9999,寄存器从0开始计数,所以就是1s来一次中断,预分频为7200——>t=时钟输入频率/预分频。就是按照这个公式而言MHZ变小,ARR,PSC为常量,T就要变大——>每次采样的时间变多,就导致采样的次数(N)增加——>采样精度增加。参数分别是:第一个是定时器,第二个是外部触发预分频器,第三个是外部触发极性,第四个外部触发滤波器。1.开启RCC内部时钟(上电)——>2.选择时基单元的时钟源——>3.配置时基单元——>13.获取标志位和清除标志位的值。

2024-07-24 12:15:01 811

原创 5.江科大STM32学习之TIM定时中断

【理论】STM32定时器时间计算公式 +【实践】TIM中断1s计时一次-CSDN博客在STM32中定时器的基本主频率为72MHZ,将72MHZ,72个计数值就是1MHZ——1us产生一次。

2024-07-23 12:22:34 1006

原创 4.江科大STM32学习之EXTI外部中断

2.你在写作业时突然就要打游戏并且你妈妈叫你吃饭:这时候就要判断优先级了,假设你觉得游戏的优先级高,你去打游戏这就叫中断优先级选择,你在打游戏的时候你妈妈拿着鸡毛掸子上来这时候吃饭的优先级瞬间就高了(这个游戏还没打完就是抢占优先级高,游戏打完了吃饭就是响应优先级高),然后你只能乖乖去吃饭,这叫中断嵌套。1.你在写作业时突然就要吃饭,你认为吃饭的优先级比写作业高,这叫产生中断,然后去吃饭,这叫中断处理,等吃完饭后你继续回去写作业,这叫中断结束。总共4位寄存器嘛:你如果抢占优先级多了,那么响应的就少。

2024-07-20 10:38:02 623

原创 3.江科大STM32学习之OLED显示屏显示

字符打印函数OLED_ShowChar:OLED_SetCursor是找那个字符的位置比如第一个A,X为横坐标第一行,Y是纵坐标,然后OLED_F8x16的前八位组和后八位以此输出。d.常见OLED驱动函数。看电路原理图需要哪些引脚。a.三种常见的调试方法。

2024-07-17 11:43:00 312

原创 2.江科大STM32学习之GPIO输入(实操代码部分)

具体要看你要用到哪个外设可跳转到函数定义的地方看因此我们要用到GPIOA——>选择RCC_APB2PeriphResetCmd来设置时钟b.GPIO读写设置(九个常见的GPIO读写函数)本题是用到GPIO_Init函数跳转其定义两个都是结构体但是GPIOX为指针,然后跳转到GPIO_InitTypeDef,其结构体变量为这些然后定义结构体变量。

2024-07-14 13:33:31 302

原创 2.江科大STM32学习之GPIO输入(简略版理论)

define与typedef的区别。

2024-07-13 13:44:14 350

原创 1.江科大STM32学习之GPIO输出(简略版)

b.GPIO基本结构(APB2外设总线)*寄存器是32位的但是引脚却只有16位所以寄存器只用到低16位(高16位是没有用到的)

2024-01-19 13:54:43 924 1

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除