STMCU小助手
发布时间:2022-9-29 18:00
|
1.资源扩展板介绍& h4 p2 T4 e& Z9 H. B$ K 1.1硬件介绍1 v; z% {. L6 c' I- G! X# t" K2 c1 H
0 Z& P, x5 e5 `- O! F 1.2资源扩展板可开发项目
- D3 X- M9 ^! C; B( O$ d, ^3 s 2.扩展板风扇控制 2.1实验原理 打开扩展板原理图对照扩展板可以看到扩展板有1个风扇FAN1,如下图:
3 q9 V; x9 E5 \% v 由上图可见通过TIM4_CH1电平改变控制电路的通断从而驱动蜂鸣器。
扩展板与底板接口对照图# J7 M, U2 P/ }, N7 z 查看原理图可知TIM1_CH1对应PE9,查看芯片手册可知PE9可以作为PWM TIMER1的通道1使用,本文实现如何通过PWM驱动风扇:
; [6 F& l+ z, w" d/ Q2 L4 ^ 2.2实验目的7 p9 F5 Y4 o; l9 E# x% m) L/ U 了解风扇工作原理 学习TIM中PWM的使用方法,掌握如何利用STM32MP157A芯片输出PWM波控制风扇- y+ [3 B( m! j- g' `9 |0 b * v3 f: b) q, f" P7 Z 2.3实验环境0 U: g7 l& c" y. L% U$ x( Z FS-MP1A开发平台" u% e* B( y H5 j) Q 9 K% G& a/ }& n ST-Link仿真器2 ~5 F' B* X3 [$ _# i5 t STM32CubeIDE开发软件. F' _ I* P' ]/ j PC机 XP、Window7/10 (32/64bit); L- F: i; E Y2 m 8 d0 g3 w( r. O% M3 m7 y4 G" j 2.4实验步骤6 V2 ~( M* z0 {9 R MX配置 根据原理图,配置PE9引脚设置为TIM1_CH1。切换到TIM1标签,勾选给“M4”,“Channel1”选择“PWM Generation CH1”,所有配置如下图所示。 ) I4 R4 ^2 I! |3 ~
) a% { Q8 k) V. S
7 p/ }# }% f: }0 q7 P 6 t0 s7 P8 B! c/ G3 B' B' ~4 d 上述为新建工程配置过程,可参考12.3.2章节进行导入已有工程,工程存放路径【华清远见-FS-MP1A开发资料\02-程序源码\ARM体系结构与接口技术\Cortex-M4\11_EX_PWM_FAN】 代码设计 " ] y. f0 d3 y1 f* K 找到创建的工程,打开main.c,完善定时器中断回调函数,在该函数里,使用“__HAL_TIM_SET_COMPARE()” 可以修改寄存器CCR,实现不同的占空比。' u- m" O R# `- P & @/ S) f9 L! u I3 P, G6 S# | 将定时器中断启动函数“HAL_TIM_Base_Start_IT()”和定时器PWM输出开始函数“HAL_TIM_PWM_Start()”封装在一起。0 Y1 [) x8 D9 e1 B+ R uint16_t pulse = 0;" R2 B W6 y x - n6 E! I, w' N1 | void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim) 0 C! j) w1 t" E- T1 T' [4 ] {0 a2 C- }" r1 i G0 A# @( \$ q if(htim->Instance == TIM1)& s+ f( O5 B, n/ [) S2 ^/ n ? {; h+ H8 k+ s A+ _* f pulse += 1000;4 E" R: m& z) Y3 L' s$ S' G) h ) o4 m9 |& A8 e! D __HAL_TIM_SET_COMPARE(&htim1,TIM_CHANNEL_1,pulse); if(pulse >= 10000) , E% R' M' g# {8 R pulse = 0;; k5 o( n7 P! x- v6 q1 V } ' P5 P3 V B/ M- v- z3 Y }2 O q. w, e" K! {/ c void TIM_PWM_START(void) X7 L( [! W8 J( c# a {: U+ V! E( F# J- R6 M# @ if(HAL_TIM_Base_Start_IT(&htim1) != HAL_OK) $ N( b, c, t6 Q* x% L% X5 y+ ]( N7 g {7 t" L, I# F ?( B9 ] Error_Handler();, G* K. M$ n. o" g$ B ! D, G5 ?; Q8 g* s, T } 3 k5 p) U- d9 o/ D" | HAL_TIM_PWM_Start(&htim1,TIM_CHANNEL_1);5 `0 S7 s |3 l/ }+ o7 |, C & `) u7 Z9 k( ?8 i1 A; k* [0 _& J }5 N. o+ F2 q6 W) V3 I8 U . w3 u4 i7 I9 \" H0 P6 M3 f5 U+ v 在主函数中调用TIM_PWM_STERT(),改变pulse的值就可以改变PWM的占空比,可以控制实现风扇的转动。 ———————————————— 版权声明:华清远见IT开放实验室1 w, d; B1 a4 Z/ N 9 |1 y' u9 a) h" N: a ( P/ R }2 U1 y/ i% D4 b |
STM32MP157双A核Linux + 自研RTOS双系统镜像免费下载
扩展STM32微处理器,实现高性价比、低功耗和灵活性能
STM32MP1 自举程序编程:USB DFU/USART 协议全解析
兔哥心中的ST中文论坛
我心中的ST中文论坛
STM32 开发者指南:ST.com 全新 MCU 产品阵容视觉布局深度解析
深度拆解 STM32MP1 Boot 链路
STM32串口自动识别波特率的原理
STM32MP135 MP157 MP257 CoreMark移植&&跑分对比&&多核心负载不均衡问题排查与解决
STM32--STM32 微控制器详解
微信公众号
手机版