STMCU小助手
发布时间:2022-12-31 19:23
|
项目简介( w1 C/ D6 J9 |& C 利用CubMX生成基于32单片机的HAl库工程,然后编写程序在proteus上仿真验证。本项目最适合没有开发板的同学学习,零成本利用仿真软件率先入门STM32单片机。这是第六部分针对STM32单片机内置TIM模块的PWM波形产生的学习和理解。" w# E7 E( [; x, I 硬件模块 STM32F103R4 示波器& S1 a! N7 g& n, Q* b , r1 I( n9 ?+ p6 s1 ~. }7 j. P 软件工具 CubMX, N# o! U) r9 N+ E8 Y Proteus6 Y3 Z# `2 n8 T# b+ v+ [/ {' B2 G KEIL ; W5 F6 ~8 T$ q! d 电路连接图9 T( R4 F6 Z% f3 U
X, P& O7 c$ }8 N1 |* Y- J 工作流程$ _" I5 d% A) c( y1 L 首先,在CubMX种设置号一些参数,选择TIM1定时器,按下图设置好工作模式。输出PWM的引脚是PB15引脚。 l8 q) e: U; j! K( g0 ?& w
f2 U3 a' p$ Z$ N9 _) j 然后再按下图设置好预分频和计数值 3 s0 T6 T" Y8 B) v0 {/ Z
" m: a% u& ^: J% R/ P 最好设置好占空比,占空比=Pulse/Per,比如想要设置占空比为20%,而上面设置了计数值为1000,那么按照这个占空比,就照下图设置好Pulse为200即可。3 d% s/ L0 o: J0 D. \7 H , N* m& E" S( o) W; W0 K, v' Q
7 g6 q: I, _! @3 G# w N) [ 然后生成工程。 . B) r5 ~: |6 T) s; K6 Y% V 增加输出PWM的代码。 ( S& p, _/ m0 }; W
9 f ]5 b$ a8 {6 q0 G5 C 出现问题了,上网查了一下好像是超出了单片机内部的资源。网上推荐的方法是直接换一个型号的32单片机,但是我不想用这种方法,后来我删掉一行有浮点运算的Printf函数就可以了,可能是printf用的太多了,太占内存。可以运行了,但是一开始还是没有PWM波形输出,于是我换了个通道,如下图。
2 D; E; e. t1 a- y9 {0 E& ?4 R
4 ^1 F. s& D7 `/ i8 V$ _7 D1 S+ U Prescaler:分频值,可以设置为0 Counter Mode:计数模式 Counter Period:自动装载值 Auto-reload preload:使能自动装载功能 * F# i2 g7 L+ O! h- I+ S* t4 K
Mode:PWM波模式 Pulse:计数比较值 CH Polarity:输出极性 * H2 o0 ^2 k* Y3 z 输出的结果如下图,这是20%的
然后改变占空比为50%( X: U$ [) q c. y $ {! k3 d0 V$ i; O( ^
' z* W% I# E/ j2 b9 O# t* ]8 n/ V 输出波形3 n" w6 z7 Z. X# {4 h
; I5 d5 k; i0 A3 e 至此,PWM模块完成。 6 }6 h, ]0 `: j+ g: n% D 程序代码3 u! }& _4 M* N mian.c
作者:jxjajl - H5 J* b1 t: I- H0 O |
【STM32H5 评测】ADC 电压表
【STM32H5 评测】基础硬件加密与随机数性能 - STM32H5E5实测硬件AES加解密、HASH运算、TRNG真随机数输出速率与稳定性
【STM32H5 评测】NUCLEO-H5E5ZJ 使用 TrustZone 安全分区系统实践测试
【STM32H5 评测】CPU核心性能 - STM32H5E5跑 RTOS,观察任务切换速度、中断响应快慢
【STM32H5 评测】介绍、环境搭建、工程测试
#双节活动 1.在CubeMX中引用touchGFX出现的问题与解决
如何将STM32CubeMX生成的CMake工程导入STM32CubeIDE
【 逢7发帖赢大礼】1、利用CubeMX生成正点原子H7R7开发板的STM32CubeIDE工程
STM32CubeCLT 1.22.0新版本发布
【下载问题解决】关于ST官网下载软件问题解决
微信公众号
手机版