Page 1 of 1

【已解决】ESP-IDF的SPI两次传输之间CS信号线会自动拉高

Posted: Mon Jun 26, 2023 12:27 pm
by liuxiewen1314

Code: Select all

spi_device_transmit(myspi_handle, &t);
spi_device_transmit(myspi_handle, &t);
如上所示,连续两次使用这个函数,会导致在两次数据传输之间自动出现CS信号线拉高的情况。

假如使用软件CS,虽然CS信号没有拉高了,但是传输数据时还会多传输原来CS拉高的那段时间。
代码修改如下:

Code: Select all

.spics_io_num=-1//将.spics_io_num=HSPI_SS变为此代码
请问如何解决这个问题呢?

Re: ESP-IDF的SPI两次传输之间CS信号线会自动拉高

Posted: Mon Jul 10, 2023 10:08 am
by ESP_Yake
你的需求是什么。调用 spi_device_transmit 说明你要进行一次SPI传输,这会在发送到硬件之后才会返回,所以你连续调用2次时出现拉高的情况是正常的。而是要软件CS也是一样的道理。如果你不想中间出现拉高和空闲,请不要调用spi_device_transmit,而是调用两次 spi_device_queue_trans 然后再调用spi_device_get_trans_result等待对应的结果。

Re: ESP-IDF的SPI两次传输之间CS信号线会自动拉高

Posted: Thu Jul 27, 2023 8:34 am
by liuxiewen1314
非常感谢您的回复,这个帮助非常有用!