背景说明:
【1】我们用P16的SPI-MOSI作为WS28XX灯带的驱动,而P17/15用于控制指示灯
目前发现现象如下:
【1】当我们使用配置好P17/P15,直接用命令控制该IO,电平控制正常。
【2】当我们启用SPI功能,然后将P17/P15配置为输出,用命令控制IO后,总是会在下一次刷灯(执行tkl_spi_send)的时候,该IO被SPI接管。参考
部分关键配置如下:
// spi配置
const TUYA_SPI_BASE_CFG_T spi_cfg={
.mode = TUYA_SPI_MODE0,
.freq_hz = CONFIG_BSP_SPI_WS28XX_BAUDRATE,
.databits = TUYA_SPI_DATA_BIT16,
.bitorder = TUYA_SPI_ORDER_LSB2MSB,
.type = TUYA_SPI_AUTO_TYPE,
.role = TUYA_SPI_ROLE_MASTER_SIMPLEX,//TUYA_SPI_ROLE_MASTER,
.spi_dma_flags = 1,
};
ret = tkl_spi_init(TUYA_SPI_NUM_0,&spi_cfg);
// gpio配置
TUYA_GPIO_BASE_CFG_T gpio_output_cfg={
.direct = TUYA_GPIO_OUTPUT,
.level = TUYA_GPIO_LEVEL_LOW,
.mode = TUYA_GPIO_PUSH_PULL
};
tkl_gpio_init(TUYA_GPIO_NUM_15,(CONST TUYA_GPIO_BASE_CFG_T *)&gpio_output_cfg);
tkl_gpio_init(TUYA_GPIO_NUM_17,(CONST TUYA_GPIO_BASE_CFG_T *)&gpio_output_cfg);
问题:
需要如何解决SPI强制接管P17/P15 IO的问题?