当前位置: 首页 > news >正文

[STM32L5] 【STM32L562E-DK测评活动】by clever:05 使用FMC驱动板载LCD屏幕

FSMC全称为灵活的静态存储控制器,其时钟信号为HCLK,FSMC根据支持的存储器类型可以分为NOR/PSRAM、NAND Flash和PC卡三种,本实验只涉及第一种NOR/PSRAM,严格意义上讲也与NOR/PSRAM无关,只是使用其中的LCD Interface类型的内存类型,主要包括片选引脚、地址线、数据线、输出和写入的配置。

在STM32手册中,对于FMC的介绍如下所示:
灵活的静态存储器控制器(FSMC)
灵活的静态存储器控制器(FSMC)包括两个存储器控制器:NOR/PSRAM 存储器控制器
NAND/内存控制器
这个内存控制器也被称为柔性内存控制器(FMC)。

FSMC控制器的主要特点如下:
与静态内存映射设备接口,包括:
静态随机存取存储器(SRAM)
NOR闪存/OneNAND闪存
PSRAM(四个内存库)
带有ECC硬件的NAND闪存,可检查多达8K字节的数据铁电随机存储器(FRAM)
8位、16位数据总线宽度
独立的芯片选择控制每个存储体
每个存储体的独立配置
写入FIFO
LCD 并行接口
FMC 可以配置为与大多数图形LCD控制器无缝接口。它支持Intel8080和Motorola 6800 模式,并且足够灵活,可以适应特定的LCD接口。这种LCD 并行接口能力使得使用嵌入式控制器的LCD 模块或使用具有专用加速器的外部控制器的高性能解决方案来构建成本效益高的图形应用变得容易。
TrustZone安全
当启用TrustZone安全时,整个FSMC银行重置后都是安全的。非安全区域可以使用TZSCMPCWMx控制器进行配置。
.FSMC NOR/PSRAM :
-最多可以配置两个非安全区域,通过TZSCMPCWM2控制器进行配置,粒度为64K字节。
FSMC NAND 银行:
-可以使用 TZSC MPCWM3 控制器配置为完全安全或完全非安全。
FSMC寄存器可以通过TZSC控制器配置为安全模式。

二使用STM32 cube MX 配置 FMC的初始化如下所示:
2.1 FMC 配置参数如下所示:


2.2 时钟树的配置如下:


三:软件代码如下:
3.1 FMC的初始化代码如下:

复制

  1. void MX_FMC_Init(void)
  2. {
  3. /* USER CODE BEGIN FMC_Init 0 */
  4. /* USER CODE END FMC_Init 0 */
  5. FMC_NORSRAM_TimingTypeDef Timing = {0};
  6. /* USER CODE BEGIN FMC_Init 1 */
  7. /* USER CODE END FMC_Init 1 */
  8. /** Perform the SRAM1 memory initialization sequence
  9. */
  10. hsram1.Instance = FMC_NORSRAM_DEVICE;
  11. hsram1.Extended = FMC_NORSRAM_EXTENDED_DEVICE;
  12. /* hsram1.Init */
  13. hsram1.Init.NSBank = FMC_NORSRAM_BANK1;
  14. hsram1.Init.DataAddressMux = FMC_DATA_ADDRESS_MUX_DISABLE;
  15. hsram1.Init.MemoryType = FMC_MEMORY_TYPE_SRAM;
  16. hsram1.Init.MemoryDataWidth = FMC_NORSRAM_MEM_BUS_WIDTH_16;
  17. hsram1.Init.BurstAccessMode = FMC_BURST_ACCESS_MODE_DISABLE;
  18. hsram1.Init.WaitSignalPolarity = FMC_WAIT_SIGNAL_POLARITY_LOW;
  19. hsram1.Init.WaitSignalActive = FMC_WAIT_TIMING_BEFORE_WS;
  20. hsram1.Init.WriteOperation = FMC_WRITE_OPERATION_ENABLE;
  21. hsram1.Init.WaitSignal = FMC_WAIT_SIGNAL_DISABLE;
  22. hsram1.Init.ExtendedMode = FMC_EXTENDED_MODE_DISABLE;
  23. hsram1.Init.AsynchronousWait = FMC_ASYNCHRONOUS_WAIT_DISABLE;
  24. hsram1.Init.WriteBurst = FMC_WRITE_BURST_DISABLE;
  25. hsram1.Init.ContinuousClock = FMC_CONTINUOUS_CLOCK_SYNC_ONLY;
  26. hsram1.Init.WriteFifo = FMC_WRITE_FIFO_ENABLE;
  27. hsram1.Init.NBLSetupTime = 0;
  28. hsram1.Init.PageSize = FMC_PAGE_SIZE_NONE;
  29. hsram1.Init.MaxChipSelectPulse = DISABLE;
  30. /* Timing */
  31. Timing.AddressSetupTime = 15;
  32. Timing.AddressHoldTime = 15;
  33. Timing.DataSetupTime = 255;
  34. Timing.DataHoldTime = 0;
  35. Timing.BusTurnAroundDuration = 15;
  36. Timing.CLKDivision = 16;
  37. Timing.DataLatency = 17;
  38. Timing.AccessMode = FMC_ACCESS_MODE_A;
  39. /* ExtTiming */
  40. if (HAL_SRAM_Init(&hsram1, &Timing, NULL) != HAL_OK)
  41. {
  42. Error_Handler( );
  43. }
  44. /* USER CODE BEGIN FMC_Init 2 */
  45. /* USER CODE END FMC_Init 2 */
  46. }

3.2 LCD的初始化代码如下:

复制

  1. if (BSP_LCD_Init(0, LCD_ORIENTATION_PORTRAIT) != BSP_ERROR_NONE)
  2. {
  3. Error_Handler();
  4. }
  5. /* Set UTIL_LCD functions */
  6. lcdDrv.DrawBitmap = BSP_LCD_DrawBitmap;
  7. lcdDrv.FillRGBRect = BSP_LCD_FillRGBRect;
  8. lcdDrv.DrawHLine = BSP_LCD_DrawHLine;
  9. lcdDrv.DrawVLine = BSP_LCD_DrawVLine;
  10. lcdDrv.FillRect = BSP_LCD_FillRect;
  11. lcdDrv.GetPixel = BSP_LCD_ReadPixel;
  12. lcdDrv.SetPixel = BSP_LCD_WritePixel;
  13. lcdDrv.GetXSize = BSP_LCD_GetXSize;
  14. lcdDrv.GetYSize = BSP_LCD_GetYSize;
  15. lcdDrv.SetLayer = BSP_LCD_SetActiveLayer;
  16. lcdDrv.GetFormat = BSP_LCD_GetFormat;
  17. UTIL_LCD_SetFuncDriver(&lcdDrv);

3.3 显示部分代码如下所示:

复制

  1. UTIL_LCD_Clear(UTIL_LCD_COLOR_WHITE);
  2. BSP_LCD_DisplayOn(0);
  3. UTIL_LCD_SetTextColor(UTIL_LCD_COLOR_RED);
  4. UTIL_LCD_SetBackColor(UTIL_LCD_COLOR_WHITE);
  5. UTIL_LCD_SetFont(&Font24);
  6. UTIL_LCD_DisplayStringAt(0, 60, (uint8_t *) "21 IC luntan", CENTER_MODE);
  7. UTIL_LCD_DisplayStringAt(0, 100, (uint8_t *)"STM32Board-DK", CENTER_MODE);
  8. UTIL_LCD_DisplayStringAt(0, 140, (uint8_t *)"LCD-FMC-Test", CENTER_MODE);
  9. UTIL_LCD_DisplayStringAt(0, 180, (uint8_t *)"congconggege", CENTER_MODE);
  10. UTIL_LCD_DisplayStringAt(10, 220, (uint8_t *)"2025-03-06", CENTER_MODE);
  11. UTIL_LCD_DrawBitmap(0, 0, (uint8_t *)st**);

四:实测图片如下:

实测动态如下所示:按下复位按键,程序运行显示开机界面。



调试代码后记:
1:对于touch gfx 软件中,没有找到该款开发板,不知道后期是否可以增加对该款的支持。
2:对于驱动LCD屏幕不太熟悉的人来说,可以直接去移植官方库里面的文件。BSP中有驱动代码,直接移植到自己工程目录下就可以。
3:由于使用cube MX 生成的底层的驱动,对于各个外设的驱动比较完善,压缩之后超过大小限制,感兴趣的人可以留下联系邮箱,看到后会及时发给您,作为参考。
4:目前仅仅是将屏幕功能正常点亮,稍后再屏幕上可以制作其他的功能测试。5:移植代码时候,需要格外注意时钟树的配置。


---------------------
作者:聪聪哥哥
链接:https://bbs.21ic.com/icview-3437076-1-1.html
来源:21ic.com
此文章已获得原创/原创奖标签,著作权归21ic所有,任何人未经允许禁止转载。

http://www.jsqmd.com/news/340892/

相关文章:

  • 2026年镀锌隔离栅厂家推荐:河北上兴路桥工程有限公司,隔离栅板/围栏网/防护网/门全系供应,适配公路铁路多场景防护需求 - 品牌推荐官
  • 运维系列【仅供参考】:记一次root无法切换到普通用户su: failed to execute /bin/bash: Permission denied
  • 计算机专业到底怎么学?核心就俩字:动手实践!
  • [STM32L5] 【STM32L562E-DK测评活动】by clever:04-硬件IIC读取手势模块
  • 2026年雷达测速仪品牌厂家最新推荐:路口哨兵安装、雷达测速仪供应商、雷达测速仪安装、雷达测速仪生产厂家、固定式雷达测速仪选择指南 - 优质品牌商家
  • 断网时,网络工程师一般先查什么?
  • Python AI 与深度学习 - D1.PyTorch 深度学习环境一键配置
  • 写论文软件哪个好?实测 5 款热门工具:虎贲等考 AI 凭 “真材实料” 夺冠
  • 【转】Golang使用时区时候报错
  • 聊聊高性价比的机构化长租社区,云桥资管在美加等地表现出色 - 工业品牌热点
  • 运维系列Vmware系列【仅供参考-推荐】:VMware vCenter6.7(windows版)升级到vcsa7.0完整步骤
  • 9 款 AI 写论文哪个好?深度实测后,虎贲等考 AI 凭 “真素材 + 全流程” 封神
  • 2026最新消防操作员教学设备推荐!国内优质消防教学设备权威榜单发布,专业合规双优助力技能提升消防操作员教学设备推荐 - 品牌推荐2026
  • Windows 11 2026年2月更新来袭,8大新功能值得期待
  • 波形发生器实例篇,基于单片机设计DAC0832波形发生器
  • 【Parasoft应用案例】在 DO-178C 标准下,实现航空嵌入式软件测试自动化
  • 2026年口碑好的阻燃尼龙改性颗粒/增强尼龙改性颗粒最新TOP厂家排名 - 品牌宣传支持者
  • AI 写论文哪个软件最好?虎贲等考 AI 实测:全流程 + 真素材,毕业生闭眼冲
  • 2026年口碑好的公共移动厕所/景区移动厕所厂家推荐及选购指南 - 品牌宣传支持者
  • 开题报告被打回 3 次?虎贲等考 AI:一键解锁 “导师点头” 的学术蓝图
  • 2026最新消防救援实训室设备推荐!国内优质消防救援实训室设备权威榜单发布,资质服务双优助力专业消防培训 - 品牌推荐2026
  • 2026年最新:Kimi智能助手下载与安装全流程实用指南 - PC修复电脑医生
  • 专科生也能用!学生热捧的AI论文软件 —— 千笔AI
  • 学无止境-Linux Makefile及时记
  • AI 写论文哪个软件最好?实测 7 款后:虎贲等考 AI 凭 “学术全闭环” 成毕业季黑马
  • VizDoom运行报错:Failed to load module canberra-gtk-module
  • 深度测评!好评如潮的AI论文平台 —— 千笔·专业学术智能体
  • 2026年湖南棋牌室/自助棋牌室/24小时自助棋牌室行业深度解析与服务商综合能力评估报告 - 2026年企业推荐榜
  • 汽水音乐比亚迪车机版 1.0.9 | 专为车机优化,界面适配更好,支持上下滑动操作
  • 2026重庆防腐钢管厂家权威榜单 多场景适配 全流程服务全景解析 多领域适配优选 - 深度智识库