最近经理通知要做项目了,让我选型一个LCD开始试着做下。这是我用仿真实现的一个smt32的硬件SPI1来驱动的ST7735R,难度挺小的,因为大部分的代码LCD的厂商已经给我们提供了,我们主要修改成硬件SPI来驱动就好了。 此次仿真上面有2个问题,不知道是代码的问题还是仿真图上的问题。第一个问题是仿真运行时有时会出通信数据传输问题,导致指令越界报警,这个可能是SPI不稳定导致的;第二个问题是在改用SPI2或者SPI3来驱动没有任何反应,猜测是代码时钟没开对或者仿真图上面还要加上具体晶振。 代码工程和仿真工程都已压缩打包,可放心下载。。。先贴上仿真实现图: 再贴上部分代码:/**ST7735驱动**/#include "ST7735.h"#include "usart.h" u16 BACK_COLOR, POINT_COLOR; //背景色,画笔色 void WriteCommand_7735(u8 CmdData) //写指令{SPI_LCD_CS_LOW; //片选SPI_LCD_COMMAND_W;//写指令SPI_I2S_SendData(LCD_SPIx,CmdData);while (SPI_I2S_GetFlagStatus(LCD_SPIx, SPI_I2S_FLAG_TXE) == RESET){}SPI_LCD_CS_HIGH;} void WriteDate_7735(u8 Data) //写8位数据{SPI_LCD_CS_LOW; //片选SPI_LCD_DATA_W;//写数据SPI_I2S_SendData(LCD_SPIx,Data);while(SPI_I2S_GetFlagStatus(LCD_SPIx, SPI_I2S_FLAG_TXE) == RESET){} SPI_LCD_CS_HIGH; } void WriteDate16(int data) //写16位数据{WriteDate_7735(data>>8);WriteDate_7735(data);} 字符限制了,贴不了多少,2积分即可下载。。。
标签:
stm32
硬件
spi
驱动
tft
lcd
proteus
上传时间:
2022-04-12
上传用户: