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




相关文章
小巴陪你搞技术-STM32驱动1602时钟
小巴陪你搞技术-STM32驱动1602时钟
|
7月前
|
存储 数据安全/隐私保护
STM32实战项目—密码锁
本文完整详细地介绍了一个密码锁项目的要求,设计思路,程序实现,问题总结和成果展示内容。
140 2
STM32实战项目—密码锁
|
1月前
【STM32】通过RTThread驱动W25QXXX
【STM32】通过RTThread驱动W25QXXX
|
2月前
STM32F103驱动oled显示屏
STM32F103驱动oled显示屏
25 0
|
2月前
STM32控制SG90舵机原理及代码
STM32控制SG90舵机原理及代码
52 1
|
7月前
|
芯片
STM32外设系列—sg90(舵机)
本文介绍了什么是舵机,舵机的控制原理。以sg90为例,介绍了180°舵机的控制方法,给出了详细的程序设计。最后,介绍了360°舵机的控制方法。
885 1
STM32外设系列—sg90(舵机)
|
5月前
|
存储 编解码 算法
基于STM32的开源简易示波器项目
基于STM32的开源简易示波器项目
86 0
|
7月前
|
运维 小程序 API
STM32实战项目—WIFI远程开关灯
本文介绍了如何利用正点原子ESP8266和STM32F103C8T6连接腾讯云,利用舵机实现远程开关灯。给出了详细的腾讯云配置和调试步骤,给出了部分程序设计。
128 0
STM32实战项目—WIFI远程开关灯
|
7月前
|
存储 索引
STM32实战项目—停车计费系统
本文详细介绍了一个停车计费系统的任务要求,实现思路。最后,给出了详细的程序设计和测试结果。
136 2
STM32实战项目—停车计费系统
|
7月前
STM32实战项目—楼宇人员计数系统
本文介绍了一个基于红外对管的楼宇人员计数系统设计。简单介绍了一下红外对管的原理和使用方法。针对任务要求给出了详细的实现思路和程序设计。
37 3
STM32实战项目—楼宇人员计数系统