资源预览内容
第1页 / 共5页
第2页 / 共5页
第3页 / 共5页
第4页 / 共5页
第5页 / 共5页
亲,该文档总共5页全部预览完了,如果喜欢就下载吧!
资源描述
使用stm32 SPI总线控制LCD12864一、SPI初始化/* Function Name : SPI1_Init* Description : Initializes the peripherals used by the SPI FLASH driver.* Input : None* Output : None* Return : None*/void SPI1_Init(void) SPI_InitTypeDef SPI_InitStructure; GPIO_InitTypeDef GPIO_InitStructure; /* Enable SPI1 and GPIO clocks */ /*! SPI_FLASH_SPI_CS_GPIO, SPI_FLASH_SPI_MOSI_GPIO, SPI_FLASH_SPI_MISO_GPIO, SPI_FLASH_SPI_DETECT_GPIO and SPI_FLASH_SPI_SCK_GPIO Periph clock enable */ RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA , ENABLE); /*! SPI_FLASH_SPI Periph clock enable */ RCC_APB2PeriphClockCmd(RCC_APB2Periph_SPI1, ENABLE); /*! Configure SPI_FLASH_SPI pins: SCK */ GPIO_InitStructure.GPIO_Pin = GPIO_Pin_5; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP; GPIO_Init(GPIOA, &GPIO_InitStructure); /*! Configure SPI_FLASH_SPI pins: MISO */ GPIO_InitStructure.GPIO_Pin = GPIO_Pin_6; GPIO_Init(GPIOA, &GPIO_InitStructure); /*! Configure SPI_FLASH_SPI pins: MOSI */ GPIO_InitStructure.GPIO_Pin = GPIO_Pin_7; GPIO_Init(GPIOA, &GPIO_InitStructure); /*!DR=data; /送数据 return 0;void LCD_Write(u8 data)SPI_SendByte(data&0xf0);/发送高四位SPI_SendByte(data4)&0xf0);/发送低四位void LCD_Wcmd(u8 cmd)CS_H;SPI_SendByte(0xf8);/表示要发送的是指令LCD_Write(cmd);CS_L;void LCD_Clr()LCD_Wcmd(0x01);void LCD_Wdata(u8 data)CS_H;SPI_SendByte(0xfa);/表示要发送的是数据LCD_Write(data);CS_L;void DisNum(u8 x_add,u8 y_add,u8 num)u8 temp,i=0;temp=num;temp/=10;while(temp)i+;temp /= 10;i+;if(y_add=1)/第一行LCD_Wcmd(x_add+0x80);else if(y_add=2)/第二行LCD_Wcmd(x_add+0x90);else if(y_add=3)/第三行LCD_Wcmd(x_add+0x80+0x08);else/第四行LCD_Wcmd(x_add+0x90+0x08);if(i=1 | num=0)LCD_Wdata(num+0x30);else if(i=2)LCD_Wdata(num/10+0x30);LCD_Wdata(num%10+0x30);elseLCD_Wdata(num/100+0x30);LCD_Wdata(num%100/10+0x30);LCD_Wdata(num%10+0x30);void display(unsigned char x_add,unsigned char *ptr)LCD_Wcmd(x_add);while(*ptr != 0)LCD_Wdata(*ptr);+ptr;void DisStr(u8 x_add,u8 y_add,u8 *ptr)if(y_add=1)/第一行LCD_Wcmd(x_add+0x80);else if(y_add=2)/第二行LCD_Wcmd(x_add+0x90);else if(y_add=3)/第三行LCD_Wcmd(x_add+0x80+0x08);else/第四行LCD_Wcmd(x_add+0x90+0x08);while(*ptr != 0)LCD_Wdata(*ptr);+ptr;void LCD_Init(void)CS_L;SPI1_Init();Delay_us(2000);LCD_Wcmd(0x30);/基本指令集LCD_Wcmd(0x0c);LCD_Wcmd(0x01);LCD_Wcmd(0x02);LCD_Wcmd(0x80);
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号