新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > STM8學習筆記(三):GPIO操作

        STM8學習筆記(三):GPIO操作

        作者: 時間:2016-11-24 來源:網絡 收藏
        乘著有時間,把有關GPIO的應用也順便弄了

        主要是各種液晶吧,手上正好有1602的液晶,12864的液晶,主控芯片是s6b0108的

        本文引用地址:http://www.104case.com/article/201611/320893.htm

        不帶字庫,還有上次買的一個2.4寸的TFT彩屏,320*240的,主控芯片是ILI9325的

        因為之前用51和STM32都驅動過,所以這次就沒寫什么,只是簡單的移植了

        下面只是最簡單的底層驅動

        /*************************TFT*************************/

        /*************************************************************
        函數名稱:LCD_Write_Cmd
        功 能:寫命令函數
        參 數:DH:高八位
        DL:低八位
        返 回 值:無
        說 明:無
        *************************************************************/

        void LCD_Write_Cmd(unsigned char DH,unsigned char DL)
        {
        LCD_CS0;
        LCD_RS0;
        GPIO_Write(LCD_DataBus,0xff);
        GPIO_Write(LCD_DataBus,DH);
        LCD_RW0;
        LCD_RW1;
        GPIO_Write(LCD_DataBus,0xff);
        GPIO_Write(LCD_DataBus,DL);
        LCD_RW0;
        LCD_RW1;
        LCD_CS1;
        }

        /*************************************************************
        函數名稱:LCD_Write_Data
        功 能:寫數據函數
        參 數:DH:高八位
        DL:低八位
        返 回 值:無
        說 明:無
        *************************************************************/

        void LCD_Write_Data(unsigned char DH,unsigned char DL)
        {
        LCD_CS0;
        LCD_RS1;
        GPIO_Write(LCD_DataBus,0xff);
        GPIO_Write(LCD_DataBus,DH);
        LCD_RW0;
        LCD_RW1;
        GPIO_Write(LCD_DataBus,0xff);
        GPIO_Write(LCD_DataBus,DL);
        LCD_RW0;
        LCD_RW1;
        LCD_CS1;
        }

        /*********************12864*****************************/

        void LCD_WriteCmd(u8 Dat)
        {
        LCD_RS0;
        LCD_RW0;
        delayus(1);
        LCD_ENABLE1;
        delayus(1);
        GPIO_Write(LCD_DataBus,0xff);
        GPIO_Write(LCD_DataBus,Dat);
        delayus(1);
        LCD_ENABLE0;
        delayus(1);
        }

        void LCD_WriteData(u8 Dat)
        {
        LCD_RS1;
        LCD_RW0;
        delayus(1);
        LCD_ENABLE1;
        delayus(1);
        GPIO_Write(LCD_DataBus,0xff);
        GPIO_Write(LCD_DataBus,Dat);
        delayus(1);
        LCD_ENABLE0;
        delayus(1);
        }

        /*******************1602********************/

        /******************************************************************/
        /* 寫入命令函數 */
        /******************************************************************/
        void LCD_WriteCmd(unsigned char cmd)
        {
        LCD_DelayMs(5);//操作前短暫延時,保證信號穩定
        LCD_EA_L;
        LCD_RS_L;
        LCD_RW_L;

        LCD_EA_H;
        GPIO_Write(LCD_BUS,cmd);
        LCD_EA_L;
        }
        /******************************************************************/
        /* 寫入數據函數 */
        /******************************************************************/
        void LCD_WriteData(unsigned char dat)
        {
        LCD_DelayMs(5); //操作前短暫延時,保證信號穩定
        LCD_EA_L;
        LCD_RS_H;
        LCD_RW_L;

        LCD_EA_H;
        GPIO_Write(LCD_BUS,dat);
        LCD_EA_L;
        LCD_RS_L;
        }

        /*************************************************************



        評論


        技術專區

        關閉
        主站蜘蛛池模板: 石楼县| 锦屏县| 建始县| 蕉岭县| 平遥县| 通渭县| 崇阳县| 准格尔旗| 江华| 屯留县| 上栗县| 桐城市| 永靖县| 清徐县| 剑河县| 晴隆县| 葵青区| 宜宾市| 深圳市| 宜黄县| 明水县| 河北省| 新竹县| 武鸣县| 宁武县| 察雅县| 潜山县| 乐亭县| 汉川市| 灵丘县| 阳西县| 平陆县| 罗江县| 开原市| 英山县| 兴安县| 泽库县| 观塘区| 元朗区| 台安县| 阿拉善左旗|