查看: 1036|回复: 0

[评测分享] 【正点原子精英板F103试用报告】配置PWM,让灯活起来

[复制链接]
  • TA的每日心情
    奋斗
    2024-11-12 19:35
  • 签到天数: 12 天

    连续签到: 1 天

    [LV.3]偶尔看看II

    发表于 2022-5-2 12:53:47 | 显示全部楼层 |阅读模式
    分享到:
    抱歉各位久等,学校比赛有点多,咕咕咕了好久。

    首先在原理图里找到两个led的引脚 分别别是PE5和PB5,但是很遗憾PE5没有定时器引脚,所以只能选择PB5
    引脚配置.png 如图,打开TIM3的PWM_Channel2通道
    然后打开外部晶振,因为要配置时钟树,外部晶振打开和使能调试串口可以在我上一篇帖子里找到。
    时钟配置1.png 时钟配置2.png 记住要切换到外部时钟,
    否则频率会有问题

    配置完始终就可以配置频率了


    打开PWM输出.png 计数模式选择向上计数,PSC和ARR是计算PWM频率的主要参数,具体情况自己根据实际应用场景来调整。

    Fpwm = 100M / ((arr+1)*(psc+1))(单位:Hz)

    • arr 是计数值
    • psc 是预分频值

    如:
    3. 主频=100M
    4. arr=100
    5. psc=1000
    100,000,000/100/1000=1000Hz


    duty circle = TIM3->CCR1 / arr(单位:%)

    TIM3->CCR1 是捕获比较寄存器值
    从下面代码可以看出TIM3->CCR1 就是对应的sConfigOC.Pulse
    arr对应htim5.Init.Period = 999;
    psc对应htim5.Init.Prescaler = 99;

    如果 arr=1000,TIM3->CCR1=500则pwm的占空比为50%,通过修改CCR1可以修改占空比,修改arr可以修改频率



    3644ee0f66da9fa2974e35d172c828b.png
    1.   HAL_TIM_PWM_Start(&htim3, TIM_CHANNEL_2);
    复制代码
    这一句是使能PWM发生器
    1. __HAL_TIM_SetCompare(&htim3,TIM_CHANNEL_2,pwm_val);
    复制代码
    装载给定的值使产生pwm对应通道

    至此,按下复位键就可以看到小灯在愉快的呼吸了。
    至于FREERTOS系统上的代码会更新上来的
    回复

    使用道具 举报

    您需要登录后才可以回帖 注册/登录

    本版积分规则

    关闭

    站长推荐上一条 /4 下一条

    手机版|小黑屋|与非网

    GMT+8, 2024-11-26 08:49 , Processed in 0.132831 second(s), 17 queries , MemCache On.

    ICP经营许可证 苏B2-20140176  苏ICP备14012660号-2   苏州灵动帧格网络科技有限公司 版权所有.

    苏公网安备 32059002001037号

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.