久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 4298|回復: 0
收起左側

移植正點原子觸摸屏實驗

[復制鏈接]
ID:512434 發表于 2019-12-30 21:15 | 顯示全部樓層 |閱讀模式
      本帖是為了記錄我把正點原子觸摸屏移植到自己做的STM板子上,移植前我是參考的野火和正點原子的觸摸屏實驗視頻教程。我自己做的板子和野火正點原子的芯片都是一樣的,都是STM32F103的芯片,但是就算芯片一樣,我移植的時候也是費了很大的勁。
       我先看的是野火的觸摸屏實驗教程,可是我原理大概看懂了之后發現還是對觸摸屏實驗似懂非懂,所以我就去看了正點原子的視頻,正點原子觸摸屏實驗比野火的簡單了許多(我自己的理解),所以我就準備移植正點原子的觸摸屏實驗。我先把正點原子的觸摸屏驅動拷貝到我的工程里,我的STM開發板已經打通了液晶的驅動,我再液晶的工程上新建了一個touch文件夾里面存放了正點原子的觸摸屏驅動。對正點原子驅動的更改主要如下。
//電阻/電容屏芯片連接引腳          
#define PEN                  PAin(8)                // INT
#define DOUT                 PBin(14)                 //  MISO
#define TDIN                 PBout(15)            // MOSI
#define TCLK                 PBout(13)            //  SCLK
#define TCS                  PBout(12)            //  CS


這一步主要是更改Touch。h文件中的我自己開發板芯片連接的GPIO引腳。

//觸摸屏初始化                      
//返回值:0,沒有進行校準
//       1,進行過校準
u8 TP_Init(void)
{       
        if(lcddev_id==0X5510)                                //4.3寸電容觸摸屏//************************************************************************
        {

                return 0;
        }else if(lcddev_id==0X1963)                        //7寸電容觸摸屏
        {

                return 0;
        }else
        {
          GPIO_InitTypeDef  GPIO_InitStructure;

                //注意,時鐘使能之后,對GPIO的操作才有效
                //所以上拉之前,必須使能時鐘.才能實現真正的上拉輸出
                   
                 RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB|RCC_APB2Periph_GPIOA, ENABLE);         //使能PB,PF端口時鐘
               
                GPIO_InitStructure.GPIO_Pin = GPIO_Pin_13;                                 // PB1端口配置
                 GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;                  //推挽輸出
                 GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
                 GPIO_Init(GPIOB, &GPIO_InitStructure);//B1推挽輸出
                 GPIO_SetBits(GPIOB,GPIO_Pin_13);//上拉
               
                GPIO_InitStructure.GPIO_Pin = GPIO_Pin_14;                                 // PB2端口配置
                 GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU;                  //上拉輸入
                 GPIO_Init(GPIOB, &GPIO_InitStructure);//B2上拉輸入
                 GPIO_SetBits(GPIOB,GPIO_Pin_14);//上拉               
               
                GPIO_InitStructure.GPIO_Pin = GPIO_Pin_12|GPIO_Pin_15;                                 // F9,PF11端口配置
                 GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;                  //推挽輸出
                 GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
                 GPIO_Init(GPIOB, &GPIO_InitStructure);//PF9,PF11推挽輸出
                 GPIO_SetBits(GPIOB, GPIO_Pin_12|GPIO_Pin_15);//上拉
               
                GPIO_InitStructure.GPIO_Pin = GPIO_Pin_8;                                 // PF10端口配置
                 GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU;                  //上拉輸入
                 GPIO_Init(GPIOA, &GPIO_InitStructure);//PF10上拉輸入
                 GPIO_SetBits(GPIOA,GPIO_Pin_8);//上拉               

                TP_Read_XY(&tp_dev.x[0],&tp_dev.y[0]);//第一次讀取初始化         
                I2C_EE_Init();                        //初始化24CXX
                if(TP_Get_Adjdata())return 0;//已經校準
                else                                          //未校準?
                {                                                                                     
                        LCD_Clear(White);        //清屏//************************************************************************
                        TP_Adjust();                  //屏幕校準  
                }                       
                TP_Get_Adjdata();       
        }
        return 1;                                                                          
}
這里是對觸摸屏初始化修改,前面如if(lcddev_id==0X5510)等的判斷都是對液晶屏的選擇,我移植使用的是電阻屏,所以把這些都刪除了。而且lcddev_id本來是正點原子對液晶定義的結構體變量,我之前沒有使用正點原子的液晶驅動是我自己的,所以我在touch。c文件前定義了這個變量,并且直接賦值。

u16 lcddev_id = 0;
u16 lcddev_dir = 1;

其它的函數,凡是關于液晶的畫點等的都把函數改為自己的液晶驅動函數,這樣基本可以實現觸摸屏實驗了。

評分

參與人數 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎勵!

查看全部評分

回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 91素人 | 国产91中文 | 精品国产免费人成在线观看 | 奇米av| 亚洲九九| 97精品国产 | www亚洲精品| 男人天堂免费在线 | 高清一区二区三区 | 欧美一区二区三区高清视频 | 91精品国产91久久久久久密臀 | 国产午夜精品视频 | 精品乱码一区二区三四区 | 亚洲欧美综合 | 日韩av一区二区在线观看 | 日韩欧美国产不卡 | www日本高清 | 午夜精品一区二区三区在线 | 亚洲视频免费在线观看 | 一区二区在线不卡 | 日韩中文在线视频 | 国产一区二区自拍 | 情侣酒店偷拍一区二区在线播放 | 波多野结衣一区二区三区 | 成人二区| 日韩免费福利视频 | www.久久久.com | 国产区精品在线观看 | 欧日韩在线 | 亚洲视频一区 | 日韩精品在线播放 | 91久久精品国产免费一区 | 一呦二呦三呦国产精品 | 中文在线视频 | 免费v片 | 国产精品永久免费视频 | 中文字幕1区 | 久久99久久98精品免观看软件 | 国产黄色在线 | 亚洲成人在线免费 | 成人久久 |