日本黄色一级经典视频|伊人久久精品视频|亚洲黄色色周成人视频九九九|av免费网址黄色小短片|黄色Av无码亚洲成年人|亚洲1区2区3区无码|真人黄片免费观看|无码一级小说欧美日免费三级|日韩中文字幕91在线看|精品久久久无码中文字幕边打电话

當(dāng)前位置:首頁 > 單片機(jī) > 單片機(jī)
[導(dǎo)讀]調(diào)試FSMC總線復(fù)用模式時主要遇到以下幾點(diǎn):1、寄存器的配置,首先注意使能地址數(shù)據(jù)復(fù)用,其次要存儲器類型選擇FSMC_MemoryType_NOR,否則出現(xiàn)不了NADV信號。 FSMC_NORSRAMInitStructure.FSMC_DataAddressMux = FSMC

調(diào)試FSMC總線復(fù)用模式時主要遇到以下幾點(diǎn):


1、寄存器的配置,首先注意使能地址數(shù)據(jù)復(fù)用,其次要存儲器類型選擇FSMC_MemoryType_NOR,否則出現(xiàn)不了NADV信號。

FSMC_NORSRAMInitStructure.FSMC_DataAddressMux = FSMC_DataAddressMux_Enable;
FSMC_NORSRAMInitStructure.FSMC_MemoryType = FSMC_MemoryType_NOR;

2、注意個GPIO復(fù)用功能的使能,以及時鐘確定使能。

3、地址總線。在16位模式訪問時,訪問地址的[25..0]位必須先左移一位.。才能正確輸出地址信號,原因是,STM32會將地址右移一位后在輸出。如果輸出前不左移,會導(dǎo)致輸出地址錯誤,比如當(dāng)我們軟件訪問地址6000 0005H這個地址時,實(shí)際訪問的地址是6000 0002H。為何右移一位?看中文數(shù)據(jù)手冊327頁。如下


如表可以知道。當(dāng)16位訪問時,STM32把內(nèi)部地址總線和FSMC地址信號線正好錯移了一位。

這個主要是在復(fù)用模式下遇到的,至于16位模式下的其他訪問會不會遇到這種情況還不知道。待開發(fā)。

附FSMC配置程序和讀函數(shù):


p.FSMC_AddressSetupTime=15;

p.FSMC_AddressHoldTime=15;

p.FSMC_DataSetupTime=15;

p.FSMC_BusTurnAroundDuration=15;

p.FSMC_CLKDivision=0;

p.FSMC_DataLatency=0;

p.FSMC_AccessMode=FSMC_AccessMode_B;

FSMC_NORSRAMInitStructure.FSMC_Bank=FSMC_Bank1_NORSRAM1;

FSMC_NORSRAMInitStructure.FSMC_DataAddressMux=FSMC_DataAddressMux_Enable;

FSMC_NORSRAMInitStructure.FSMC_MemoryType=FSMC_MemoryType_NOR;

FSMC_NORSRAMInitStructure.FSMC_MemoryDataWidth=FSMC_MemoryDataWidth_16b;

FSMC_NORSRAMInitStructure.FSMC_BurstAccessMode=FSMC_BurstAccessMode_Disable;

FSMC_NORSRAMInitStructure.FSMC_AsynchronousWait=FSMC_AsynchronousWait_Disable;

FSMC_NORSRAMInitStructure.FSMC_WaitSignalPolarity=FSMC_WaitSignalPolarity_Low;

FSMC_NORSRAMInitStructure.FSMC_WrapMode=FSMC_WrapMode_Disable;

FSMC_NORSRAMInitStructure.FSMC_WaitSignalActive=FSMC_WaitSignalActive_BeforeWaitState;

FSMC_NORSRAMInitStructure.FSMC_WriteOperation=FSMC_WriteOperation_Enable;

FSMC_NORSRAMInitStructure.FSMC_WaitSignal=FSMC_WaitSignal_Disable;

FSMC_NORSRAMInitStructure.FSMC_ExtendedMode=FSMC_ExtendedMode_Disable;

FSMC_NORSRAMInitStructure.FSMC_WriteBurst=FSMC_WriteBurst_Disable;

FSMC_NORSRAMInitStructure.FSMC_ReadWriteTimingStruct=&p;

FSMC_NORSRAMInitStructure.FSMC_WriteTimingStruct=&p;

FSMC_NORSRAMInit(&FSMC_NORSRAMInitStructure);

/*!

FSMC_NORSRAMCmd(FSMC_Bank1_NORSRAM1,ENABLE);




讀函數(shù)中地址一定要左移


#defineFPGA_ADDRESS0x60000000

#defineFPGA_read(offset)*((volatileunsignedshortint*)(FPGA_ADDRESS+(offset<<1)))


本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時聯(lián)系本站刪除( 郵箱:macysun@21ic.com )。
換一批
延伸閱讀
關(guān)閉