STM32原理学习
文章平均质量分 52
STM32原理学习
Young member
一入电子深似水,从此摆烂是路人。在报错中升华,在bug中悟道。
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
STM32之I2C通信协议
关于数据的收发,是由SDA与SCL两条线的电位变化来决定,这就有关IIC时序的基本单元。当从机接收数据时,只有当SCL为低电平时数据才能传输,所以所有从机包括主机在接收数据时,都是SCL低电平起始,SCL低电平结束。IIC通信为半双工的通信方式,只有一根数据线SDA(SDA通信引脚)和一根时钟线SCL(SCL通信引脚)。属于一主多从的总线结构,总线上的每个设备都有特定的地址(互不相同),通信都由主设备发起,从设备响应,拥有应答机制。SCL通信引脚用于时钟控制,与时钟控制寄存器(CCR)连接,用于控制时钟。原创 2023-09-22 23:48:34 · 554 阅读 · 1 评论 -
STM32输入捕获
前言:单片机的输入捕获模式作用主要为分析外部输入的信号的频率与占空比(有点类似于示波器)英文简称IC(Input Cpture)。减少误差的方法,中界频率法:令f=N(上升沿计次)/T(一个周期)与f=fc(标准频率)/N中的N相等,解出f的值fm。当待测信号频率大于fm时,测频法误差小。捕获周期的方法就是测量两个上升沿之间的时间间隔(PS:每记一次CNT就要把CNT清零),就是一个周期,接着取倒数就是频率。测周法:f=fc(标准频率)/N,周期的倒数:T=N/fc,计一个数的时间是1/fc,计N个数。原创 2023-09-12 00:48:13 · 629 阅读 · 0 评论 -
STM32的ADC模数转换器
这样,就间接的知道了外部模拟信号的电压大小,也就是数字信号。前言:ADC模数转换器,作用在于使得本来只能读取高电平或低电平的IO口可以读取高低电平之间的任意信号了,并将这一输入的模拟信号转化为数字信号呈现出来,相当于把一个看不见摸不着的变化的信号(举个例子:正弦信号)给实时用对应的电压值表示出来(现象就是可以在OLED屏幕上面实时显示当前端口的电压值)。注入通道数据寄存器:采用注入输入,即可以同时进行4个通道的ADC转换,并将其存入注入通道数据寄存器中,该寄存器的有四个位置,刚好可以储存这四个通道的数据。原创 2023-09-15 20:29:39 · 227 阅读 · 0 评论 -
STM32单片机USART串口通信
通信是学习单片机必不可少的的一个环节,通信的方式有很多,本小结先介绍最基本的一种通信方式,以便于了解单片机的通信的模式。:单片机之间是通过高低电平的变化来传递数据的,这个高低电平的值是需要一个标准统一的。原创 2023-09-20 20:43:03 · 373 阅读 · 1 评论 -
定时器编码器接口
编码器接口可接收增量编码器信号,根据正交编码器旋转产生的正交信号脉冲,自动控制CNT自增或自减,从而指示编码器的伪装,旋转方向和速度。每个高级定时器和通用定时器都拥有一个编码器接口,编码器接口的两个输入引脚借用了输入捕获的通道一和通道二。前言:在我们需要用单片机来测量外部编码器接口或者外部的霍尔电机的旋转速度与方向时,如果使用中断来使得每转过一定角度就进中断来告诉单片机转过角度的时间,这样未免太过麻烦,占用了单片机很多的算力。当TI1上升沿时,TI2是低电平,查表得知当前编码器为向上计数模式,为正转。原创 2023-09-12 20:18:41 · 243 阅读 · 2 评论 -
STM32输出比较
用于比较CNT(计数器)与CCR寄存器的值,当两者进行比较大小时,进行置1,置0或翻转的操作,用于输出一定频率与占空比的波形。当频率变化够快时,就可以输出不是阶跃信号的模拟信号,例如正弦信号等。驱动电机等,注意如果使用外部电源驱动电机的话外部电源要与单片机共地,对应的PWM引脚接在单片机的输出引脚上。模式:PWM模式1:向上计数CNT<CCR时置高电平,CNT>=CCR时置低电平(还有一个向下计数一般不使用)高级定时器前三个输出比较通道拥有死区生成和互补比较的功能,用于驱动三相无刷电机。原创 2023-09-09 16:06:08 · 526 阅读 · 1 评论 -
STM32之DMA控制器
DMA有12个独立的可配置的通道,其中DMA1有7个,DMA2有5个。硬件触发一般用于外设与内部寄存器之间的数据传输,因为外设采集数据有时效性,必须等待采集完成一次之后再转运,如此反复。该图左上角为控制器相当于CPU,右边的Flash,SRAM,还有一堆的寄存器都是数据转运的对象。前言:DMA简单来说就是一个数据转运器,用于将外设与存储器之间的和存储器与存储器之间的数据进行高速转运。其中的指定重装寄存器用于实现循环模式,当传输计数器的传输数减到0时,自动重装器就会重新将计数次数初始化,达到一个循环的效果。原创 2023-09-19 20:04:16 · 492 阅读 · 0 评论 -
TIM定时中断
影子寄存器/缓冲寄存器:主要是防止在一个计数周期未结束而改变预分频值导致的频率不一致的问题,缓存寄存器的存在会使得当目前的计数周期结束后进入下一个周期才会改变预分频值,在这之前该变化储存在缓冲寄存器中。例如:要设置一秒产生一个中断,则1s=1hz所以预分频值可以取71,重装载值可以取10^6-1。来自单片机TIMx-ETR引脚上的外部时钟,一般在PA0引脚,具体看对应单片机的引脚定义。时间=72MHz/(预分频值+1)/(重装载值+1) PS:1MHz=10^6Hz。原创 2023-09-09 12:37:25 · 275 阅读 · 1 评论 -
STM32中断系统之外部中断
预分频器,重装载值的介绍:stm32内部主频是72MHz,预分频器PSC相当于预先将72MHz进行分割,分割成n份,实际分频系数=PSC+1。简单说就是单片机在处理某件事的过程中出现了特定的中断条件,导致单片机停止当前程序,而去处理中断程序,处理好后再回到当前程序。中断有优先级之分,也可以有中断嵌套的情况,这是为了处理紧急情况而进入新的中断优先去处理紧急的程序,后面再细讲。抢占优先级:在当前程序还在处理的过程中进入中断,打断当前程序,优先处理中断程序,中断嵌套的由来。五、TIM定时器中断。原创 2023-09-03 22:10:00 · 592 阅读 · 0 评论
分享