关于GPIO的几个问题

在文档中给出的代码示例中,

pin_configuration.config.configuration.tint = GPIO_TINT_DISABLE;

这一句是失能了什么功能吗?tint是啥?

 

通过阅读文档了解到可以利用result = control(handle, CTL_GPIO_SET_CONFIGURATION,(void *) &pin_configuration);来配置gpio

然后我的问题是,它会和程序中的err = direct_control(s_my_gpio_handle, CTL_GPIO_INIT_BY_PIN_LIST, &pin_led);相冲突吗?

这个控制led的direct_control会和我自己写的其它control函数冲突吗如果gpio引脚不冲突的情况下

 

Parents Reply Children
  • 这个芯片的每个管脚都可以触发中断,但是驱动里面没有做这个功能,所以这个TINT可以不用管他,关于control和dircet_controls到最后都是调用的同一个函数,只不过在open时文件名字的格式不一样,如果分别使用这两个函数来操作同一个端口的话,那么最后一次的操作起作用。
  • 所以如果我先这样操作:
    st_r_drv_gpio_pin_rw_t pin_read_write;
    int_t result;
    pin_read_write.pin = GPIO_PORT_0_PIN_6;
    pin_read_write.level = GPIO_LEVEL_HIGH;
    result = control(handle, CTL_GPIO_PIN_WRITE, (void *) &pin_read_write);

    之后如果再想操作另外一个引脚:
    pin_read_write.pin = GPIO_PORT_2_PIN_3;
    pin_read_write.level = GPIO_LEVEL_LOW;
    result = control(handle, CTL_GPIO_PIN_WRITE, (void *) &pin_read_write);

    这样之后,前面的GPIO_PORT_0_PIN_6和GPIO_LEVEL_HIGH会受到影响?
  • 不操作同一个端口不会有影响