You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何与Linux PCA953X驱动交互?如何编程利用该驱动?

关于PCA9535 GPIO扩展板与树莓派驱动调用的问题

我将PCA9535 GPIO扩展板通过I²C连接到树莓派,可使用i2cset命令设置输出引脚为高电平:

sudo i2cset 1 0x20 0x02 0xFF   // 0x20为GPIO扩展板地址,寄存器0x02

我找到了PCA953X内核驱动,已加载gpio-pca953x.ko内核模块并修改/boot/config.txt添加该扩展板的设备树overlay。运行i2cdetect -y 1时,0x20从设备地址显示为“UU”,说明驱动已接管该设备。

疑问1:若想通过编程实现类似i2cset的功能,应使用何种API/接口来调用已安装的PCA953X驱动?

如下直接操作I²C的代码并未用到PCA953X驱动:

int file;
  int adapter_nr = 1; 
  char filename[20];

  snprintf(filename, 19, "/dev/i2c-%d", adapter_nr);
  file = open(filename, O_RDWR);
  if (file < 0) {
    exit(1);
  }

  // 向寄存器0x02写入0xFF
  uint8_t cmd[2]  = {0x02, 0XFF};
  struct i2c_msg msg = {
    .addr = 0x20,
    .flags = 0,
    .len = sizeof(cmd)/sizeof(uint8_t),
    .buf = cmd
  };
 
  struct i2c_rdwr_ioctl_data tx = {
    .msgs = &msg,
    .nmsgs = 1
  };

  ioctl(file, I2C_RDWR, &tx);

疑问2:是否存在调用PCA953X驱动的编程途径?该驱动模块的作用是什么?


内容的提问来源于stack exchange,提问作者Tung

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.20 00:10:26