江边枫叶lxh 江边枫叶lxh
秃驴,放开那个师太,让老衲先来!
关注数: 11 粉丝数: 101 发帖数: 534 关注贴吧数: 27
求大神科普,程序看不懂,求解释大概意思 #include "LCD1602.h" void LCD_GPIO_Init() { GPIO_InitTypeDef GPIO_InitStructure; RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC|RCC_APB2Periph_GPIOA, ENABLE); GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0|GPIO_Pin_1|GPIO_Pin_2|GPIO_Pin_3|GPIO_Pin_4|GPIO_Pin_5|GPIO_Pin_6|GPIO_Pin_7|GPIO_Pin_9; 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_14|GPIO_Pin_15; GPIO_Init(GPIOC, &GPIO_InitStructure); } void Lcd_1602_word(unsigned char Adress_Com,unsigned char Num_Adat,unsigned char *Adress_Data) { unsigned char i; unsigned char Data_Word; LCD_WriteCom(Adress_Com); for(i=0;i<Num_Adat;i++) { Data_Word=*Adress_Data; LCD_WriteData(Data_Word); Adress_Data++; } } /***************1602函数*******************/ void LCD_WriteData(unsigned char LCD_1602_DATA) /********LCD1602数据写入***********/ { uint16_t Data_Temp; delay_us(800); //操作前短暂延时,保证信号稳定 LCD1602_EN_Clr(); LCD1602_RS_Set(); Data_Temp=GPIO_ReadOutputData(GPIOA); Data_Temp=Data_Temp&0xff00; Data_Temp=Data_Temp+LCD_1602_DATA; GPIO_Write(GPIOA,Data_Temp); delay_us(80); LCD1602_EN_Set(); delay_us(80); LCD1602_EN_Clr(); LCD1602_RS_Clr(); } void LCD_WriteCom(unsigned char LCD_1602_COM) { uint16_t Data_Temp; delay_us(800); //操作前短暂延时,保证信号稳定 LCD1602_EN_Clr(); LCD1602_RS_Clr(); Data_Temp=GPIO_ReadOutputData(GPIOA); Data_Temp=Data_Temp&0xff00; Data_Temp=Data_Temp+LCD_1602_COM; GPIO_Write(GPIOA,Data_Temp); delay_us(80); LCD1602_EN_Set(); delay_us(80); LCD1602_EN_Clr(); LCD1602_RS_Clr(); } void InitLcd() { LCD_GPIO_Init(); delay_us(2000); LCD_WriteCom(0x38); //display mode LCD_WriteCom(0x38); //display mode LCD_WriteCom(0x38); //display mode LCD_WriteCom(0x06); //显示光标移动位置 LCD_WriteCom(0x0c); //显示开及光标设置 LCD_WriteCom(0x01); //显示清屏 delay_us(2000); }
1 下一页