完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
支援晶片系列: NUC123series 所使用的開發軟件包: NUC123SeriesBSP_CMSIS_V3.00.001 Project 所在的目錄: Master: \NUC123SeriesBSP_CMSIS_V3.00.001_SPI_DUALIOMode\SampleCode\StdDriver\SPI_MasterDualIOMode\KEIL Slave: \NUC123SeriesBSP_CMSIS_V3.00.001_SPI_DUALIOMode\SampleCode\StdDriver\SPI_SlaveDualIOMode\KEIL 所使用的板子:Nutiny_NUC123 x 2 功能描述: 當我們使用SPI Flash的時候, 為了加快讀/寫速度, 有支援Dual I/O或是Quad I/O功能的型號是一大優點, 但是控制的單片機要如何讀寫SPI Flash呢? 這個範例代碼分別提供使用Dual I/O功能的Master和Slave的代碼, 連接方式如下圖. 首先在Dual I/O模式下, Master會先傳送16個字節的資料, 當Slave接收到後會使用串口打印出; 接著再換Slave傳送16個字節的資料, 當Master接收到後會使用串口打印出. 這樣就可以使用Dual I/O功能來傳送和接收資料了. |
|
相关推荐
1个回答
|
|
怎麼才能在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都支援,需要在購買時確認是否支援此功能。 |
|
|
|
只有小组成员才能发言,加入小组>>
3272 浏览 9 评论
2948 浏览 16 评论
3449 浏览 1 评论
8969 浏览 16 评论
4042 浏览 18 评论
1087浏览 3评论
563浏览 2评论
const uint16_t Tab[10]={0}; const uint16_t *p; p = Tab;//报错是怎么回事?
558浏览 2评论
用NUC131单片机UART3作为打印口,但printf没有输出东西是什么原因?
2295浏览 2评论
NUC980DK61YC启动随机性出现Err-DDR是为什么?
1851浏览 2评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-14 13:24 , Processed in 1.071063 second(s), Total 77, Slave 58 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号