如何直接使用 Zephry SPI 驱动程序?

问题描述

我找不到任何直接从应用程序使用 SPI API 的示例。相反,有许多传感器使用 SPI 作为总线。

尝试从头开始编写它时,我遇到了将设备绑定到 spi-device 节点的问题。我还应该提到,我有其他外设(如 GPIO 或 ADC)的工作示例,所以我认为这是 SPI 的问题,而不是项目配置的问题。

这是设备树的摘录:

&spi1 {
    pinctrl-0 = <&spi1_sck_pb3 &spi1_miso_pb4 &spi1_mosi_pb5>;
    cs-gpios = <&gpiob 9 GPIO_ACTIVE_LOW>;
    status = "okay";

    spi1_dev0: spi-device@0 {
        reg = <0>;
        spi-max-frequency = <1000000>;
        label = "spi_dev1";
        status = "okay";    
    };
};

我已经在项目配置中设置了 SPI:

CONFIG_GPIO=y
CONFIG_SPI=y
CONFIG_SPI_STM32=y
CONFIG_SPI_STM32_USE_HW_SS=n

但遗憾的是,无法解析spi1_dev0设备的DT节点

const struct device *spi_dev = device_get_binding(DT_NODELABEL(spi1_dev0));
const struct spi_config *spi_cfg = SPI_CONFIG_DT(DT_NODELABEL(spi1_dev0),SPI_WORD_SET(8),10);

[build] zephyr/include/generated/devicetree_unfixed.h:11068:34: 错误: 'DT_N_S_soc_S_spi_40013000_S_spi_device_0' 未声明(首次用于 这个功能);你的意思 'DT_N_S_soc_S_spi_40013000_S_spi_device_0_BUS'?

我也尝试在 DT_BUS 之上使用 DT_NODELABEL 但没有成功。

是否可以直接使用 SPI 或 I2C 等总线?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...