gpt4 book ai didi

c - Raspberry Pi 3 PWM LED 脉冲

转载 作者:行者123 更新时间:2023-11-30 14:36:44 29 4
gpt4 key购买 nike

我想使用 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 权限运行才能对引脚进行板载访问。效果很好。主题可以关闭。

关于c - Raspberry Pi 3 PWM LED 脉冲,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57875815/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com