//system_status_led GPIOB->DOUT ^=BIT15; //×¼±¸ÏÔʾµÄ³õʼ»¯´úÂ룬ÏÖÔÚ¿ÉÒÔ²»Óÿ¼ÂÇ SSD1963_WRITE_BLOCK(0X10,0X10); //ÃüÁîÅäÖÃÕýÈ·Óë·ñµÄ״̬µÆ GPIOB->DOUT &=~BIT8; DELAY(); //оƬID WRITE_SSD1963(0X00A1,SSD1963_COMMAND); M=READ_SSD1963(); N=READ_SSD1963(); C=READ_SSD1963(); if((M==0X0001)&&(N==0X0057)&&(C==0X0061)) GPIOB->DOUT |=BIT8;系统时钟初始化复制void SystemInit(void) { // UNLOCKREG(1); SYSCLK->PWRCON.XTL12M_EN = ENABLE; SYSCLK->PLLCON.FB_DV = 46; SYSCLK->PLLCON.IN_DV = 2; SYSCLK->PLLCON.OUT_DV = 3; //ÉèÖÃPLL±¶Æµµç·µÄʱÖÓԴΪÍⲿ16M¾§Õñ SYSCLK->PLLCON.PLL_SRC = 0; //ÉèÖÃPCLKʱÖÓÔ´µÄʱÖÓ³ýƵÊý SYSCLK->CLKDIV.HCLK_N = 0; //ʹÄÜPLLµç· SYSCLK->PLLCON.OE = 0; while((SYSCLK->CLKSTATUS.PLL_STB==1)&&(SYSCLK->CLKSTATUS.XTL12M_STB==1)); // SELECT PLLOUT AS HCLK_SOURCE 2 SYSCLK->CLKSEL0.HCLK_S = 2; //SELECT HCLK/2 AS SYSTICK SYSCLK->CLKSEL0.STCLK_S = 3; LOCKREG(0); }读写函数代码:复制void WRITE_SSD1963(unsigned short int PARAMETER, unsigned char D_C) { while(TE_LOW); switch(D_C) { case SSD1963_DATA : GPIOB->DOUT |= BIT6;//EBI_ALE_MASK *((volatile unsigned int *)(USER_EBI_BASE)) = PARAMETER ; break ; case SSD1963_COMMAND : GPIOB->DOUT &= ~BIT6;//~EBI_ALE_MASK *((volatile unsigned int *)(USER_EBI_BASE)) = PARAMETER ; break; default : ; } }复制unsigned short int READ_SSD1963(void) { return (*((volatile unsigned int *)(USER_EBI_BASE))); }新塘外部总线配置也贴出来:复制void EBI_CONFIG(void) { //½âËøÉÏËø¼Ä´æÆ÷ UNLOCKREG(1); //EBIʱÖÓ¿ªÆô SYSCLK->AHBCLK.EBI_EN = 1; //EBI FUNCTION ENABLE EBI->EBICON.ExtEN = 1; //EBI DATA_WIDTH = 16 EBI->EBICON.ExtBW16 = 1; //EBIÊä³öʱÖÓ·ÖÆµÆ÷ÉèÖà /*-0 48-1 24-2 12-3 6-4 3-5 1.5-*/ EBI->EBICON.MCLKDIV = 0; //Ëø´æÐźÅALE±£³Öʱ¼ä EBI->EBICON.ExttALE = 0; //INSERT IDLE AFTER READ EBI->EXTIME.ExtIR2R = 0X05; //INSERT IDLE AFTER WRITE EBI->EXTIME.ExtIW2X = 0X05; //ÉèÖ÷ÃÎʱ£³Öʱ¼ä EBI->EXTIME.ExttAHD = 0X01; //ÉèÖ÷ÃÎÊʱ¼ä EBI->EXTIME.ExttACC = 0X0F; //¼Ä´æÆ÷ÉÏËø LOCKREG(0); }比较纠结,我想问题还是应该出在EBI与SSD1963之间的通讯,求有过经历的前辈指教。多谢了
void SystemInit(void) { // UNLOCKREG(1); SYSCLK->PWRCON.XTL12M_EN = ENABLE; SYSCLK->PLLCON.FB_DV = 46; SYSCLK->PLLCON.IN_DV = 2; SYSCLK->PLLCON.OUT_DV = 3; //ÉèÖÃPLL±¶Æµµç·µÄʱÖÓԴΪÍⲿ16M¾§Õñ SYSCLK->PLLCON.PLL_SRC = 0; //ÉèÖÃPCLKʱÖÓÔ´µÄʱÖÓ³ýƵÊý SYSCLK->CLKDIV.HCLK_N = 0; //ʹÄÜPLLµç· SYSCLK->PLLCON.OE = 0; while((SYSCLK->CLKSTATUS.PLL_STB==1)&&(SYSCLK->CLKSTATUS.XTL12M_STB==1)); // SELECT PLLOUT AS HCLK_SOURCE 2 SYSCLK->CLKSEL0.HCLK_S = 2; //SELECT HCLK/2 AS SYSTICK SYSCLK->CLKSEL0.STCLK_S = 3; LOCKREG(0); }读写函数代码:复制void WRITE_SSD1963(unsigned short int PARAMETER, unsigned char D_C) { while(TE_LOW); switch(D_C) { case SSD1963_DATA : GPIOB->DOUT |= BIT6;//EBI_ALE_MASK *((volatile unsigned int *)(USER_EBI_BASE)) = PARAMETER ; break ; case SSD1963_COMMAND : GPIOB->DOUT &= ~BIT6;//~EBI_ALE_MASK *((volatile unsigned int *)(USER_EBI_BASE)) = PARAMETER ; break; default : ; } }复制unsigned short int READ_SSD1963(void) { return (*((volatile unsigned int *)(USER_EBI_BASE))); }新塘外部总线配置也贴出来:复制void EBI_CONFIG(void) { //½âËøÉÏËø¼Ä´æÆ÷ UNLOCKREG(1); //EBIʱÖÓ¿ªÆô SYSCLK->AHBCLK.EBI_EN = 1; //EBI FUNCTION ENABLE EBI->EBICON.ExtEN = 1; //EBI DATA_WIDTH = 16 EBI->EBICON.ExtBW16 = 1; //EBIÊä³öʱÖÓ·ÖÆµÆ÷ÉèÖà /*-0 48-1 24-2 12-3 6-4 3-5 1.5-*/ EBI->EBICON.MCLKDIV = 0; //Ëø´æÐźÅALE±£³Öʱ¼ä EBI->EBICON.ExttALE = 0; //INSERT IDLE AFTER READ EBI->EXTIME.ExtIR2R = 0X05; //INSERT IDLE AFTER WRITE EBI->EXTIME.ExtIW2X = 0X05; //ÉèÖ÷ÃÎʱ£³Öʱ¼ä EBI->EXTIME.ExttAHD = 0X01; //ÉèÖ÷ÃÎÊʱ¼ä EBI->EXTIME.ExttACC = 0X0F; //¼Ä´æÆ÷ÉÏËø LOCKREG(0); }比较纠结,我想问题还是应该出在EBI与SSD1963之间的通讯,求有过经历的前辈指教。多谢了
void WRITE_SSD1963(unsigned short int PARAMETER, unsigned char D_C) { while(TE_LOW); switch(D_C) { case SSD1963_DATA : GPIOB->DOUT |= BIT6;//EBI_ALE_MASK *((volatile unsigned int *)(USER_EBI_BASE)) = PARAMETER ; break ; case SSD1963_COMMAND : GPIOB->DOUT &= ~BIT6;//~EBI_ALE_MASK *((volatile unsigned int *)(USER_EBI_BASE)) = PARAMETER ; break; default : ; } }复制unsigned short int READ_SSD1963(void) { return (*((volatile unsigned int *)(USER_EBI_BASE))); }新塘外部总线配置也贴出来:复制void EBI_CONFIG(void) { //½âËøÉÏËø¼Ä´æÆ÷ UNLOCKREG(1); //EBIʱÖÓ¿ªÆô SYSCLK->AHBCLK.EBI_EN = 1; //EBI FUNCTION ENABLE EBI->EBICON.ExtEN = 1; //EBI DATA_WIDTH = 16 EBI->EBICON.ExtBW16 = 1; //EBIÊä³öʱÖÓ·ÖÆµÆ÷ÉèÖà /*-0 48-1 24-2 12-3 6-4 3-5 1.5-*/ EBI->EBICON.MCLKDIV = 0; //Ëø´æÐźÅALE±£³Öʱ¼ä EBI->EBICON.ExttALE = 0; //INSERT IDLE AFTER READ EBI->EXTIME.ExtIR2R = 0X05; //INSERT IDLE AFTER WRITE EBI->EXTIME.ExtIW2X = 0X05; //ÉèÖ÷ÃÎʱ£³Öʱ¼ä EBI->EXTIME.ExttAHD = 0X01; //ÉèÖ÷ÃÎÊʱ¼ä EBI->EXTIME.ExttACC = 0X0F; //¼Ä´æÆ÷ÉÏËø LOCKREG(0); }比较纠结,我想问题还是应该出在EBI与SSD1963之间的通讯,求有过经历的前辈指教。多谢了
unsigned short int READ_SSD1963(void) { return (*((volatile unsigned int *)(USER_EBI_BASE))); }新塘外部总线配置也贴出来:复制void EBI_CONFIG(void) { //½âËøÉÏËø¼Ä´æÆ÷ UNLOCKREG(1); //EBIʱÖÓ¿ªÆô SYSCLK->AHBCLK.EBI_EN = 1; //EBI FUNCTION ENABLE EBI->EBICON.ExtEN = 1; //EBI DATA_WIDTH = 16 EBI->EBICON.ExtBW16 = 1; //EBIÊä³öʱÖÓ·ÖÆµÆ÷ÉèÖà /*-0 48-1 24-2 12-3 6-4 3-5 1.5-*/ EBI->EBICON.MCLKDIV = 0; //Ëø´æÐźÅALE±£³Öʱ¼ä EBI->EBICON.ExttALE = 0; //INSERT IDLE AFTER READ EBI->EXTIME.ExtIR2R = 0X05; //INSERT IDLE AFTER WRITE EBI->EXTIME.ExtIW2X = 0X05; //ÉèÖ÷ÃÎʱ£³Öʱ¼ä EBI->EXTIME.ExttAHD = 0X01; //ÉèÖ÷ÃÎÊʱ¼ä EBI->EXTIME.ExttACC = 0X0F; //¼Ä´æÆ÷ÉÏËø LOCKREG(0); }比较纠结,我想问题还是应该出在EBI与SSD1963之间的通讯,求有过经历的前辈指教。多谢了
void EBI_CONFIG(void) { //½âËøÉÏËø¼Ä´æÆ÷ UNLOCKREG(1); //EBIʱÖÓ¿ªÆô SYSCLK->AHBCLK.EBI_EN = 1; //EBI FUNCTION ENABLE EBI->EBICON.ExtEN = 1; //EBI DATA_WIDTH = 16 EBI->EBICON.ExtBW16 = 1; //EBIÊä³öʱÖÓ·ÖÆµÆ÷ÉèÖà /*-0 48-1 24-2 12-3 6-4 3-5 1.5-*/ EBI->EBICON.MCLKDIV = 0; //Ëø´æÐźÅALE±£³Öʱ¼ä EBI->EBICON.ExttALE = 0; //INSERT IDLE AFTER READ EBI->EXTIME.ExtIR2R = 0X05; //INSERT IDLE AFTER WRITE EBI->EXTIME.ExtIW2X = 0X05; //ÉèÖ÷ÃÎʱ£³Öʱ¼ä EBI->EXTIME.ExttAHD = 0X01; //ÉèÖ÷ÃÎÊʱ¼ä EBI->EXTIME.ExttACC = 0X0F; //¼Ä´æÆ÷ÉÏËø LOCKREG(0); }比较纠结,我想问题还是应该出在EBI与SSD1963之间的通讯,求有过经历的前辈指教。多谢了
Touch.pdf
2013-10-14 16:15 上传
点击文件名下载附件
1.32 MB, 阅读权限: 20, 下载次数: 32
硬件原理图
收藏0 举报
读取的SSD1963前三个ID参数
查看全部评分
奔跑的牛 发表于 2013-10-14 17:08 SSD1963 那边硬件可以 选择数据是8bit 16bit 还是24bit的 跟NUC这边一致 ID读取正确 就可以了。 ...
奔跑的牛 发表于 2013-10-14 23:41 1.SSD1963数据位数 是有硬件可以控制的 2.ID中的 01 61 你已经读出来了,证明控制信号 时序都没问题。
缥缈九哥 发表于 2013-10-15 11:55 有关EBI可以 看看我博客。http://blog.163.com/yuan_xihua/ ,有驱动ILI9327的。 ...
本版积分规则 发表回复 回帖并转播 回帖后跳转到最后一页
人才类勋章
时间类勋章
发帖类勋章
等级类勋章
11
557
0
扫码关注 21ic 官方微信
扫码关注嵌入式微处理器
扫码关注电源系统设计
扫码关注21ic项目外包
扫码浏览21ic手机版
本站介绍 | 申请友情链接 | 欢迎投稿 | 隐私声明 | 广告业务 | 网站地图 | 联系我们 | 诚聘英才
京公网安备 11010802024343号