stm32 fsmc lcd调试 联系客服

发布时间 : 星期三 文章stm32 fsmc lcd调试更新完毕开始阅读87d08ecabf23482fb4daa58da0116c175f0e1ec9

stm32 fsmc lcd调试

2010年 05月 09日 星期日 03:45 P.M. STM32103F/lk lcd 型号

:ZYMG12864C3

注 :学习的时候如果觉得配置好了操作无效 多注意外围设备的时钟配置 如 : RCC_AHBPeriphClockCmd(RCC_AHBPeriph_FSMC, ENABLE; //

RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOD |

RCC_APB2Periph_GPIOE | RCC_APB2Periph_GPIOF | RCC_APB2Periph_GPIOG | RCC_APB2Periph_AFIO, ENABLE;

这里的 RCC_APB2Periph_AFIO, ENABLE 很容易忘记

关于 FSMC

开始看了点手册和别人的应用笔记大概把自己理解的记录下

把 FSMC 与外围设备连接配置好后 就等于 FSMC 对于使用者屏蔽了对外围设备的 具体操作 只要向对应类型的映射地址空间内写入数据 这些数据 +地址就会自动 被翻译 (需设置相应时序的地址数据建立保持时间等参数 并写入外围存储设备

在 FSMC 的角度来看 外围连接的存储设备被分为 ROM\\SRAM\\NOR - NAND Flash - PC Card等几种类型

它们被对应为 FSMC 内 4个存储块 分别为

64*4mb(ROM\\SRAM\\NOR (6000 0000h - 6fff ffffh, (这一块又分为 4部分 每 一部分有片选信号 NE[1:4]

可以连接 4片本类型设备使用

256mb(NAND Flash 1(7000 0000h - 7fff ffffh, 256mb(NAND Flash 2(8000 0000h - 8fff ffffh , 256mb(PC Card(9000 0000h - 9fff ffffh 例如下面程序中要使用的宏定义

#define LCD_Command *(*(volatile u8 0x6c00 0000

#define LCD_Data *(*(volatile u8 0x6c00 0001 (LCD数据宽 度为 8BIT 当数据写入 LCD_Command对应的地址时 地址和数据会分别被发送到对应的 AFIO 复用端口 将 AFIO 的 A0接至 LCD 的 C/D(Command/data脚 就自动切换了命 令和数据

LCD_Command = 0x55; A0 = 0; 对应地址低位 0x6c00 0000

LCD_Data = 0x55; A0 = 1; 对应地址低位 0x6c00 0001 此开发板 LCD 与 MCU 的引脚对应关系为 : D0 ----> PD14 D4----> PE7 A0 ------>PF00 D1 ----> PD15 D5 ----> PE8 FSMC_NE4------>PG12 D2 ----> PD0 D6 ----> PE9 FSMC_NWE------->PD5 D3 ----> PD1 D7 ----> PE10 FSMC_NOE------->PD4 本例中所有引脚配置为 AFIO

程序如下 : 对于 FSMC 的工作模式时序配置可以看手册的 18章

/******************************************************************** ********************************************

Funtion : fsmc para ----|input : null |output: null data : 2010/5/9 ver : 0.1 modify : null

author : x

********************************************************************* *******************************************/

void LCD_FSMCConfig(void {

#ifndef NO_LCD

FSMC_NORSRAMInitTypeDef FSMC_NORSRAMInitStructure; FSMC_NORSRAMTimingInitTypeDef p;

RCC_AHBPeriphClockCmd(RCC_AHBPeriph_FSMC , ENABLE; /*-- FSMC Configuration

------------------------------------------------------*/ /*----------------------- SRAM Bank 4 ----------------------------------------*/

/* FSMC_Bank1_NORSRAM4 configuration */ p.FSMC_AddressSetupTime = 1; p.FSMC_AddressHoldTime = 1; p.FSMC_DataSetupTime = 20; p.FSMC_BusTurnAroundDuration = 0; p.FSMC_CLKDivision = 0;