这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 嵌入式开发 » MCU » SSD1289驱动写寄存器函数

共3条 1/1 1 跳转至

SSD1289驱动写寄存器函数

菜鸟
2014-03-21 21:11:21     打赏

 

#define Bank1_LCD_Reg ((u32)0x6c000000)

void LCD_WR_REG(u16 data)
{
*(vu16 *)(Bank1_LCD_Reg) = data;
}

这是一个例程的关于SSD1289写寄存器的一个函数,有两点不明白:

 

1、这个 (u32)0x6c000000中的0x6c000000代表什么,为什么有这个数字,难道涉及SSD1289的寄存器地址范围?

2、*(vu16 *)(Bank1_LCD_Reg) = data;这句话为什么能实现写数据的目的,*(*vu16) 是什么意思?


工程师
2014-03-21 22:58:59     打赏
2楼

这个应该是FSMC总线驱动的SSD1289  0x6c000000就是一个地址跟SSD1289无关 与FSMC有关

如果你了解总线扩展就知道 0x6c000000就是相当于外设器件的PORT 

*(vu16 *)(Bank1_LCD_Reg)  先把Bank1_LCD_Reg转换成指针 再赋值给该指针所指向的地址



菜鸟
2014-03-23 10:11:49     打赏
3楼
谢谢,确实是使用FSMC驱动的,但我不了解FSMC,对总线扩展也不了解。因为在51里,都是通过操作芯片的时序来写入数据,这种方式不明白

共3条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]