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

liuxiewen1314
Posts: 4
Joined: Mon Jun 26, 2023 12:05 pm

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

Postby liuxiewen1314 » Mon Jun 26, 2023 12:27 pm

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变为此代码
请问如何解决这个问题呢?

ESP_Yake
Posts: 109
Joined: Mon Mar 06, 2017 12:23 pm

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

Postby ESP_Yake » Mon Jul 10, 2023 10:08 am

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

liuxiewen1314
Posts: 4
Joined: Mon Jun 26, 2023 12:05 pm

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

Postby liuxiewen1314 » Thu Jul 27, 2023 8:34 am

非常感谢您的回复,这个帮助非常有用!

Who is online

Users browsing this forum: No registered users and 148 guests