簡體   English   中英

樹莓派 3 PWM LED 脈沖

[英]Raspberry Pi 3 PWM Led Pulse

我想使用 bcm2835.h 和純 C 語言通過 PWM 控制 LED 二極管。 我的代碼不起作用。 我錯過了什么?

我試過“gpio”控制台命令,它工作正常,所以我知道 led 連接到正確的端口。 我可以使用控制台命令打開它:

gpio pwm 1 1024


我的代碼:

#include <bcm2835.h>
#include <stdio.h>

// PWM output on RPi Plug P1 pin 12 (which is GPIO pin 18) in alt fun 5.
// Note that this is the _only_ PWM pin available on the RPi IO headers
#define PIN RPI_GPIO_P1_12

// and it is controlled by PWM channel 0
#define PWM_CHANNEL 0

// This controls the max range of the PWM signal
#define RANGE 1024


int main(int argc, char **argv)
{
    if (!bcm2835_init())
    {
        return 1;
    }

    // Set the output pin to Alt Fun 5, to allow PWM channel 0 to be output there
    bcm2835_gpio_fsel(PIN, BCM2835_GPIO_FSEL_ALT5);

    // Clock divider is set to 16.
    // With a divider of 16 and a RANGE of 1024, in MARKSPACE mode,
    // the pulse repetition frequency will be
    // 1.2MHz/1024 = 1171.875Hz, suitable for driving a DC motor with PWM
    bcm2835_pwm_set_clock(BCM2835_PWM_CLOCK_DIVIDER_16);

    bcm2835_pwm_set_mode(PWM_CHANNEL, 1, 1);

    bcm2835_pwm_set_range(PWM_CHANNEL, RANGE);

    while(1)
    {
        bcm2835_pwm_set_data(PWM_CHANNEL, 1024);
        bcm2835_delay(10);
    }


    bcm2835_close();
    return 0;
}

我希望我的 LED 會亮起。

這很愚蠢,但在檢查了數學、代碼和接線后,我發現應用程序需要以 root 權限運行才能在板上訪問引腳。 它工作正常。 話題可以關閉。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM