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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 4121|回復: 8
打印 上一主題 下一主題
收起左側

求助!stm32f103c8t6驅動12864串行顯示但沒有顯示

[復制鏈接]
跳轉到指定樓層
樓主
stm32f103c8t6單片機,lcd12864液晶顯示屏
用st-link下載程序后,顯示屏不顯示“welcome” (程序要求顯示welcome)
有大佬幫忙解答一下嗎? 謝謝!

接線:
#define LCD_GPIO   GPIOA
#define LCD_EN     PAout(2)
#define LCD_RW     PAout(1)
#define LCD_RS     PAout(0


下面是lcd12864.c函數

#include "lcd12864.h"
void delay20ms()
{
        unsigned int i = 50;
        while(i)
        {
                i = i - 1;
        }
}

void LCD12864_int(void)
{
          GPIO_Configuration();
                // the initial delay time i make it all the same
                //初始化命令之間的延時所有定義為最長延時,20ms 手冊上說是10 ms
                //這個延時可能會有點怪,我是為了后面還有作用,測試他的極限延時,
                send_cmd(0x34)        ;
                delay20ms();
                send_cmd(0x30)        ;
                delay20ms();
                send_cmd(0x0c)        ;
                delay20ms();
                send_cmd(0x01)        ;
                delay20ms();
                send_cmd(0x06)        ;
                delay20ms();
}
//指定在液晶的哪一行顯示  
void LCD12864_Pos(unsigned char x, unsigned char y)
{
        unsigned char pos = 0;
        send_cmd(0x30);                                                //這里是最重要的                                                                                                //,不同的功能切換的時候事先一定要聲明是在哪個模式下的命令
        if(x == 0)
                x = 0x80;
        else if(x == 1)
                x = 0x90;
        else if(x == 2)
                x = 0x88;
        else if(x == 3)
                x = 0x98;
       
        pos = x + y;
        send_cmd(pos);
}

//顯示一個數據函數
void show_word(unsigned char ch)
{
        unsigned char data;                                                                                                                //發送數據,也是要分三個字節來發送,注意這次是fa開頭,是發送,且發送的是數據的意思      
        LCD_RS=1;
        data = ch;
        spi_function(0x0fa);
        spi_function(data & 0xf0);
        spi_function( (data << 4) & 0xf0);
        LCD_RS=0;       
}

void GPIO_Configuration()
{
                GPIO_InitTypeDef GPIO_InitStructure;
                RCC_APB2PeriphClockCmd( RCC_APB2Periph_GPIOA, ENABLE);
          GPIO_InitStructure.GPIO_Pin = LCD_EN | LCD_RW        | LCD_RS        ;
          GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;      
          GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
          GPIO_Init(LCD_GPIO, &GPIO_InitStructure);
                GPIO_SetBits(LCD_GPIO, LCD_EN | LCD_RW        | LCD_RS);         // turn off all led
}

//其實這貨是不是100us,我是沒算過,隨便給它個數值,讓他自己玩兒去。
void delay100us(void)
{
        unsigned int i = 50;
        while(i)
        {
                i = i - 1;
        }
}
void spi_function(unsigned char del)
{
        unsigned char i = 8 , data;
        data = del;
        LCD_EN=1;                                                                //每次發送的數據或者命令的話,都先拉高時鐘線和數據線
        LCD_RW=1;
        delay100us();
        while(i)
        {
                if(data & 0x80)
                        LCD_RW=1;
                else
                        LCD_RW=0;
                delay100us();
                LCD_EN = 0;                                                        //時鐘線拉高,延時一段時間再拉低,拉低意味著數據線上的數據要被12864鎖存了
                delay100us();
                delay100us();
                LCD_EN=1;
                delay100us();       
                data = data << 1;
                i = i -1;       
        }
}

void send_cmd(unsigned char com)                                                                                //發送命令,分三個字節發送,注意第一個字節哦,f8,是指發送動作,且是發送命令
{
        unsigned char data;
        LCD_RS=1;
        data = com;
        spi_function(0x0f8);
        spi_function(data & 0xf0);
        spi_function( (data << 4) & 0xf0);
        LCD_RS=0;
}



void LCD12864_write(unsigned char cmd,unsigned char dat)
{
        unsigned char data;                                                                                                                //發送數據,也是要分三個字節來發送,注意這次是fa開頭,是發送,且發送的是數據的意思
        LCD_RS=1;
        data = dat;
        if(cmd!=0) spi_function(0x0fa);
        else              spi_function(0x0f8);
        spi_function(data & 0xf0);
        spi_function( (data << 4) & 0xf0);
        LCD_RS=0;       
}


void LCD12864_writebyte(unsigned char *prointer)                               
{
    while(*prointer!='\0')
    {
        LCD12864_write(1,*prointer);
        prointer++;
    }
}

void LCD12864_clear(void)
{
    send_cmd(0x01);                        //清屏指令
                delay_ms(2);       
}

51hei圖片_20200421113032.jpg (1.34 MB, 下載次數: 117)

51hei圖片_20200421113032.jpg

952058.JPG (151.23 KB, 下載次數: 115)

952058.JPG

lcd12864接口圖.JPG (37.46 KB, 下載次數: 133)

lcd12864接口圖.JPG
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

沙發
ID:687324 發表于 2020-4-25 12:20 | 只看該作者
樓主,現在能行了嗎?我也遇到了同樣的問題。。。
回復

使用道具 舉報

板凳
ID:592807 發表于 2020-4-25 19:04 | 只看該作者
spi初始化呢?
回復

使用道具 舉報

地板
ID:505153 發表于 2020-10-16 17:14 | 只看該作者
引腳需要接1k上啦   psb接地不接地都行
回復

使用道具 舉報

5#
ID:414556 發表于 2020-10-16 19:16 | 只看該作者
調一下對比度看看,有時候程序對不顯示就是對比度沒調好.
回復

使用道具 舉報

6#
ID:160500 發表于 2020-10-16 20:18 | 只看該作者
        RST_1;
        delay_us(10);
        RST_0;
        delay_us(20);
        RST_1;
        delay_us(10);
        write_com(0x30);//30---基本指令動作
        HAL_Delay(5);
        write_com(0x30);//30---基本指令動作
        HAL_Delay(5);
        write_com(0x0c);//開顯示,關游標
        HAL_Delay(5);
  slcdCls();//清屏,地址指針指向 00H
        write_com(0x03);
        HAL_Delay(10);

貼一段我的初始化
回復

使用道具 舉報

7#
ID:160500 發表于 2020-10-16 20:23 | 只看該作者
運行中的圖片

51hei圖片_20201016202209.jpg (105.21 KB, 下載次數: 124)

51hei圖片_20201016202209.jpg
回復

使用道具 舉報

8#
ID:476699 發表于 2020-10-16 20:30 | 只看該作者
片選,讀寫這些引腳都不用接個上拉的嗎?
回復

使用道具 舉報

9#
ID:819974 發表于 2020-12-23 20:50 | 只看該作者

能分享程序嗎?
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 国产在线一区二区三区 | 黄色片a级 | 国产精品视频一二三区 | 成人高清在线 | 四虎精品在线 | 一区二区三区精品视频 | 91在线观看免费视频 | 免费一区二区三区 | 中文字幕av免费 | 欧美一级欧美一级在线播放 | 美女人人操 | 国产成人在线播放 | 欧美一级片在线播放 | 免费毛片网站 | 国产一区视频在线 | 日本成人中文字幕在线观看 | 久久aⅴ乱码一区二区三区 亚洲国产成人精品久久久国产成人一区 | 免费午夜视频在线观看 | 久久精品一区二区视频 | av中文字幕在线 | 九九国产在线观看 | 国产视频福利 | 手机av在线 | 成人免费视频网址 | 亚州毛片 | 欧美午夜精品 | 日本精品一区二区 | 中文字幕av高清 | 看片91| 亚洲国产视频一区 | 日韩一级免费 | 天天拍夜夜爽 | 大象一区 | 精品国产免费一区二区三区演员表 | 在线观看黄免费 | 日韩视频在线播放 | 一级看片免费视频囗交动图 | 精品日韩一区二区 | av黄色在线观看 | 国产农村妇女精品一二区 | 色视频网站免费 |