• 大小: 8KB
    文件类型: .zip
    金币: 1
    下载: 0 次
    发布日期: 2021-06-03
  • 语言: 其他
  • 标签: STM32  

资源简介

STM32采用并口、串口驱动12864,根据STM32的资源配置,任选两种方式都可以!

资源截图

代码片段和文件信息

#include 	   
#include “12864.h“
#include “delay.h“

void LCD12864_Init(void)
{
GPIO_InitTypeDef  GPIO_InitStructure;
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA ENABLE);
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_3|GPIO_Pin_4|GPIO_Pin_5;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; 
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init(GPIOA &GPIO_InitStructure);

GPIO_InitStructure.GPIO_Pin = GPIO_Pin_11;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_OD; 
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init(GPIOA &GPIO_InitStructure);

delay_init();
/*--------------------LCD基本指令-----------------------*/
    delay_ms(2);
    Write_LCD_Command(0x30);  //30--基本指令动作
    delay_ms(2);
    Write_LCD_Command(0x0c);  //光标右移画面不动
    delay_ms(2);
    Write_LCD_Command(0x01);  //清屏
    delay_ms(5);              //清屏时间较长
    Write_LCD_Command(0x06);  //显示打开,光标开,反白关
    delay_ms(2);

Draw_Clear(); // 清屏

}
/*********************************************************
函数名:Send_Byte()
返回值:无
功  能: 写数据到LCD
*********************************************************/
void Send_Byte(u8 zdata)
{
  u16 i;
  for(i=0; i<8; i++)
    {
  if((zdata << i) & 0x80) 
SID_H;
  else   
SID_L;
  SCLK_H;
SCLK_L;
  }
}
/*********************************************************
函数名:Receive_Byte()
返回值:temp1+temp2
功  能: 读LCD数据
*********************************************************/
u8 Receive_Byte(void)
{
   u8 itemp1temp2value;
   temp1=0;
   temp2=0;
   for(i=0;i<8;i++)
      {
    temp1=temp1<<1;
    SCLK_L;
 SCLK_H;
    SCLK_L;
 if(PAout(7)==1)
   {
     temp1++;
}
  }
   for(i=0;i<8;i++)
      {
    temp2=temp2<<1;
    SCLK_L;
 SCLK_H;
    SCLK_L;
 if(PAout(7)==1)
   {
      temp2++;
   }
  }
      temp1=0xf0&temp1;
  temp2=0x0f&temp2;
  value=temp1+temp2;
       return   value ;
}
/*********************************************************
函数名:Check_Busy()
返回值:无
功  能: LCD忙检查
*********************************************************/
void Check_Busy(void)
{
do
Send_Byte(0xfc);   //11111RW(1)RS(0)0
while(0x80&Receive_Byte());
}
/*********************************************************
函数名: Write_LCD_Command()
返回值:无
功  能: 写命令到LCD
*********************************************************/
void Write_LCD_Command(u8 cmdcode)

   
   CS_H;
   Check_Busy();
   Send_Byte(0xf8);
   Send_Byte(cmdcode & 0xf0);
   Send_Byte((cmdcode << 4) & 0xf0);
   delay_ms(2);
   CS_L;
}
/*********************************************************
函数名: Write_LCD_Data()
返回值:无
功  能: 写显示内容到LCD
*********************************************************/
void Write_LCD_Data(u8 Dispdata)
{  
  CS_H;
  Check_Busy();
  Send_Byte(0xfa);   //11111RW(0)RS(1)0
  Send_Byte(Dispdata & 0xf0);
  Send_Byte((Dispdata << 4) & 0xf0);
  delay_ms(2);
  CS_L;
}
/*****

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2017-03-23 17:24  12864\12864\
     目录           0  2017-07-28 14:57  12864\12864\串行\
     文件       10945  2017-05-15 16:21  12864\12864\串行\12864.c
     文件        1235  2017-05-15 16:22  12864\12864\串行\12864.h
     目录           0  2017-03-23 17:24  12864\12864\并行\
     文件        8094  2017-03-22 11:26  12864\12864\并行\display12864.c
     文件        1388  2016-09-08 09:18  12864\12864\并行\display12864.h
     目录           0  2019-03-07 14:39  12864\

评论

共有 条评论