在linux环境下安装wiringpi库,wiringPi库的pwm配置及使用说明
本文介紹樹(shù)莓派(raspberry pi)在linux c 環(huán)境下的硬件pwm配置及使用方法。
1. 下載安裝wiringPi
此步驟建議參考官網(wǎng)指南,wiringPi提供了對(duì)樹(shù)莓派的硬件IO訪問(wèn),包括GPIO/I2C/PWM等,下載安裝后本地會(huì)出現(xiàn)wiringPi文件夾,根目錄下有/examples 可供參考。
2. 樹(shù)莓派PWM硬件
以raspberry pi 3b 為例,嘗試在命令行下輸入 pinout,可查看當(dāng)前pi的io映射圖
這是當(dāng)前pi的gpio布局,卻不是wiringPi的IO映射表,因此參考時(shí)需注意,好在搜索一番便找到一張raspberry 3b的wiringpi IO映射表
圖中的gpio1(pwm0) 及 gpio23(pwm1) 即為我們需要傳輸給wiringpi的硬件pwm輸出腳
3. wiringPi pwm 接口說(shuō)明
在examples/pwm.c 或 wiringPi/wiringPi.c中可查看pwm的相關(guān)接口,但卻沒(méi)有詳細(xì)的調(diào)用說(shuō)明,經(jīng)過(guò)一番查閱,得出接口的使用方法為:
pwmSetClock():設(shè)置pwm的工作時(shí)鐘。19.2MHz晶振為pwm提供時(shí)鐘輸入,wiringpi在初始化gpio時(shí)默認(rèn)采用32倍分頻(參考wiringPI.c 中的pinMode() 代碼),因此不調(diào)用此函數(shù),pwm的默認(rèn)工作時(shí)鐘為600KHz.
pwmSetRange():設(shè)置pwm的輸出周期。以600KHz的工作時(shí)鐘為例,假設(shè)pwm輸出頻率為freq,則range = 600000/freq.
pwmSetMode():設(shè)置pwm的工作模式,wiringPi.h頭文件中包含此2種模式?PWM_MODE_MS/PWM_MODE_BAL,但并未做任何解釋。。.那就看手冊(cè)《BCM2837-ARM-Peripherals.pdf》吧
從描述來(lái)看,MSEN=0似乎用來(lái)傳輸N/M數(shù)據(jù), MSEN=1才是設(shè)置占空比輸出,因此處的pwm輸出模式選擇PWM_MODE_MS
pwmWrite():設(shè)置pwm的輸出占空比。因?yàn)橐粋€(gè)周期長(zhǎng)度為range,因此占空比的范圍為0~range.
此外,wiringPi也提供了軟件PWM輸出,由于屏蔽了硬件相關(guān)信息,其接口理解也更為方便,在此不再贅述。
總結(jié)
以上是生活随笔為你收集整理的在linux环境下安装wiringpi库,wiringPi库的pwm配置及使用说明的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: sql left join用法_图解 S
- 下一篇: const在c语言中作用,在C语言中co