|
|||||||||||
| 技術(shù)交流 | 電路欣賞 | 工控天地 | 數(shù)字廣電 | 通信技術(shù) | 電源技術(shù) | 測控之家 | EMC技術(shù) | ARM技術(shù) | EDA技術(shù) | PCB技術(shù) | 嵌入式系統(tǒng) 驅(qū)動編程 | 集成電路 | 器件替換 | 模擬技術(shù) | 新手園地 | 單 片 機(jī) | DSP技術(shù) | MCU技術(shù) | IC 設(shè)計 | IC 產(chǎn)業(yè) | CAN-bus/DeviceNe |
我讀寫AT45DB041B的BUFFER1出現(xiàn)怪問題。 |
| 作者:pantodd 欄目:單片機(jī) |
我先寫向AT45DB041B中連續(xù)寫入0X30,0X31,0X32,0X33,0X34,0X35,0X36,0X37。 在串口接收中斷中,讀FLASH中的這八個值并向上位機(jī)發(fā)送。結(jié)果上位機(jī)顯示 0X30,0X30,0X32,0X32,0X34,0X34,0X36,0X36。 這是什么原因?有經(jīng)驗(yàn)的師兄幫分析一下。 程序: 寫入FLASH中: SpiCs_low; SpiClk_low; //clk=0 Writebuff_onebyte(writebuffer1);//OPCODE Writebuff_onebyte(0x00); //address 3 address byte Writebuff_onebyte(0x00); Writebuff_onebyte(0x01); for(j=0;j<8;j++) //連續(xù)寫入八個字節(jié)到BUFFER中去 Writebuff_onebyte(data232[j]); 讀出并發(fā)送: SpiClk_high; SpiMosi_high; //mosi=1 SpiCs_low; SpiClk_low; Writebuff_onebyte(readbuffer1); Writebuff_onebyte(0x00); //address 3 address Writebuff_onebyte(0x00); Writebuff_onebyte(0x01); Writebuff_onebyte(0x00); //DUMMY byte for(k=0;k<8;k++) { senddata[k]=Readbuff_onebyte(); TXBUF0=senddata[k]; } SpiCs_high; SpiClk_high; |
| 2樓: | >>參與討論 |
| 作者: pantodd 于 2006/1/22 15:52:00 發(fā)布:
補(bǔ)充一下,我使用430,模擬SPI時序來做。 |
|
| 3樓: | >>參與討論 |
| 作者: lgd888888 于 2006/1/22 17:17:00 發(fā)布:
AT45DB041 BUFF讀寫正常 AT45DB041 BUFF讀寫正常 但寫不到MAIN MEMORY 中,是什么原因 ?/ |
|
| 4樓: | >>參與討論 |
| 作者: pantodd 于 2006/1/22 23:47:00 發(fā)布:
lgd888888兄,也提一下建議吧。 |
|
| 5樓: | >>參與討論 |
| 作者: pantodd 于 2006/1/23 17:17:00 發(fā)布:
發(fā)個慶祝貼,搞定了。 按21IC上的程序,修改了一下: uCHAR Readbuff_onebyte(){ uCHAR TmpByte; unsigned CHAR i,rByte=0; for(i=0;i<8;i++){ SpiClk_low; SpiClk_high; if(P6IN&BIT3) TmpByte=0x01; else TmpByte=0x00; rByte<<=1; rByte|=TmpByte; } return rByte; } void Writebuff_onebyte(uCHAR bufferdata) { unsigned CHAR i; for(i=0;i<8;i++) { if((bufferdata<<i)&0x80){SpiMosi_high;} else{SpiMosi_low;} SpiClk_low; SpiClk_high; } } 看來是我程序中的延時造成的原因。 |
|
| 6樓: | >>參與討論 |
| 作者: modelfeifei 于 2007/1/11 19:53:00 發(fā)布:
我在buffer中寫的是0--256,為什么讀到的都是0x9C呢? |
|
| 7樓: | >>參與討論 |
| 作者: modelfeifei 于 2007/1/11 20:07:00 發(fā)布:
我在buffer中寫的是0--256,為什么讀到的都是0x9C呢? 0x9C不是寄存器的內(nèi)容嗎?怎么讀到的總是這個數(shù)呢?可能是什么地方出了問題呢?謝謝了。 |
|
|
|
| 免費(fèi)注冊為維庫電子開發(fā)網(wǎng)會員,參與電子工程師社區(qū)討論,點(diǎn)此進(jìn)入 |
Copyright © 1998-2006 m.58mhw.cn 浙ICP證030469號 |