zoukankan      html  css  js  c++  java
  • 嵌入式中的寻址地址设置,以使用FSMC接LCD控制器为例

    看一段代码:

    #define SSD1963_BASE ((u32)(0x6C000000)) //SSD1963设备基址
    #define SSD1963_REG_BASE ((u32)(0x6C000000)) //SSD1963寄存器基址
    #define SSD1963_RAM_BASE ((u32)(0x6C000008)) //SSD1963 RAM基址
    
    #define LCD_WR_REG(index)  (*(volatile u16 *)(SSD1963_REG_BASE) = index)
    #define LCD_WR_Data(value)  (*(volatile u16 *)(SSD1963_RAM_BASE) = value) //写RAM
    #define SSD1963_READ_RAM(addrptr) (*(addrptr) = *(volatile u16*)(SSD1963_RAM_BASE)) //读RAM

    LCD控制器最基本的地址设置:命令地址SSD1963_REG_BASE和数据地址SSD1963_RAM_BASE。

    要知道这两个地址的设置,

    第一. 查看你连接LCD驱动器的接口。 打开MCU的user manual,而不是reference manual(一般情况)。 找到memory map,找到你连接的接口的起始地址。比如我用FSMC BANK1的第一段地址就是0X60000000。这样就找到了第一个地址。. 第二个地址就打开你LCD控制器的数据手册,看控制器的命令位占多少,我的SSD1963占8位所以数据的位置就是起始位置偏移8位,也就是0X60000008

    memory map 需要细看清了,是驱动的开发必不可少的图!

    后面诸如外部sram,flash 这些都会有地址的操作,学以致用,活学活用。

  • 相关阅读:
    SOA架构之限流
    《OD面试》之多线程高并发
    认知升级之第一性原理
    我的第一性原理
    书单收集
    mysql死锁问题解决
    阿里巴巴未来十年使命、愿景和价值观
    python操作Excel模块openpyxl
    qt5--文件操作
    qt5--QPainter绘图
  • 原文地址:https://www.cnblogs.com/bandynewer/p/2576587.html
Copyright © 2011-2022 走看看