<p> 前段时间做了一个软件模拟SPI驱动ST7735S的0.96寸彩屏,但是觉得屏幕的刷新率不太够用,于是打算改用硬件SPI+DMA的方式。具体ST7735S的底层逻辑以及如何根据数据手册设计底层驱动我前面的文章有讲解,感兴趣的可以先去看一下更好理解。</p>
讯享网
让你学会写ST7735s驱动LCD程序(SPI)-CSDN博客
下面我先大概讲讲什么是DMA,专业术语大家网上随便都能找到,我这里根据自己的理解用形象一点的说法来给大家讲一下什么是DMA。大家可以把DMA理解成一个工人,CPU是雇主,数据相当于货物,当数据需要从一个地方搬运到另外一个地方的时候就可以使用DMA,只要雇主(CPU)在开始前(配置)告诉工人(DMA),要搬的货物在哪里(源地址),要将货物搬到哪里(目标地址),要搬多少件(数据大小),工人(DMA)就会开始搬运,搬运结束后工人(DMA)会打电话(产生中断)告诉雇主(CPU)搬运完了(数据传输完成),这就是DMA传输的整个过程,在DMA传输过程中CPU是不需要介入的,所以可以大大的节省CPU的资源。
下面是代码部分,前面的发送封装函数我在另外两篇文章里面有详细的讲解,一篇是ST7735S的一篇是ST7789的,芯片不一样但是原理是相通的,可能就是初始化有一些不一样,下面不作过多的说明,先直接上代码。
lcd_init.c
讯享网
lcd_init.h
font.h
讯享网
我最近建了一个嵌入式的交流群,感兴趣的可以进群了解一下,我会在群里分享一些常用的代码封装,以及一些项目的源码。讨论也是完全开放,只要不打广告大家可以就嵌入式尽情的沟通和交流,大家对文章中的内容有疑问也可以在群中提出,有空会尽我所能给大家一些帮助。号:

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/170548.html