GPIO 函数在对不同 GPIO 的调用之间是线程安全的;但是,调用方负责确保访问同一 GPIO 的线程安全。 C intGPIO_SetValue(intgpioFd, GPIO_Value_Type value); 参数 gpioFdGPIO 的文件描述符。 value要设置GPIO_Value值 - GPIO_Value_High或GPIO_Value_Low。
gpio_set_value 函数 此函数用于设置某个 GPIO 的值,此函数是个宏,定义如下 #define gpio_set_value __gpio_set_value void __gpio_set_value(unsigned gpio, int value) 1. 2. 函数参数和返回值含义如下: gpio:要设置的 GPIO 标号。 value:要设置的值。 返回值:无...
GPIO 函数在对不同 GPIO 的调用之间是线程安全的;但是,调用方负责确保访问同一 GPIO 的线程安全。 C intGPIO_SetValue(intgpioFd, GPIO_Value_Type value); 参数 gpioFdGPIO 的文件描述符。 value要设置GPIO_Value值 - GPIO_Value_High或GPIO_Value_Low。
int gpio_request(unsigned gpio, const char *label);void gpio_free(unsigned gpio);int gpio_direction_input(unsigned gpio);int gpio_direction_output(unsigned gpio, int value);int gpio_get_value(unsigned gpio);void gpio_set_value(unsigned gpio, int value); (1)gpio_request() /*** 函数介绍 ...
gpio_set_value(led_info[i].gpio, 1); gpio_free(led_info[i].gpio); } //2.释放设备号 unregister_chrdev_region(dev, 1); //3.卸载字符设备对象 cdev_del(&led_cdev); //4.删除设备文件(摘苹果)和设备类(砍树枝) device_destroy(cls, dev); ...
int gpio_get_value_cansleep(unsigned gpio); /* GPIO OUTPUT, might sleep */ void gpio_set_value_cansleep(unsigned gpio, int value); 访问这样的gpio需要一个可能睡眠的上下文,例如一个线程级别中断处理程序,并且这些访问函数必须代替那些没有cansleep()后缀的spinlock-safe的函数。
支持这种gpio的平台为了通过在这个函数中返回非零来区分其它类型的gpio(需要一个已经被 gpio_request申请的gpio号)为了访问这些端口,定义了另一组函数接口: int gpio_get_value_cansleep(unsigned gpio); voidgpio_set_value_cansleep(unsigned gpio, int value); ...
代码就废了。2、__gpio_set_value和gpio_set_value的区别 一般带__这种操作的宏和函数是未保护的,对这中__操作的使用最好不用,除非你知道其中的原理。你说的这种显然就是地址检测保护了。主要是防止错误地址引用。__gpio_set_vallue是没有地址范围检测的,如果引用非法地址,有可能内核down掉 ...
gpiod_set_value_cansleep() 读写一组 gpio gpiod_get_array_value() gpiod_set_array_value() 获得gpio 对应的中断号 gpiod_to_irq() 相关要点: 以_cansleep 为后缀的函数是可能会睡眠的 API,不可以在 hard (non-threaded) IRQ handlers 中使用; gpiod_get_value() 返回的是硬件上的电平值; gpio...
int gpio_direction_output(unsigned gpio, int value) 2.2.5 gpio_get_value 此函数用于获取某个 GPIO 的值(0 或 1) #define gpio_get_value __gpio_get_value int __gpio_get_value(unsigned gpio) 2.2.6 gpio_set_value 此函数用于设置某个 GPIO 的值 #define gpio_set_value __gpio_set_value ...