怎麼才能在NUC123系列的MCU上使用Dual I/O功能來讀寫SPI Flash呢?首先要使用NUC123SeriesBSP_CMSIS_V3.00.001開發軟件包中的SPI_MasterDualIOMode和SPI_SlaveDualIOMode範例程式,建立一對Master-Slave的SPI連接模型。然後,在Master的程式碼中,必須開啟Dual I/O功能的選項,這樣才能使用Dual I/O模式來讀寫SPI Flash。方法是通過SPI_Open()函數中第三個參數SPI_DUAL_IO,設置為ENABLE,如下所示:
SPI_Open(SPI_MASTER, SPI_MODE_0, SPI_DUAL_IO, 8, 2000000);
在Slave的程式碼中,同樣需要配置Dual I/O模式,方法也是通過SPI_Open()函數中第三個參數SPI_DUAL_IO,設置為ENABLE。
接下來,在Master中,使用SPI_DualIORead()和SPI_DualIOWrite()函數來讀寫SPI Flash,即可開啟Dual I/O功能。例如:
SPI_ENABLE_DUAL_IO_MODE(SPI0); // 開啟Dual I/O模式
SPI_DualIORead(SPI0, 0x1000, 8, au8RData, 16); // 讀取SPI Flash中地址0x1000的8位資料
SPI_DualIOWrite(SPI0, 0x2000, 16, au8WData, 32); // 寫SPI Flash中地址0x2000的16位資料
需要注意的是,具體的讀寫SPI Flash操作,需要根據具體的SPI Flash型號和芯片手冊來實現。此外,Dual I/O功能不是所有的SPI Flash都支援,需要在購買時確認是否支援此功能。