主函数
[mw_shl_code=c,true]const unsigned char line1[]={"温度:"};
const unsigned char line2[]={"湿度:"};
const unsigned char line3[]={"风向:"};
const unsigned char line4[]={"风速:"};
int main(void)
{
Stm32_Clock_Init(9); //系统时钟设置
delay_init(72); //延时初始化
Ini_Lcd();
delay_ms(2);
Disp_HZ(0x80,line1,3);
delay_ms(2);
Disp_HZ(0x90,line2,3);
delay_ms(2);
Disp_HZ(0x88,line3,3);
delay_ms(2);
Disp_HZ(0x98,line4,3);
while(1)
{
//delay_ms(10);
}
}
[/mw_shl_code]
子函数
[mw_shl_code=c,true]void Ini_Lcd(void)
{
RCC->APB2ENR|=1<<3; //使能PORTB时钟
RCC->APB2ENR|=1<<4; //使能PORTC时钟
GPIOB->CRH&=0X00000000;
GPIOB->CRH|=0X33333333; //PB8-15 推挽输出 8位数据口
GPIOC->CRL&=0X00FFFFFF;
GPIOC->CRL|=0X33000000; //PC6 PC7
GPIOC->CRH&=0XFFFFFF00;
GPIOC->CRH|=0X00000033; //PC8 9 EN RW RS RST口
delay_ms(60);
LCD_RST=0;
delay_ms(20);
LCD_RST=1;
Write_Cmd(0x30); //基本指令集
delay_ms(10);
Write_Cmd(0x30); //基本指令集
delay_ms(10);
Write_Cmd(0x0C); //基本指令集
//
// Write_Cmd(0x02); // 地址归位
// delay_ms(10);
// Write_Cmd(0x0c); //整体显示打开,游标关闭
delay_ms(10);
Write_Cmd(0x01); //清除显示
delay_ms(30);
Write_Cmd(0x06); //游标右移
// delay_ms(1);
// Write_Cmd(0x80); //设定显示的起始地址
}
void Write_Cmd(u8 cmd)
{
u8 lcdtemp = 0;
LCD_RS=0; //指令操作
LCD_RW=1; //读数据
GPIOB->CRH&=0X00000000;
GPIOB->CRH|=0X88888888; //PB8-15 推挽输出 8位数据口
// GPIOB->ODR|=0xff;
do //判忙
{
LCD_EN=1;
delay_us(100);
lcdtemp =DATA8 ; //
LCD_EN=0;
}
while(lcdtemp & 0x80==0x80);
delay_ms(1);
GPIOB->CRH&=0X00000000;
GPIOB->CRH|=0X33333333; //PB0-7 推挽输出 8位数据口
LCD_RW=0; //写数据
GPIOB->ODR=cmd<<8;
LCD_EN=1;
delay_ms(1);
LCD_EN=0;
}
void Write_Data(u8 dat)
{
u8 lcdtemp = 0;
LCD_RS=0; //指令操作
LCD_RW=1; //读数据
GPIOB->CRH&=0X00000000;
GPIOB->CRH|=0X88888888; //PB8-15 推挽输出 8位数据口
// GPIOB->ODR=0xff;
do //判忙
{
LCD_EN=1;
delay_us(100);
lcdtemp = DATA8;
LCD_EN=0;
}
while(lcdtemp & 0x80==0x80);
GPIOB->CRH&=0X00000000;
GPIOB->CRH|=0X33333333; //PB0-7 推挽输出 8位数据口
LCD_RS=1;
LCD_RW=0;
GPIOB->ODR=dat<<8;
LCD_EN=1;
delay_ms(1);
LCD_EN=0;
}
void Disp_HZ(u8 addr,const u8 * pt,u8 num)
{
u8 i;
Write_Cmd(addr);
delay_us(100);
for(i = 0;i < (num*2);i++)
Write_Data(*(pt++));
} [/mw_shl_code]
|