• 嵌入式中的寻址地址设置,以使用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 这些都会有地址的操作,学以致用,活学活用。

  • 相关阅读:
    腾讯为什么会出Q立方浏览器?
    String,StringBuffer与StringBuilder的区别??
    Linux Socket编程(不限Linux)
    将div显示在屏幕正中央
    计算鼠标坐标是否在指定范围内
    正则
    ajax异步通信
    CSS Float 换行
    jQuery强大的jQuery选择器
    给display字段增加筛选功能
  • 原文地址:https://www.cnblogs.com/bandynewer/p/2576587.html
Copyright © 2020-2023  润新知