|
技術(shù)交流 | 電路欣賞 | 工控天地 | 數(shù)字廣電 | 通信技術(shù) | 電源技術(shù) | 測(cè)控之家 | EMC技術(shù) | ARM技術(shù) | EDA技術(shù) | PCB技術(shù) | 嵌入式系統(tǒng) 驅(qū)動(dòng)編程 | 集成電路 | 器件替換 | 模擬技術(shù) | 新手園地 | 單 片 機(jī) | DSP技術(shù) | MCU技術(shù) | IC 設(shè)計(jì) | IC 產(chǎn)業(yè) | CAN-bus/DeviceNe |
我讀寫(xiě)AT45DB041B的BUFFER1出現(xiàn)怪問(wèn)題。 |
作者:pantodd 欄目:單片機(jī) |
我先寫(xiě)向AT45DB041B中連續(xù)寫(xiě)入0X30,0X31,0X32,0X33,0X34,0X35,0X36,0X37。 在串口接收中斷中,讀FLASH中的這八個(gè)值并向上位機(jī)發(fā)送。結(jié)果上位機(jī)顯示 0X30,0X30,0X32,0X32,0X34,0X34,0X36,0X36。 這是什么原因?有經(jīng)驗(yàn)的師兄幫分析一下。 程序: 寫(xiě)入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ù)寫(xiě)入八個(gè)字節(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時(shí)序來(lái)做。 |
3樓: | >>參與討論 |
作者: lgd888888 于 2006/1/22 17:17:00 發(fā)布:
AT45DB041 BUFF讀寫(xiě)正常 AT45DB041 BUFF讀寫(xiě)正常 但寫(xiě)不到MAIN MEMORY 中,是什么原因 ?/ |
4樓: | >>參與討論 |
作者: pantodd 于 2006/1/22 23:47:00 發(fā)布:
lgd888888兄,也提一下建議吧。 |
5樓: | >>參與討論 |
作者: pantodd 于 2006/1/23 17:17:00 發(fā)布:
發(fā)個(gè)慶祝貼,搞定了。 按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; } } 看來(lái)是我程序中的延時(shí)造成的原因。 |
6樓: | >>參與討論 |
作者: modelfeifei 于 2007/1/11 19:53:00 發(fā)布:
我在buffer中寫(xiě)的是0--256,為什么讀到的都是0x9C呢? |
7樓: | >>參與討論 |
作者: modelfeifei 于 2007/1/11 20:07:00 發(fā)布:
我在buffer中寫(xiě)的是0--256,為什么讀到的都是0x9C呢? 0x9C不是寄存器的內(nèi)容嗎?怎么讀到的總是這個(gè)數(shù)呢?可能是什么地方出了問(wèn)題呢?謝謝了。 |
|
|
免費(fèi)注冊(cè)為維庫(kù)電子開(kāi)發(fā)網(wǎng)會(huì)員,參與電子工程師社區(qū)討論,點(diǎn)此進(jìn)入 |
Copyright © 1998-2006 www.udpf.com.cn 浙ICP證030469號(hào) |