历史上的今天
今天是:2025年04月17日(星期四)
2018年04月17日 | stm32 FSMC的函数解释
2018-04-17 来源:eefocus
介于网上找的库函数中文版没有FSMC的,所有只能在这边转载一下FSMC的函数解析,供像我这样的菜鸟学习
typedef struct
{
uint32_t FSMC_Bank;//nor被分为四块,其中这个参数是说明对那个块编程
uint32_t FSMC_DataAddressMux;//地址\数据是否复用
uint32_t FSMC_MemoryType;//存储器类型
uint32_t FSMC_MemoryDataWidth;//数据总线宽度 8位/16位
uint32_t FSMC_BurstAccessMode;//是否进行成组模式访问
uint32_t FSMC_WaitSignalPolarity;//等待信号有效级性
uint32_t FSMC_WrapMode;//该位决定控制器是否支持把非对齐的AHB成组操作分割成2次线性操作;该位仅在存储器的成组模式下有效。
uint32_t FSMC_WaitSignalActive;//当闪存存储器处于成组传输模式时,NWAIT信号指示从闪存存储器出来的数据是否有效或是否需要插入等待周期。该位决定存储器是在等待状态之前的一个时钟周期产生NWAIT信号,还是在等待状态期间产生NWAIT信号。
uint32_t FSMC_WriteOperation;//该位指示FSMC是否允许/禁止对存储器的写操作。
uint32_t FSMC_WaitSignal;//当闪存存储器处于成组传输模式时,这一位允许/禁止通过NWAIT信号插入等待状态。
uint32_t FSMC_ExtendedMode;//该位允许FSMC使用FSMC_BWTR寄存器,即允许读和写使用不同的时序。
uint32_t FSMC_WriteBurst; //对于处于成组传输模式的闪存存储器,这一位允许/禁止通过NWAIT信号插入等待状态。读操作的同步成组传输协议使能位是FSMC_BCRx寄存器的BURSTEN位。
FSMC_NORSRAMTimingInitTypeDef* FSMC_ReadWriteTimingStruct;//读时序配置指针
FSMC_NORSRAMTimingInitTypeDef* FSMC_WriteTimingStruct;//写时序配置指针
}FSMC_NORSRAMInitTypeDef
typedef struct
{
uint32_t FSMC_AddressSetupTime;//这些位定义地址的建立时间,适用于SRAM、ROM和异步总线复用模式的 NOR闪存操作。
uint32_t FSMC_AddressHoldTime;//这些位定义地址的保持时间,适用于SRAM、ROM和异步总线复用模式的 NOR闪存操作。
uint32_t FSMC_DataSetupTime;//这些位定义数据的保持时间,适用于SRAM、ROM和异步总线复用模式的NOR闪存操作。
uint32_t FSMC_BusTurnAroundDuration;//这些位用于定义一次读操作之后在总线上的延迟(仅适用于总线复用模式的NOR闪存操作),一次读操作之后控制器需要在数据总线上为下次操作送出地址,这个延迟就是为了防止总线冲突。如果扩展的存储器系统不包含总线复用模式的存储器,或最慢的存储器可以在6个HCLK时钟周期内将数据总线恢复到高阻状态,可以设置这个参数为其最小值。
uint32_t FSMC_CLKDivision;//定义CLK时钟输出信号的周期,以HCLK周期数表示:
uint32_t FSMC_DataLatency;//处于同步成组模式的NOR闪存,需要定义在读取第一个数据之前等待的存储器周期数目。 这个时间参数不是以HCLK表示,而是以闪存时钟(CLK)表示。在访问异步NOR闪存、SRAM或ROM时,这个参数不起作用。操作CRAM时,这个参数必须为0。
uint32_t FSMC_AccessMode; //访问模式
}FSMC_NORSRAMTimingInitTypeDef;
史海拾趣
|
结合半波整流 — 滤波电路 ,分别采用牛顿 — 拉夫逊法和 PSPICE进行求解 ,均得出了正确的结果.经比较 ,两种方法各有所长.尤其是当电路中的非线性元件比较多 ,元件之间的非线性关系比较复杂 ,采用牛顿 — 拉夫逊法难以得到递推表达式时 ,用 PSPICE求 ...… 查看全部问答> |
|
板子是OMAP3530,BSP是从网上下的TI_EVM_3530,BSP中Device Drivers中的VGA Linear Framebuffer只支持x86的cpu,请问我要想添加这个组件的话该怎么办?必须要自己写一个能支持arm的vga驱动吗?我装vs2005的时候只选了ARMV4I,是不是再装上x86部分就 ...… 查看全部问答> |
|
比如像lss、lds之类的指令在分段前得到的段地址和段内偏移,分段后得到的段选择符和段内偏移。是不是这样理解的?这些指令能做到吗?段选择符能直接这样就能得到吗?(请见谅,我没有分数不能给分,我最近在看linux内核,知道的大哥发表些见解)… 查看全部问答> |
|
RT,应用和驱动间数据传输可以通过readfile,writefile实现,但是现在想通过内存共享的方式传递大量数据,不知道应用和内存的共享内存可不可以实现?或者有没有更好的应用和驱动间的传输数据的方法?请大家多多指导… 查看全部问答> |
|
一直在用 EVC做界面,感觉提高的很慢,做的东西也是老样子,界面界面再界面。怎么样能让自己提高的快些呢?? 一直在做用 EVC做界面,感觉提高的很慢,做的东西也是老样子,界面界面再界面。怎么样能让自己提高的快些呢?? 平台式 WIN CE 5.0… 查看全部问答> |
|
我在主窗口的初始化中注册了子窗口类WNDDISPLAY, 并且注册成功,然而在主窗口的WM_CREATE处理函数中调用hwndChild = CreateWindowEx (WS_EX_CLIENTEDGE, WNDDISPLAY, TEXT(\"\"), WS_CHILD, ...… 查看全部问答> |
|
C语言,不能用强制转换,想将结构体内所有元素转化为unsigned short int型元素 typedef struct userinfo { char[10] username; //用户姓名 long user_serial; //用户标示号 float user_fee; //用户消费额,两位小数 } a; 1. 一 ...… 查看全部问答> |
|
各位大侠: 怎么才可以把微软的mediaplayer控件里面的微软会标,不显示出来。 或者说,怎么才能把mediaplayer输出的视频流,才我自己定义的窗口内播放呢?… 查看全部问答> |




