免费自助建站软件,wordpress生成多个尺寸图片,wordpress插件路径,宁波网站建设的企业本文介绍树莓派(raspberry pi)在linux c 环境下的硬件pwm配置及使用方法。1. 下载安装wiringPi此步骤建议参考官网指南#xff0c;wiringPi提供了对树莓派的硬件IO访问#xff0c;包括GPIO/I2C/PWM等#xff0c;下载安装后本地会出现wiringPi文件夹#xff0c;根目录下有/e…本文介绍树莓派(raspberry pi)在linux c 环境下的硬件pwm配置及使用方法。1. 下载安装wiringPi此步骤建议参考官网指南wiringPi提供了对树莓派的硬件IO访问包括GPIO/I2C/PWM等下载安装后本地会出现wiringPi文件夹根目录下有/examples 可供参考。2. 树莓派PWM硬件以raspberry pi 3b 为例尝试在命令行下输入 pinout可查看当前pi的io映射图这是当前pi的gpio布局却不是wiringPi的IO映射表因此参考时需注意好在搜索一番便找到一张raspberry 3b的wiringpi IO映射表图中的gpio1(pwm0) 及 gpio23(pwm1) 即为我们需要传输给wiringpi的硬件pwm输出脚3. wiringPi pwm 接口说明在examples/pwm.c 或 wiringPi/wiringPi.c中可查看pwm的相关接口但却没有详细的调用说明经过一番查阅得出接口的使用方法为pwmSetClock()设置pwm的工作时钟。19.2MHz晶振为pwm提供时钟输入wiringpi在初始化gpio时默认采用32倍分频(参考wiringPI.c 中的pinMode() 代码)因此不调用此函数pwm的默认工作时钟为600KHz.pwmSetRange()设置pwm的输出周期。以600KHz的工作时钟为例假设pwm输出频率为freq则range 600000/freq.pwmSetMode()设置pwm的工作模式wiringPi.h头文件中包含此2种模式 PWM_MODE_MS/PWM_MODE_BAL但并未做任何解释。。.那就看手册《BCM2837-ARM-Peripherals.pdf》吧从描述来看MSEN0似乎用来传输N/M数据 MSEN1才是设置占空比输出因此处的pwm输出模式选择PWM_MODE_MSpwmWrite()设置pwm的输出占空比。因为一个周期长度为range因此占空比的范围为0range.此外wiringPi也提供了软件PWM输出由于屏蔽了硬件相关信息其接口理解也更为方便在此不再赘述。