搜索
bottom↓
回复: 6

VC的FSMC接OLED的设置问题

[复制链接]

出0入0汤圆

发表于 2010-6-4 09:00:01 | 显示全部楼层 |阅读模式
我现在想用STM32F103VC的FSMC来驱动S6E63D6的OLED,
我的硬件连接如下:
/*
硬件连接:(STM32F103VC---S6E63D6)
FSMC           OLED
D15-D8        D17-D10
D7-D0         D8-D1
A16           RS
NWE        RW_NRD/WRB
NOE        E_NWR/RDB
PC12       RESET
NE1        NCS/CSB
*/

可现在总是不正确,请教一下各位该如何配置呢?
看到Readio代码里有这个配置:
/* LCD is connected to the FSMC_Bank1_NOR/SRAM2 and NE2 is used as ship select signal */
/* RS <==> A2 */
#define LCD_REG              (*((volatile unsigned short *) 0x64000000)) /* RS = 0 */
#define LCD_RAM              (*((volatile unsigned short *) 0x64000008)) /* RS = 1 */

可我老是觉得A2的地址应该是0x64000004啊?这个Ax对应的地址到底如何确定呢?
我现在用VC的A16接的RS,地址如下:
#define LCD_WR_REG(a)   {(*((volatile unsigned int *) 0x60000000)) = (a);}
#define LCD_WR_RAM(a)   {(*((volatile unsigned int *) 0x60010000)) = (a);}
这样正确吗?

阿莫论坛20周年了!感谢大家的支持与爱护!!

一只鸟敢站在脆弱的枝条上歇脚,它依仗的不是枝条不会断,而是自己有翅膀,会飞。

出0入0汤圆

发表于 2010-6-4 11:04:26 | 显示全部楼层
STM32在16位时,A0变A1.
有的芯片则是A0舍弃不用.

出0入0汤圆

 楼主| 发表于 2010-6-4 11:57:58 | 显示全部楼层
你是说用VC的A16接的RS,地址如下:
#define LCD_WR_REG(a)   {(*((volatile unsigned int *) 0x60000000)) = (a);}
#define LCD_WR_RAM(a)   {(*((volatile unsigned int *) 0x60010000)) = (a);}
这样是不正确的,应该是:
#define LCD_WR_REG(a)   {(*((volatile unsigned int *) 0x60000000)) = (a);}
#define LCD_WR_RAM(a)   {(*((volatile unsigned int *) 0x60020000)) = (a);}
对吗?下午烧写一下看看,谢谢aozima指点:)

出0入0汤圆

 楼主| 发表于 2010-6-9 14:14:10 | 显示全部楼层
搞定,硬件连接没有错误,软件设置错了两个地方:

1.是地址确实如aozima所说的,当配置成16bit时A16的地址如下:
///* LCD is connected to the FSMC_Bank1_NOR/SRAM1 and NE1 is used as ship select signal */
///* RS <==> A16      CMD:A16=0           DATA:A16=1 */
#define LCD_REG              (*((volatile unsigned short *) 0x60000000)) /* RS = 0 */
#define LCD_RAM              (*((volatile unsigned short *) 0x60020000)) /* RS = 1 */

2.是维信诺的OLED的S6E63D6配置寄存器错了一个,正确的如下:
   Write_Command(0x23); //0x23为8080-16bit,0x24为8080-8bit                 

   Write_Command(0x02);         //开启系统总线,不使用RGB Interface
   Write_Data(0x0000);          //
                                                 
   Write_Command(0x03);         
   Write_Data(0x0130);         //CLS=0:65K Color SS=1,AM=0,ID=11   此处开始设错了!

   Write_Command(0x10);
   Write_Data(0x0000);           //D0=1:Standby Mode

   Write_Command(0x0070);          //R
   Write_Data(0x2080);        //(0x2580);
   Write_Command(0x0071);          //G
   Write_Data(0x2200);        //(0x2780);
   Write_Command(0x0072);         //B
   Write_Data(0x2880);        //(0x3380);
   Write_Command(0x0073);          //R1 2
   Write_Data(0x2018);
   Write_Command(0x0074);          //R3 4
   Write_Data(0x1f19); //Write_Data(0x1f11);
   Write_Command(0x0075);          //G1 2
   Write_Data(0x2019);
   Write_Command(0x0076);          //G3 4
   Write_Data(0x1a18);
   Write_Command(0x0077);          //B1 2
   Write_Data(0x201a);
   Write_Command(0x0078);          //B3 4
   Write_Data(0x201a);

出0入0汤圆

发表于 2010-6-29 08:45:01 | 显示全部楼层
马克

出0入0汤圆

发表于 2011-5-7 14:50:51 | 显示全部楼层
回复【4楼】aureole XiaomaGee
-----------------------------------------------------------------------

mark

出0入0汤圆

发表于 2011-9-14 21:21:33 | 显示全部楼层
请问各位大侠! 谁用过维信诺的VGF160128B-S001
请教  焊接方法  和 驱动程序  我的邮箱:zhaochuanyu1982@sina.com
我的QQ:149233310
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-5-15 19:34

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表