3401|4

4

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

stm32F103+240128(川航T6963,无字库)的显示不行 [复制链接]

哪位做过stm32F103+240128(川航T6963,无字库)的显示,最近一直在点屏幕,三天了还是没能点亮,有哪位大神做过,可否发一份demo,参考一下不胜感激!!!!!!

最新回复

先试试刷整屏,清屏,画点  详情 回复 发表于 2017-4-4 09:27
 
点赞 关注

回复
举报

4

帖子

0

TA的资源

一粒金砂(初级)

沙发
 
就在刚刚出现了一连串的乱码,估计是时序不大对[img][/img]

微信图片_20170403222226.jpg (114.74 KB, 下载次数: 10)

微信图片_20170403222226.jpg
 
 

回复

831

帖子

5

TA的资源

一粒金砂(高级)

板凳
 
先试试刷整屏,清屏,画点
 
 
 

回复

4

帖子

0

TA的资源

一粒金砂(初级)

4
 
#include "240128.h" 部分定义文件

#define SET_T6963_RST    GPIO_SetBits(GPIOA, GPIO_Pin_8)
#define CLR_T6963_RST    GPIO_ResetBits(GPIOA, GPIO_Pin_8)
//H命令选择端 L数据选择端
define SET_T6963_CD     GPIO_SetBits(GPIOC, GPIO_Pin_9)
#define CLR_T6963_CD     GPIO_ResetBits(GPIOC, GPIO_Pin_9)
//写数据 上升沿锁存
#define SET_T6963_WR     GPIO_SetBits(GPIOC, GPIO_Pin_6)
#define CLR_T6963_WR     GPIO_ResetBits(GPIOC, GPIO_Pin_6)
//读数据 低电平有效
#define SET_T6963_RD     GPIO_SetBits(GPIOC, GPIO_Pin_7)
#define CLR_T6963_RD     GPIO_ResetBits(GPIOC, GPIO_Pin_7)
//CS 使能IC信号 低电平激活IC
#define SET_T6963_CE      GPIO_SetBits(GPIOC, GPIO_Pin_8)
#define CLR_T6963_CE      GPIO_ResetBits(GPIOC, GPIO_Pin_8)

#define T6963_RST_OUT    PAout(8)
#define T6963_RST_IN     PAin(8)
#define T6963_CD_OUT           PCout(9)
#define T6963_WR_OUT           PCout(6)
#define T6963_RD_OUT           PCout(7)

#define PAout(n)   BIT_ADDR(GPIOA_ODR_Addr,n)
#define PAin(n)    BIT_ADDR(GPIOA_IDR_Addr,n)  

#define PBout(n)   BIT_ADDR(GPIOB_ODR_Addr,n)  
#define PBin(n)    BIT_ADDR(GPIOB_IDR_Addr,n)   

#define PCout(n)   BIT_ADDR(GPIOC_ODR_Addr,n)  
#define PCin(n)    BIT_ADDR(GPIOC_IDR_Addr,n)  

#define PDout(n)   BIT_ADDR(GPIOD_ODR_Addr,n)  
#define PDin(n)    BIT_ADDR(GPIOD_IDR_Addr,n)  

#define  SETDATAPORT_IN   Set_GPIOD_Input()
void Set_GPIOD_Input(void);
                                               
#define  SETDATAPORT_OUT  Set_GPIOD_Output()
void Set_GPIOD_Output(void);

#define READLCDDATA         (u8)(((GPIO_ReadInputData(GPIOD))>>8) &0xFF) //读L240128数据
#define WRITELCDDATA(N)        (GPIO_Write(GPIOD,(GPIO_ReadInputData(GPIOD)&0x0000ffff)|(N<<8)))//写数据 到L240128

"240128.C主要代码"
/************************************************************
                             设置GPIOD P.8-P.15为输入模式
*************************************************************/
void  Set_GPIOD_Input(void)
{
  GPIO_InitTypeDef GPIO_InitStructure;  
  GPIO_InitStructure.GPIO_Pin = GPIO_Pin_8 | GPIO_Pin_9 |GPIO_Pin_10 |GPIO_Pin_11 |GPIO_Pin_12 |GPIO_Pin_13 |GPIO_Pin_14 |GPIO_Pin_15;
//  GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; //GPIO_Speed_50MHz;
  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;
  GPIO_Init(GPIOD, &GPIO_InitStructure);
}
/************************************************************
                             设置GPIOD P.8-P.15为输出模式
*************************************************************/
void Set_GPIOD_Output(void)
{
  GPIO_InitTypeDef GPIO_InitStructure;
  GPIO_InitStructure.GPIO_Pin = GPIO_Pin_8 | GPIO_Pin_9 |GPIO_Pin_10 |GPIO_Pin_11 |GPIO_Pin_12 |GPIO_Pin_13 |GPIO_Pin_14 |GPIO_Pin_15;
  GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_OD; //GPIO_Mode_Out_PP;
  GPIO_Init(GPIOD, &GPIO_InitStructure);
}
/*******************************************************************************

*******************************************************************************/
void LCD_Configuration(void)
{
        GPIO_InitTypeDef GPIO_InitStructure;
       
        /* Enable GPIOD and GPIOE clocks */
        RCC_APB2PeriphClockCmd( RCC_APB2Periph_GPIOA|RCC_APB2Periph_GPIOC|RCC_APB2Periph_GPIOD, ENABLE);  
       
        /PD.8(D0), PE.9(D1), PD.10(D2), PD.11(D3), PD.12(D4), PD.13(D5), PD.14(D6), PD.15(D7)   */
        GPIO_InitStructure.GPIO_Pin = GPIO_Pin_8 | GPIO_Pin_9 |GPIO_Pin_10 |GPIO_Pin_11 |GPIO_Pin_12 |GPIO_Pin_13 |GPIO_Pin_14 |GPIO_Pin_15;
        GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
        GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_OD; //GPIO_Mode_Out_PP;
        GPIO_Init(GPIOD, &GPIO_InitStructure);

        /* PC.7(RD), PC.9(CD), PC.8(CE), PC.6(WR) */
        GPIO_InitStructure.GPIO_Pin = GPIO_Pin_6|GPIO_Pin_7|GPIO_Pin_8|GPIO_Pin_9;
        GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
        GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
        GPIO_Init(GPIOC, &GPIO_InitStructure);

        /*  PA.8(RST) */
        GPIO_InitStructure.GPIO_Pin = GPIO_Pin_8;
        GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
        GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
        GPIO_Init(GPIOA, &GPIO_InitStructure);
}
/*  延时函数 */
static void delay(uint n)
{
        while(n--);
}

/**T6963C初始化**/
extern void SysLCD240128_DefinePortDrictionProc(void)
{

//CLR_T6963_RST;
//delay_ms(20);       
          SET_T6963_RST;
//delay_ms(20);       
          if (LCD240128TYPE == 0)
          {
                  T6963_RST_OUT;
          }
          else if (LCD240128TYPE == 1)
          {
                  T6963_RST_IN;
          }
       
          T6963_CD_OUT;
          T6963_RD_OUT;
          T6963_WR_OUT;

          WRITELCDDATA(0xFF);
          SETDATAPORT_OUT;
}

extern void LCD_PortInit(void)
{
        SysLCD240128_DefinePortDrictionProc();

        if (LCD240128TYPE == 0)
        {
                CLR_T6963_RST;
                delay_ms(50);
                SET_T6963_RST;
                delay_ms(20);
        }
        else if (LCD240128TYPE == 1)
        {
                delay_ms(25);
        }

        SET_T6963_CD; //L数据选择短  ,H命令选择端
        SET_T6963_RD; //读数据 低电平有效
        SET_T6963_WR; //写数据  上升沿 锁存
        CLR_T6963_CE; //CEà-μí ê1ÄüICDÅoÅ  μíμçƽ¼¤»îIC
}


/************************************************************
                                        写数据               
*************************************************************/
static void WriteData(BYTE nData)
{
         
          WRITELCDDATA(0xFF);
       
                SETDATAPORT_OUT; //数据口设置成输出口
                WRITELCDDATA(0);

                CLR_T6963_CD;//L数据选择短  ,H命令选择端
                CLR_T6963_CE;               
                SET_T6963_RD;//读数据 低电平有效
       
                delay(18);
                CLR_T6963_WR;//写数据  上升沿 锁存

                WRITELCDDATA(nData);
                delay(20);//Ô-à′10       
                SET_T6963_WR;//写数据  上升沿 锁存
                SET_T6963_CE ;//使能拉低  低电平拉低激活IC
                 //delay(3);       
               SET_T6963_CD;       

}
/************************************************************
                                         写命令
*************************************************************/
static void WriteCmdParamProc(BYTE nCmd)
{
                SETDATAPORT_OUT;  //数据口设置成输出口
                WRITELCDDATA(0);

                SET_T6963_CD;        //L数据选择短  ,H命令选择端

                CLR_T6963_CE;       
                SET_T6963_RD;  //读数据 低电平有效
//           delay(6);//Ô-à′2
                CLR_T6963_WR; //写数据  上升沿 锁存
//delay(5);//               
                WRITELCDDATA(nCmd) ;
                delay(4);//
                SET_T6963_WR; //写数据  上升沿 锁存
                SET_T6963_CE ;
//SET_T6963_RD ;
                SET_T6963_CD;        //L数据选择短  ,H命令选择端

}
/************************************************************
                                                 读状态
*************************************************************/
static BYTE ReadStatusProc(void)
{
            BYTE nStatus;
            WRITELCDDATA(0xff);

            SETDATAPORT_IN;   //数据口设置成输入口

            SET_T6963_CD;//L数据选择短  ,H命令选择端
            delay(2); //
//CLR_T6963_CE;
//SET_T6963_WR; //写数据  上升沿 锁存
           SET_T6963_RD;//读数据 低电平有效
//            CLR_T6963_RD;//读数据 低电平有效
  delay(2); //Ô-à′10       
            nStatus = READLCDDATA;
//            SET_T6963_RD;//读数据 低电平有效
CLR_T6963_RD;//读数据 低电平有效
        return nStatus;
}
/************************************************************
                                                读数据
*************************************************************/
static BYTE ReadDataCmd()
{
        uchar nRdData;
        if (CheckStatusBit01() == 0)
        {
                return 1;         //获取状态 如果错返回1
        }
         //禁用上拉
         WRITELCDDATA(0xff);
       
         SETDATAPORT_IN;    //数据口为输入
       
SET_T6963_CD;//L数据选择短  ,H命令选择端
delay(2); //Ô-à′10

         CLR_T6963_RD;//读数据 低电平有效
delay(2); //Ô-à′10               
         nRdData = READLCDDATA;
//SET_T6963_WR;       
         SET_T6963_RD; //读数据 低电平有效
//         SET_T6963_CD; //L数据选择短  ,H命令选择端

        return nRdData;        //返回数据
}
/************************************************************
                                         测忙
*************************************************************/
static BYTE CheckStatusBit01(void)
{
          uichar i, nLCM_CW;
          SETDATAPORT_IN;
       
SET_T6963_RST ;
//        CLR_T6963_RST;
          SET_T6963_CD; //H命令选择端,L数据选择端  
          delay(4); //
CLR_T6963_CE;
//          SET_T6963_WR;         //写数据  上升沿 锁存
//delay(6); //Ô-à′2
          CLR_T6963_RD;    //读数据 低电平有效
delay(4); //
       
        for (i=CHECKSTATUSCOUNT; i>0; i--)   连续查询10次
        {
                nLCM_CW = ReadStatusProc();

                if ((nLCM_CW & 0x03) == 0x03)                // 读取状态S1, S0
                        break;
        }
        SET_T6963_RD; //读数据 低电平有效
       
        return i;//加入返回0, Err
}


 
 
 

回复

4

帖子

0

TA的资源

一粒金砂(初级)

5
 
18396803021 发表于 2017-4-4 11:08
#include "240128.h" 部分定义文件

#define SET_T6963_RST    GPIO_SetBits(GPIOA, GPIO_Pin_8)
#defin ...

哪位方便给看下哪里有错误
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/9 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表