Bit 19:成组写使能位
0:写操作始终处于异步模式
1:写操作为同步模式
Bit 14:EXTMOD:扩展模式使能(即允许读和写使用不同的时序)
0:不使用FSMC_BWTR寄存器(默认)
1:FSMC使用FSMC_BWTR寄存器
Bit 13:等待使能位
0:禁用NWAIT信号,在设置的闪存保持周期之后不会检测NWAIT信号插入等待状态
1:使用NWAIT信号,在设置的闪存保持周期之后根据NWAIT信号插入等待状态(默认)
Bit 12:写使能位
0:禁止FSMC对存储器的写操作,否则产生一个AHB错误
1:允许FSMC对存储器的写操作(默认)
Bit 11:配置等待时序
0:NWAIT信号在等待状态前的一个数据周期有效(默认)
1:NWAIT信号在等待状态期间有效(不适用于Cellular RAM)
Bit 10:支持非对齐的成组模式
0:不允许直接的非对齐成组操作(默认)
1:允许直接的非对齐成组操作
Bit 9:等待信号极性
0:NWAIT等待信号为低时有效(默认)
1:NWAIT等待信号为高时有效
Bit 8:成组模式使能
0:禁用成组访问模式(默认)
1:使用成组访问模式
Bit 6:闪存访问使能
0:禁止对NOR闪存存储器的访问操作
1:允许对NOR闪存存储器的访问操作
Bit 5~Bit 4:存储器数据总线宽度
00:8位,
01:16位(默认)
10:保留
11:保留
Bit 3~Bit 2:存储器类型
00:SRAM、ROM(存储器块2,3,4在复位后的默认值)
01:PSRAM(Cellular RAM: CRAM)
10:NOR闪存(存储器块1在复位后的默认值)
11:保留
Bit 1:地址/数据复用使能位
0:地址/数据不复用。
1:地址/数据复用数据总线(默认)
Bit 0:存储器块使能位
0:禁用对应的存储器块
1:启用对应的存储器块
(2)SRAM/NOR 闪存片选时序寄存器:FSMC_BTRx(x=1~4)
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
|---|
| - | ACCMOD | DATLAT | CLKDIV | BUSTURN |
|
|
|
|
|
|
|
|
|
|
|
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| DATAST | ADDHLD | ADDSET |
|
|
|
|
|
|
|
|
|
|
|
|
|
Bit 29~Bit 28:访问模式(这2位只在FSMC_BCRx寄存器的EXTMOD位为1时起作用)
00:访问模式A
01:访问模式B
10:访问模式C
11:访问模式D
Bit 27~Bit 24:数据保持时间
0000:第一个数据的保持时间为2个CLK时钟周期
……
1111:第一个数据的保持时间为17个CLK时钟周期(默认)
Bit 23~Bit 20:时钟分频比
0000:保留
0001:1个CLK周期=2个HCLK周期
0010:1个CLK周期=3个HCLK周期
……
1111:1个CLK周期=16个HCLK周期(默认)
Bit 19~Bit 16:总线恢复时间
0000:总线恢复时间=1个HCLK时钟周期
……
1111:总线恢复时间=16个HCLK时钟周期(默认)
Bit 15~Bit 8:数据保持时间
00000000:保留
00000001:DATAST保持时间=2个HCLK时钟周期
00000010:DATAST保持时间=3个HCLK时钟周期
……
11111111:DATAST保持时间=256个HCLK时钟周期(默认)
Bit 7~Bit 4:地址保持时间
0000:ADDHLD保持时间=1个HCLK时钟周期
……
1111:ADDHLD保持时间=16个HCLK时钟周期(默认)
Bit 3~Bit 0:地址建立时间
0000:ADDSET建立时间=1个HCLK时钟周期
……
1111:ADDSET建立时间=16个HCLK时钟周期(默认)
关键字:STM32 TFTLCD 显示实验
引用地址:
STM32入门学习笔记之TFTLCD显示实验2
推荐阅读最新更新时间:2026-03-20 12:22
STM32f4---TFTLCD显示实验代码(02)
第七个要介绍的函数是坐标设置函数,该函数代码如下: //设置光标位置 //Xpos:横坐标 //Ypos:纵坐标 void LCD_SetCursor(u16 Xpos, u16 Ypos) { if(lcddev.id==0X9341||lcddev.id==0X5310) { LCD_WR_REG(lcddev.setxcmd); LCD_WR_DATA(Xpos 8); LCD_WR_DATA(Xpos&0XFF); LCD_WR_REG(lcddev.setycmd); LCD_WR_DATA(Ypos 8); LCD_WR_DATA(Ypos&0XFF); }else if(lc
[单片机]
STM32f4---TFTLCD显示实验代码(03)
第十个要介绍的是字符显示函数LCD_ShowChar,该函数同前面OLED 模块的字符显示函数差不多,但是这里的字符显示函数多了1 个功能,就是可以以叠加方式显示,或者以非叠加方式显示。叠加方式显示多用于在显示的图片上再显示字符。非叠加方式一般用于普通的显示。 该函数实现代码如下: //在指定位置显示一个字符 //x,y:起始坐标 //num:要显示的字符: --- ~ //size:字体大小 12/16/24 //mode:叠加方式(1)还是非叠加方式(0) void LCD_ShowChar(u16 x,u16 y,u8 num,u8 size,u8 mode) { u8 temp,t1,t; u
[单片机]
STM32 ILI9341驱动TFTLCD(七)LCD画实心三角形、矩形、圆形
上次测试画直线函数时,已经通过三条直线画出了一个空心三角形,今天来画一下实心的,分别画下实心三角形、实心矩形、实心圆。 1、实心三角形 实心三角形,可以先画任意两条边,然后以这两条边的交点为顶点,向第三条直线的点画直线。在画第三条直线时,思想和画直线是一样的,只是在画好点之后,多加了顶点向刚画好的点画直线这一步。到第三条直线画完时,实心三角形也就画好了。 画实心三角形函数 void LCD_DrawSolidTriangle(u16 x0,u16 y0,u16 x1,u16 y1,u16 x2,u16 y2,u16 color) { u16 xm = 0,ym = 0; u16 step = 0; L
[单片机]
STM32 ILI9341驱动TFTLCD(八)LCD碰撞小球
掌握了基本图形的画法后,我们可以开始尝试让这些基本图形变成动态的,就像一种桌面,有很多个小球,相互碰撞并改变小球颜色的动态效果。 要达到这种效果,首先要把这个大问题分解成若干个小问题: 1、先让一个小球在屏幕中运动到边界时能弹回; 2、两个小球同时运动时,除了到达边界弹回,还要两个小球相碰撞时弹回并改变颜色; 3、更多小球同时运动。 1、单球运动 单球运动,就是移动画出来的画空心圆,也就是只要改变圆心就可以实现,但是在画下一个圆之前要把上一次画的圆给清除掉。画完后,接着要判断圆心到边界的距离与半径的大小关系,确定下一次的运动方向。 单球运动函数 //单个球运动,碰到边界改变运动方向 //dir为运
[单片机]
STM32 ILI9341驱动TFTLCD屏(二)
ILI9341集成了240x320x18位图形类型静态RAM,也可称为显存。这个172,800字节的内存允许存储具有18位分辨率(262K-color)的240xRGBx320图像。当同时存在面板显示读操作和对帧内存相同位置的接口读/写操作时,对显示没有异常的可见效果。 移动图像区域可以通过窗口地址函数在内部GRAM中指定。可以有选择地更新指定的窗口区域,这样就可以独立于静止图像区域同时显示移动图像。 ILI9341有很多调节指令集: 从图中表格可以看到指令集的时序和指令码,可以根据需要把指令封装成相对应的功能函数。举例说明一个,如果想要配置软件复位函数,首先找到软件复位相对应的说明。 软件复位的指令码为0x
[单片机]
STM32 TFTLCD原理与驱动与指令介绍
一,TFTLCD简介 TFTLCD : 薄膜晶体管液晶显示器 在液晶显示屏的每一个像素上都设置有一个薄膜晶体管(TFT) 克服非选通时的串扰,使显示液晶屏的静态特性与扫描线数无关,提高图像质量 TFTLCD优点: 亮度好,对比度高,层次感强,颜色鲜艳,是目前最主流的LCD显示器 广泛用于电视,手机,电脑,平板等各种的电子产品 二,ALINETEK 2.8寸 TFTLCD模块介绍 240*320分辨率 16位真彩显示(65536色) 自带电阻触摸屏 自带背光电路 三,ALINETEK 2.8寸 TFTLCD模块原理图 1,2.8寸LCD引脚 2,TFTLCD 为对外接口,引出2*17排针 3,电阻触摸
[单片机]
【STM32CubeMX】10,STM32之FSMC 之TFTLCD,移植,显示变量
1,学了这章之后,主要掌握了怎么移植标准库的函数 2,对.c .h文件的#include文件的修改 3,在LCD中,最关键的是读写命令地址的书写 4,LCD的初始化可以看给的参考例程 5,变量的显示sprintf函数https://baike.baidu.com/item/sprintf/9703430?fr=aladdin http://www.openedv.com/posts/list/61386.htm 6, 在stm32 例子的 c语言 程序中看到这样一句 *(__IO uint16_t *) (((uint32_t)0x60020000) ) 7,fsm
[单片机]
stm32 TFTLCD驱动原理(三)
代码的实现 (1) 首先是对 TFTLCD 进行引脚初始化 static void LCD_GPIO_Config ( void ) { GPIO_InitTypeDef GPIO_InitStructure; /* 使能复用IO时钟:复用为fsmc功能 */ RCC_APB2PeriphClockCmd ( RCC_APB2Periph_AFIO, ENABLE ); /* 使能FSMC对应相应管脚时钟 */ RCC_APB2PeriphClockCmd ( RCC_APB2Periph_GPIOD | RCC_APB2Periph_GPIOE, ENABLE ); FSMC_LCD_CS_
[单片机]