发现 STM32 纯刷屏还是挺给力的,速度达到85每秒

2019-08-18 20:52发布

有图有真相:


如果我的代码没问题的话,应该就是这个速度了,
把原子哥提供的LCD例程进行了些改动,还没完全消化成自己的,
现在只能刷屏和填充矩形,

把一些支持其它我没见过的型号的屏的代码给删了,虽然这些对效率影响不大,

为了提高刷屏速度,我把编译器的优化开到了最大,

还有其它改动,这里简单说明,

void finline LCD_WriteData(u16 data){ WriteDataPort(data); LCD_WriteTrig(); } 原本有 CS 和 RS 的设置,但是这个函数是在刷屏的循环中的,对刷屏速度的影响至关重要,所以CS把抽出来交给用户处理,而RS默认就是高电平就行了,因为设置LCD的内部index的频率比较小。
//清屏函数 //Color:要清屏的填充 {MOD} void LCD_ClearScreen(u16 Color) { LCD_SetCursor(0x00,0x0000);//设置光标位置 LCD_WriteRAM_Prepare(); //开始写入GRAM for(u32 index=width*height;index;index--) { LCD_WriteData(Color); } } 这里的 for(u32 index=width*height;index;index--) 递增式循环和递减式循环的效率是不一样的,递减式循环把速度从78帧/s提升到了85帧/s

另外我还把读延时去掉了,不知会不会导致以后出现问题
不过我的LCD屏怪怪的,现在要把开始板以特殊的姿势放着才能正常显示,怀疑是接触不良,又好像是速度太快造成的。。。
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。