- 博客(4)
- 收藏
- 关注
原创 UART等外设的多种使用方式(hal库)
在STM32中,除了UART外,其他外设(如I2C、SPI、ADC、DAC、TIM等)也通常提供类似的三种操作模式(轮询模式、中断模式、DMA模式)。中断模式可以提高系统的效率,因为CPU不需要等待,可以在处理其他任务的同时进行数据的传输。这些操作模式在STM32的HAL库中是通用的,基本上所有的外设都可以使用这三种模式来实现数据的收发和控制。在轮询模式下,CPU会等待数据的发送或接收完成后再继续执行后续操作。在DMA模式下,数据的传输由DMA控制器直接在内存和外设之间进行,减少了CPU的负担。
2024-08-25 18:22:25 414
原创 STM32软件模拟输出PWM(HAL库)
PSC,CCR的值,计数器寄存器从0开始递增或者递减,到了设定的CCR值进行电平的反转,这样就做到了在一个定时器周期内存在连续的高低电平,进而输出一个0-3.3V之间的模拟电压,既然知道了原理,只要把每一部分用软件替换就可以。我们知道在单片机上许多硬件能实现的操作都能通过软件模拟,比如USARR,I2C等通信协议。这里分享一种软件模拟输出PWM的方法。(2)用一定时器开启定时中断,这里的中断频率设置和采用定时器通道输出频率一致即可。该方法适用于定时器数量不够时,可以让一个定时器同时执行中断和输出PWM。
2024-02-12 12:48:55 1239
原创 嵌入式常用动力源之舵机——基于STM32HAL库
本次使用的是角度范围270度的舵机,对常见的任意转动角度的舵机,在配置PWM的三个参数时,需要满足输出的PWM的周期为20ms,高电平宽度为0.5ms-2.5ms.在使用主频是170MHZ的单片机下,具体到PSC,ARR,CCR的值即是:PSC=170-1,ARR=20000-1,CCR∈(500,2500)。有两个地方需要着重注意一下,不管用的是180度,270度,还是360的舵机,他们CCR的范围都是500-2500,在封装的函数里,只需改变angle的除数即可,比如我用的是270度的舵机就/270。
2024-02-12 11:49:31 995 1
原创 STM32G431定时器产生PWM(Hal库)
这里简单说一下PWM(脉冲宽度调制)的原理:在具有惯性的系统中,通过对一系列脉冲的宽度进行调制,来等效地获得所需要的模拟参量,常用的领域有电机,舵机的控速。在初始化中设置完CCR的值之后,占空比会保持不变,如果我们想改变输出电压即占空比的值,只能改变CCR的值,hal库为我们封装好了函数:__HAL_TIM_SET_COMPARE(&htim3, TIM_CHANNEL_x,n);分辨率:1/(ARR+1),占空比变化的步距,值越小,可调控的值越精确,但是一般情况下不用特殊设置。(1)选中需要的板子。
2024-02-11 22:31:59 1684 3
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人