STM32利用STM32CubeMX驱动SDRAM
本次发布FMC总线驱动SDRAM的博客,为下次发布LTDC外设驱动RGB屏的博客做准备。利用STM32CubeMX和HAL库,生成的工程代码具有很强的可移植性,而且学会了可以自己再写其他板子的SDRAM驱动程序。
1.首先打开CubeMX,新建一个工程,这里我用的是RT-Thread推出的STM32H750开发板,勾上外部晶振并设置CPU主频为480MHz,打开SWD调试口,打开调试的USART,勾上FMC总线。按以下参数设置。
2.参数配置SDRAM control中按如下设置,这些个参数可以根据实际情况调整,不过调不好SDRAM不能正常工作
3.参数配置SDRAM timing中按如下设置,这些个参数可以微调,不过调不好SDRAM不能正常工作
4.FMC总线的时钟200MHz-240MHz范围左右都可以,如果配成480MHz则SDRAM不能正常工作
5.生成MDK工程后,首先在usart.c中代码保护段里添加如下代码,等下要用到printf函数
6.在fmc.h中代码保护段里添加如下代码,里面声明了三个函数
7.在fmc.c中代码保护段里添加如下代码,在里面实现声明的三个函数。其中最重要的是配置SDRAM时序和控制方式函数。
8.最后在main.c函数中添加如下代码,初始化SDRAM并测试
9.编译完程序后下载到板子上,打开串口调试助手,SDRAM正常工作,完美
留下MDK工程,里面包括CubeMX工程文件,CubeMX用的是V6.0.0,另外我在正点原子F429上这样试过也可以驱动SDRAM。希望大家多动手试试调调。
链接: https://pan.baidu.com/s/1S1w1oSelHUQHHvxJ5Z69bA 提取码: 8ipu