1. FSMC协议分析
如下为ILI9325的8080接口的协议
从图中可以看出8080接口的协议大概流程是:先发出片选信号,然后发出命令使能或者数据使能信号,待数据建立完成后,在读写信号的上升沿写入数据或者读出数据。
CS(片选信号):低电平片选有效,高电平失能(默认为高:失能)
RS(数据/命令):低电平写命令,高电平写数据(默认为高:写数据)FSMC默认为低。。。。
RD(读信号) :低电平有效,上升沿写入数据,高电平失能(默认为高,失能)
WR(写信号) :低电平有效,上升沿写入数据,高电平失能(默认为高,失能)
FSMC写SRAM模式如下:
FSMC对于类RAM存储器的读操作过程一般是:先发出片选信号、读写信号和地址信号,然后等待数据建立完成后,读取数据总线上的数据或把数据写到外部器件。
通过以上分析我们会发现,这个 FSMC 写 NOR 时序是跟 8080 接口的时序非常的相似,他们都有片选信号、读信号、写信号、数据总线,而且他们的工作过程都是一样的,那么我们就可以用以下的方式将8080接口与FSMC接口实现对接,
(1)读操作
(2)写操作
通过以上分析我们会发现,这个 FSMC 写 NOR 时序是跟 8080 接口的时序非常的相似,他们都有片选信号、读信号、写信号、数据总线,但要想将8080接口与FSMC接口完全对接还有一个问题没有解决,那就是8080协议没有地址信号线而FSMC有16根地址信号,8080协议根据一个端口的高低电平来区分数据信号与命令信号,我们可以想一下,我们是不是可以选用16根地址线中的任意一根作为命令/数据选择线呢,这样当这份地址线为高电平的时候就表示传输的是数据,低电平表示传输的是命令。
关键字:STM32 FSMC总线 TFT8080接口
引用地址:
STM32 FSMC总线与TFT8080接口对接分析
推荐阅读最新更新时间:2024-03-16 15:36
STM32 IO口模拟串口通讯
前阵子,调项目时需要用到低波特率串口通讯(300的波特率),才发下发现在正常情况下(PCLK1时钟频率为72M,PCLK2时钟频率为36M):STM32的USART0的最低波特率只能设置到1200,;而USART1最低波特率只能设置到600。怎么设置STM32的600或以下的波特率呢?有两种方法:一种是改变外设时钟频率,而另一种方法就是使用IO口模拟串口通讯。今天就来讲讲,用IO口模拟串口通信! 1、串口传输协议 首先,必须要知道串口通讯时数据是怎样传输的?这里以异步传输字符为例子,如下图所示: 一般字符传输都采用:1位起始位,8位数据位,1位停止位,没有校验位 的形式传输,其他形式的这里不讲。串口异步传输在空闲状态时都必须是
[单片机]
STM32 TIM触发ADC 定时采样-笔记
用TIM3的update触发adc,只需勾选Internal clock就可以了 ADC设置,关键是选TIM3 TRIGGER OUT TIM3 设置时间间隔然后关键选Update event 程序代码 记得开启TIM3 HAL_ADCEx_Calibration_Start(&hadc1); //STM32F1 HAL_TIM_Base_Start(&htim3); HAL_ADC_Start_DMA(&hadc1,(uint32_t*)&ADC_Value,1024); 然后重写callback 函数 void HAL_ADC_ConvCpltCallback(ADC_HandleTypeDef* h
[单片机]
一个简单逆向stm32固件程序的实例分享
本文主要跟大家分享一个简单逆向stm32固件程序的实例,为了让大家在一款成熟的产品中去考虑加密这一块的技术,不然分分钟被别人copy! 1、情景再现 咬金,你们公司固件程序有加密处理吗 ? 额~,算了吧,我们公司的单片机程序炒鸡简单的,还加啥子密。 你这想法不对,假如产品卖得很好,如果没有任何加密措施,那岂不人家随便复制售卖。 没关系吧,反正他们没源码,应该也没那么容易复制吧 一点加密都没有,盗取还是比较简单的。 我才不信~~ 那行,把你的板子给我,不用你的源码,跟你把波特率改了! 直接读取固件 这里以stm32单片机进行演示,如果MCU没有做flash读取或者熔断保护,则可以通过jlink等烧写工具直接读取其Flash上的固
[单片机]
带有LED警示灯的骑行夜服设计
近年来,夜间骑车或跑步遭遇不幸的事件时有发生,这往往是因为在转弯或者高速行驶的过程中,汽车司机受限夜间视场,来不及避让而造成的。传统的夜行服大多采用被动方式,即由反光材料制作而成,在暗光条件下工作的人员广泛使用,由于利用的是反光原理,只有在灯光照射下才能进行反光,而且不同灯光照射产生的反光效果不同,因此大大限制了夜光服的使用场合和使用人群。有些主动发光的LED灯,发光面很小,强度较弱,无法起到好的警示作用。 本文设计了一套带有LED警示功能的骑行夜服,能够在夜晚自主发光,该夜行服可为需要在夜间出行的骑行者或跑步者起到好的保护作用。 1、系统方案总体设计 系统总体框图如图1所示,以STM32单片机为主控制核心,包括LED
[电源管理]
STM32 I2C基础内容
I²C:全称为Inter-Integrated Circuit(内部集成电路),是一种串行通讯总线,常用于嵌入式电子产品中。 I²C是飞利浦公司在1980年为了让各种低速设备(飞利浦芯片)连接起来而研发的一种通信总线。目前,I²C依然是最常见的通信总线之一,现在绝大部分MCU都内部集成了I²C控制器,STM32也不例外,至少有一个I²C控制器,有的型号甚至多达6个。 1 STM32 I2C基础内容 I²C总线协议有多个版本,有的STM32遵循的是第2版本,有的是第3版本。所以,不同型号的 STM32 中I²C 可能存在一些差异,但基本功能相似。 1. 主从模式特性 主模式特性: 时钟生成 起始位和停止位生成 从模式特性:
[单片机]
STM32基于固件库学习笔记(3)串口的收发功能+WiFi基础配置
串口设置的一般步骤 1) 串口时钟使能,GPIO 时钟使能 注:串口是挂载在 APB2 下面的外设还需要需要挂载复用时钟使能 //挂载时钟(复用PA) 串口时钟使能,GPIO 时钟使能,复用时钟使能 RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1|RCC_APB2Periph_GPIOA|RCC_APB2Periph_AFIO,ENABLE); 2) 串口复位 //系统刚开始配置外设的时候,都会先执行复位该外设的操作。 void USART_DeInit(USART_TypeDef* USARTx);//串口复位 3) GPIO 端口模式设置 注意:RXT、TXT输
[单片机]
stm32 外部中断嵌套[操作寄存器+库函数]
stm32共有19个外部中断: 线0~15:对应外部I/O口的输入中断 线16:连接到PVD输出。PVD(Programmable Votage Detector),即可编程电压监测器。作用是监视供电电压,在供电电压下降到给定的阀值以下时,产生一个中断,通知软件做紧急处理。当供电电压又恢复到给定的阀值以上时,也会产生一个中断,通知软件供电恢复。 线17:连接到RTC实时时钟产生闹钟事件。 线18:连接到USB唤醒事件 在 stm32 NVIC中断 和 stm32 USART串口通信 中已经介绍过stm32的中断和串口输出使用方法,本文运用外部中断嵌套,通过串口发送相应信息,验证外部中断嵌套。 按下PA0(按
[单片机]
如何使用STM32实现systick的精确延时
SYSTICK寄存器初始化 void SysTick_Configuration(void) { if (SysTick_Config(SystemCoreClock / 100)) { while (1); } NVIC_SetPriority(SysTick_IRQn, 0x0); } SysTick_Config默认时钟为SysTick_CLKSource_HCLK,所以在这之前使用SysTick_CLKSourceConfig()选择系统时钟不会改变systick的时钟 static __INLINE uint32_t SysTick_Config(uint32_t ticks) { if (ticks 》 Sys
[单片机]