|
|||||||||||
| 技術(shù)交流 | 電路欣賞 | 工控天地 | 數(shù)字廣電 | 通信技術(shù) | 電源技術(shù) | 測控之家 | EMC技術(shù) | ARM技術(shù) | EDA技術(shù) | PCB技術(shù) | 嵌入式系統(tǒng) 驅(qū)動編程 | 集成電路 | 器件替換 | 模擬技術(shù) | 新手園地 | 單 片 機 | DSP技術(shù) | MCU技術(shù) | IC 設(shè)計 | IC 產(chǎn)業(yè) | CAN-bus/DeviceNe |
S08讀SPI接口的鐵電存儲器怎么不行啊--------? |
| 作者:serial_com 欄目:單片機 |
一個讀寫的程序.不知問題出在那?大家看看,謝謝. //目的是讀取前7個地址的數(shù)據(jù),存入DATA[]數(shù)組. void ReadFm (void) { //讀操作 unsigned CHAR TEMP,i = 0; while (!SPI1S_SPTEF); // wait until transmit buffer is CS = 0; // 片選拉低 TEMP = SPI1S; TEMP = SPI1D; // Acknowledge flag SPI1D = 0x03; // 讀命令 while (!SPI1S_SPTEF); // TEMP = SPI1S; SPI1D = 0x00; // address_H while (!SPI1S_SPTEF); // TEMP = SPI1S; SPI1D = 0x00; // address_L for(i = 0; i < 7; i++) { while (!SPI1S_SPRF); // 問題好像就在這里 TEMP = SPI1S; DATA[i] = SPI1D; } CS = 1; // 釋放片選 return; } // 把DATA[i]的數(shù)據(jù)寫入到存儲器 void WriteFm (void){ //寫操作 unsigned CHAR TEMP,i = 0; while (!SPI1S_SPTEF); // CS = 0; // 片選 TEMP = SPI1S; SPI1D = 0x06; // 寫使能命令 while (!SPI1S_SPTEF); // TEMP = SPI1D; CS = 1; // CS = 0; // TEMP = SPI1S; SPI1D = 0x02; while (!SPI1S_SPTEF); TEMP = SPI1S; // SPI1D = 0x00; // 地址高字節(jié) while (!SPI1S_SPTEF); // TEMP = SPI1S; SPI1D = 0x00; // 地址低字節(jié) while (!SPI1S_SPTEF); // wait for(i = 0; i < 7; i++) { TEMP = SPI1S; SPI1D = DATA[i]; while (!SPI1S_SPTEF); } CS = 1; // 片選 return; } * - 本貼最后修改時間:2007-5-14 16:00:39 修改者:serial_com |
|
|
| 免費注冊為維庫電子開發(fā)網(wǎng)會員,參與電子工程師社區(qū)討論,點此進入 |
Copyright © 1998-2006 m.58mhw.cn 浙ICP證030469號 |