完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
脉宽调制(PWM)基本原理:控制方式就是对逆变电路开关器件的通断进行控制,使输出端得到一系列幅值相等的脉冲,用这些脉冲来代替正弦波或所需要的波形。也就是在输出波形的半个周期中产生多个脉冲,使各脉冲的等值电压为正弦波形,所获得的输出平滑且低次谐波少。按一定的规则对各脉冲的宽度进行调制,即可改变逆变电路输出电压的大小,也可改变输出频率。 因为面积相等的窄脉冲加在惯性环节上时,其效果相等。 所以我们可以用PWM的占空比来控制输出电平,从而控制LED灯的亮度。 通过引脚功能我们可以发现,GPIO0拥有PWM0功能。 所以我们先配置引脚功能: hal_gpio_init(HAL_GPIO_0); hal_pinmux_set_function(HAL_GPIO_0,HAL_GPIO_0_PWM0); 然后开启PWM时钟: hal_pwm_init(HAL_PWM_CLOCK_32KHZ); 设置PWM输出频率,这里是200HZ: hal_pwm_set_frequency(HAL_PWM_0, 200,&total_count); 计算占空比,占空比的计算和频率有关,这里的占空比先设置为10: duty_cycle = (total_count * 10) / 100; 设置占空比: hal_pwm_set_duty_cycle(HAL_PWM_0,duty_cycle); 最后使能PWM输出: hal_pwm_start(HAL_PWM_0); 通过后面的循环: while(1) { for(i= 0;i < 100;i++) { duty_cycle= (total_count * i) / 100; hal_pwm_set_duty_cycle(HAL_PWM_0,duty_cycle); log_hal_info("%drn",i); hal_gpt_delay_ms(100); } for(i= 100;i >0;i--) { duty_cycle= (total_count * i) / 100; hal_pwm_set_duty_cycle(HAL_PWM_0,duty_cycle); log_hal_info("%drn",i); hal_gpt_delay_ms(100); } } 可以观察到LED灯在不同时间呈现不同的亮度,就是我们的呼吸灯效果。 |
|
相关推荐
|
|
只有小组成员才能发言,加入小组>>
1020 浏览 0 评论
【KV260视觉入门套件试用体验】四、KV260 视觉入门套件和固件更新
1592 浏览 0 评论
【KV260视觉入门套件试用体验】Vitis AI Library体验之OCR识别
1192 浏览 0 评论
【KV260视觉入门套件试用体验】Vitis AI 通过迁移学习训练自定义模型
1689 浏览 0 评论
【KV260视觉入门套件试用体验】KV260系列之Petalinux镜像+Resnet 50探索
1355 浏览 0 评论
【AMD KV260视觉入门开发套件试用】4、简单几步体验ubuntu 20.04.3 LTS运行人员检测应用
1648浏览 1评论
1943浏览 1评论
【KV260视觉入门套件试用体验】老刘记事儿KV260初体验之Micro-SD选型提速研究(三)
882浏览 1评论
【KV260视觉入门套件试用体验】KV260部署yolov3实现车辆和行人检测
2550浏览 1评论
【KV260视觉入门套件试用体验】基于KV260的人脸识别的实现与展示
890浏览 1评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-21 12:53 , Processed in 0.341991 second(s), Total 43, Slave 35 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号