BCM2835_st_read()返回零-混淆

hfyxw5xn  于 2023-08-03  发布在  其他
关注(0)|答案(1)|浏览(96)

bcm 2835 init工作正常,所有GPIO和bcm2835_delay等也是如此。
RPi 4和Pi 400,Raspbian“Bullseye”,bcm 2835 1.71,Libcap安装,添加程序名称等
我使用Geany gcc -Wall -o“%e”“%f”-pthread $(pkg-config gtk+-3.0 --cflags --libs)-export-dynamic**-l bcm 2835 -l png-DBCM2835_HAVE_LIBCAP**编译
代码如下:

// bcm_timer.c
//
// Example program for bcm2835 library system time

#include <stdio.h>
#include <stdlib.h>
#include <ctype.h>
#include <errno.h>

#include <bcm2835.h>

uint64_t now = 0;
uint64_t then = 0;
uint rescode = 0;

int main(int argc, char **argv)
{
 
    // Init GPIO

    if ( ! bcm2835_init() )
    {
    printf("Fail 0x%X ", errno);
    return -1;
    }
   
    then = bcm2835_st_read();
   
    bcm2835_delay(500);
   
    now = bcm2835_st_read();    

    printf("Then = 0x%lluX, Now = 0x%lluX \n", then, now) ;
   
    bcm2835_close();
    return 0;
}

字符串
下面是输出:

xxx@raspberrypi:~/Develop/c/test $ ./bcm_timer
Then = 0x0X, Now = 0x0X

azpvetkf

azpvetkf1#

如果您(或其他人)仍然在寻找这个问题的答案,您需要使用sudo运行您的代码以使bcm2835_st_read工作。
在我的实验中,BME库中的一些东西需要sudo(在i2c和系统计时器中遇到了这个问题),而有些东西不需要(gpio)。是的,很烦人。
希望这对你或某人有帮助。- 毫克

相关问题