ESP32S3 SPI 双工模式无法读取数据
驱动RC522 NFC芯片,当目标芯片设置为ESP32时,SPI可正常通信(可读写 RC522 寄存器)。相同的代码,将目标芯片设置为ESP32S3后,编译出错,报如下错误:
SPI half duplex mode is not supported when both MOSI and MISO phases are enabled
在ESP32-S3的编程指南中找到:
Half-duplex transactions with both read and write phases are not supported. Please use full duplex mode.
于是屏蔽掉 .flags = SPI_DEVICE_HALFDUPLEX
编译通过,通过SPI发送数据正常,但读取数据时,发送完所要读取的寄存器地址后,SPI总线就挂起了,表现为:CS拉高了,无时钟信号输出。
请教是什么原因。 没你这个情况,我用S3驱动lora芯片读写正常,你不会占用得是跟flash同一个spi吧 7073640 发表于 2022-6-2 20:32
没你这个情况,我用S3驱动lora芯片读写正常,你不会占用得是跟flash同一个spi吧
(引用自2楼)
没占用 flash 的 SPI 总线。 是要在menuconfig中配置吧, 手动更改编译会覆盖的。 astankvai 发表于 2022-6-2 20:59
是要在menuconfig中配置吧, 手动更改编译会覆盖的。
(引用自4楼)
这里的改动是在应用程序中配置SPI设备。改动前后现象不一样,说明没有被SDKCONFIG覆盖。 ESP32论坛里面有人回复说收发数据时采用配置 .addr = xx 取代 tx_buffer 里面的地址,我试过了,确实可以解决这个问题。
页:
[1]