
1.资源扩展板介绍 1.1硬件介绍 ![]() 1.2资源扩展板可开发项目 ![]() 2.扩展板风扇控制 2.1实验原理 打开扩展板原理图对照扩展板可以看到扩展板有1个风扇FAN1,如下图: ![]() 由上图可见通过TIM4_CH1电平改变控制电路的通断从而驱动蜂鸣器。 ![]() 扩展板与底板接口对照图 查看原理图可知TIM1_CH1对应PE9,查看芯片手册可知PE9可以作为PWM TIMER1的通道1使用,本文实现如何通过PWM驱动风扇: ![]() 2.2实验目的 了解风扇工作原理 学习TIM中PWM的使用方法,掌握如何利用STM32MP157A芯片输出PWM波控制风扇 2.3实验环境 FS-MP1A开发平台 ST-Link仿真器 STM32CubeIDE开发软件 PC机 XP、Window7/10 (32/64bit) 2.4实验步骤 MX配置 根据原理图,配置PE9引脚设置为TIM1_CH1。切换到TIM1标签,勾选给“M4”,“Channel1”选择“PWM Generation CH1”,所有配置如下图所示。 ![]() ![]() 上述为新建工程配置过程,可参考12.3.2章节进行导入已有工程,工程存放路径【华清远见-FS-MP1A开发资料\02-程序源码\ARM体系结构与接口技术\Cortex-M4\11_EX_PWM_FAN】 代码设计 找到创建的工程,打开main.c,完善定时器中断回调函数,在该函数里,使用“__HAL_TIM_SET_COMPARE()” 可以修改寄存器CCR,实现不同的占空比。 将定时器中断启动函数“HAL_TIM_Base_Start_IT()”和定时器PWM输出开始函数“HAL_TIM_PWM_Start()”封装在一起。 uint16_t pulse = 0; void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim) { if(htim->Instance == TIM1) { pulse += 1000; __HAL_TIM_SET_COMPARE(&htim1,TIM_CHANNEL_1,pulse); if(pulse >= 10000) pulse = 0; } } void TIM_PWM_START(void) { if(HAL_TIM_Base_Start_IT(&htim1) != HAL_OK) { Error_Handler(); } HAL_TIM_PWM_Start(&htim1,TIM_CHANNEL_1); } 在主函数中调用TIM_PWM_STERT(),改变pulse的值就可以改变PWM的占空比,可以控制实现风扇的转动。 ———————————————— 版权声明:华清远见IT开放实验室 |
更新STM32MP135-Openwrt镜像
基于STM32MP1和STM32MP2在嵌入式Linux平台上部署有效的安全保护机制
利用STM32MP1和STM32MP2为嵌入式Linux提供有效的安全措施:供当今决策者参考的3条宝贵经验
STM32MP1 WiFi连接
【STM32MP157】从ST官方例程中分析RPMsg-TTY/SDB核间通信的使用方法
【STM32MPU 安全启动】 TF-A BL2 TrustedBoot原理学习
《STM32MPU安全启动》学**结
《STM32MPU安全启动》学习笔记之optee 如何加载CORTEX-M核和使能校验
《STM32MPU安全启动》学习笔记之TF-A BL2校验optee和uboot的流程以及如何使能
《STM32MPU 安全启动》课程学习心得+开启一扇通往嵌入式系统安全领域深处的大门。