STM32小项目总结3(内含:1.PWM控制LED达到呼吸灯+2.PWM驱动舵机+3.PWM驱动直流电机+4.笔记)

简介: STM32小项目总结3(内含:1.PWM控制LED达到呼吸灯+2.PWM驱动舵机+3.PWM驱动直流电机+4.笔记)

1.PWM控制LED达到呼吸灯


首先需要注意的是呼吸灯的效果是通过改变亮灭亮灭的速度完成(余晖效应)。


思路:


1.RCC开启GPIOA和TIM2+2.初始化时基单元+选择内部时钟+3.初始化输出比较单元+4.初始化GPIO+5.开启计数器+6.自定义函数(推荐使用PWM_SetCompare1命名)


补充:


1.使用的库函数是RCC_APB2Per....


2.初始化时基单元使用的是TIM_TimBaseInit();+TIM_IniternalClock();


3.TIM_OCInit();


4.GPIO_Init();


5.Tim_Cmd();


6.自定义函数PWM_SetCompare1;真正起作用的是TIM_SetCompare();


ARR,CCR,PSC用来计算频率,占空比,分辨率。公式如下


Freq=ck_PSC/(PSC+1)/(ARR+1)
Duty=CCR/(ARR+1)
Reso=1/(ARR+1)


2.PWM驱动舵机


思路:


与PWM控制呼吸灯基本相同,只增加以下不同的地方:


封装舵机函数,推荐自定义void Servo_Init().


封装一个函数,使之PWM控制呼吸灯变为能观察的角度。实际起作用的函数是PWM_SetCompare(Angle/180*200+500);注:Angle是你想要传入的观察的角度值


3.PWM驱动直流电机


思路:


电机转动的条件是输入端的AIN1和AIN2必须一个高电平,一个低电平。


推荐封装为Motor_Init();


输出端有两个,所以使用两个GPIO引脚。


需要显示速度,所以需要自定义速度函数,该函数需要传参,推荐自定义为void Motor_SetSpeed(Speed);实际执行时,先判断参数正负,使之速度有正负,然后使用GPIO_ReSetBits();和GPIO_SetBits(),使之变为一高一低。


4.笔记:


444d79d7da9c406fbab86affbea45622.jpg




相关文章
|
2月前
|
存储 安全 数据安全/隐私保护
STM32 Customer BootLoader 刷新项目 (一) STM32CubeMX UART串口通信工程搭建
本文介绍了基于STM32的Customer BootLoader刷新项目的第一部分:使用STM32CubeMX搭建UART串口通信工程。项目采用正点原子探索者v2开发板,通过USB串口与上位机通信,实现固件刷新功能。主要内容包括: 1. 硬件原理图介绍:详细描述了开发板的串口连接方式及电路图。 2. STM32CubeMX工程搭建:从创建新工程、配置系统时钟、USART串口设置到生成代码,一步步详细说明。 3. 代码编写:展示了如何使用HAL库实现串口接收和发送数据,并提供了main.c的完整代码。 4. 工程下载和调试:编译并下载工程到开发板,通过串口调试助手验证通信功能。
STM32 Customer BootLoader 刷新项目 (一) STM32CubeMX UART串口通信工程搭建
|
2月前
|
芯片 内存技术
STM32 Customer BootLoader 刷新项目 (二) 方案介绍
本项目设计了一款基于STM32的二级BootLoader,旨在为客户自定义启动过程提供软件更新和操作后门。BootLoader架构分为三层:ST自带Boot(SB)、客户定制化Boot(CB)和应用层(APP)。CB通过USART与MCU通信,支持多种指令如版本查询、擦除扇区、写入数据等,实现灵活的软件管理和更新功能。Flash空间分配为Sector 0-1用于CB,Sector 2-11用于APP。整个方案详细介绍了内存布局、跳转逻辑及支持的指令集,确保系统稳定运行并支持未来的扩展需求。
 STM32 Customer BootLoader 刷新项目 (二) 方案介绍
|
9月前
STM32Cubemx PWM驱动加湿器模拟火山喷发效果
STM32Cubemx PWM驱动加湿器模拟火山喷发效果
152 14
|
9月前
STM32Cubemx PWM驱动SG90舵机
STM32Cubemx PWM驱动SG90舵机
363 13
|
8月前
|
传感器
手把手在STM32F103C8T6上构建可扩展可移植的DHT11驱动
【8月更文挑战第29天】本文详细介绍在STM32F103C8T6上构建可扩展且可移植的DHT11温湿度传感器驱动的步骤,包括硬件与软件准备、硬件连接、驱动代码编写及测试。通过这些步骤,可根据实际项目需求优化和扩展代码。
347 0
|
9月前
STM32CubeMX mpu6050驱动
STM32CubeMX mpu6050驱动
121 10
|
9月前
STM32CubeMX WS2812B灯驱动
STM32CubeMX WS2812B灯驱动
387 1
|
9月前
STM32CubeMX ULN2003步进电机驱动
STM32CubeMX ULN2003步进电机驱动
152 0
|
8月前
|
编解码 算法
掌握PWM:STM32F103实现PWM控制直流电机小风扇
PWM,即脉冲宽度调制(Pulse Width Modulation),是一种广泛应用于电子和电机控制领域的信号编码方法。PWM的核心思想是通过改变数字信号的脉冲宽度来模拟模拟信号的幅度变化,从而达到控制输出功率的目的。
1023 0
|
9月前
STM32Cubemx TB6612直流电机驱动
STM32Cubemx TB6612直流电机驱动
356 0