問(wèn)題背景
在閱讀《零死角玩轉(zhuǎn)STM32—F103指南者》,以及《STM32F10x-中文參考手冊(cè)》關(guān)于FSMC一章節(jié)的時(shí)候,對(duì)于在控制NOR/SRAM
的時(shí)候使用到的引腳,在提到NOR器件的時(shí)候提到了地址復(fù)用和非復(fù)用接口,一時(shí)間沒(méi)明白是什么東西。
結(jié)論
非復(fù)用模式
:16位數(shù)據(jù)線(xiàn)及26位地址線(xiàn)分開(kāi)始用。推薦在144腳及以上的STM32產(chǎn)品上使用該模式。
復(fù)用模式
:低16位數(shù)據(jù)/地址線(xiàn)復(fù)用
。在該模式下,推薦使用地址鎖存器以區(qū)分?jǐn)?shù)據(jù)與地址。
若不使用鎖存器:當(dāng)NADV為低時(shí),ADx(x=0…15)上出現(xiàn)地址信號(hào)Ax,當(dāng)NADV變高時(shí),ADx上出現(xiàn)數(shù)據(jù)信號(hào)Dx。若使用鎖存器:可同時(shí)在ADx上得到Ax和Dx。
復(fù)用模式
1、寄存器的配置,首先注意使能地址數(shù)據(jù)復(fù)用,其次要存儲(chǔ)器類(lèi)FSMC_MemoryType_NOR,否則出現(xiàn)不了NADV信號(hào)。
FSMC_NORSRAMInitStructure.FSMC_DataAddressMux = FSMC_DataAddressMux_Enable;
FSMC_NORSRAMInitStructure.FSMC_MemoryType = FSMC_MemoryType_NOR;
2、注意GPIO復(fù)用功能的使能,以及時(shí)鐘使能。文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-696290.html
3、地址總線(xiàn)。在16位模式訪(fǎng)問(wèn)時(shí),訪(fǎng)問(wèn)地址的[25…0]位必須先左移一位.。才能正確輸出地址信號(hào),原因是,STM32會(huì)將地址右移一位后在輸出。如果輸出前不左移,會(huì)導(dǎo)致輸出地址錯(cuò)誤,比如當(dāng)我們軟件訪(fǎng)問(wèn)地址6000 0005H這個(gè)地址時(shí),實(shí)際訪(fǎng)問(wèn)的地址是6000 0002H。為何右移一位?看中文數(shù)據(jù)手冊(cè)327頁(yè)。如下文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-696290.html
到了這里,關(guān)于【STM32】FSMC接口的復(fù)用和非復(fù)用的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!