无聊中,用STM32F030F4P6+ILI9341+SPIFlash刷个屏

2019-12-11 18:14发布

今天翻出买来就一直吃灰的一个STM32F030小板子玩了一下。
接了个SPI flash和一个ILI9341屏幕,存了点图片,又来刷屏了。。。

STM32F030F4P6只有一个SPI,flash和LCD都接在这个SPI上。LCD的MISO没接。
CPU运行在40MHz,这样SPI时钟可以设置到10MHz,正好到ILI9341能接受的最大频率了。
ILI9341和Flash片选都选中,这样读Flash和写LCD可以同时进行了。然后用DMA把刚从flash读出的数据直接写到ILI9341里。
图片是RGB565的,分辨率128×128,8MB的flash只能存256张,刷的速度大概是38fps。6秒多就没了。

http://v.youku.com/v_show/id_XMTYyMTk2NDc4OA==.html

代码: STM32F030F4-SPI.rar (40.08 KB, 下载次数: 443) 2016-6-27 00:11 上传 点击文件名下载附件
本来想一帧一帧刷,控制到24fps的,后来感觉好像也没多少意思,就开Circular mode了,连续刷。。。

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
53条回答
caixiuwen
1楼-- · 2019-12-16 21:02
zqy517 发表于 2018-7-3 12:04
caixiuwen,你好,就这个项目上,不知道你用了哪款SPI FLASH?

好像是MX25L64。应该各种25xxx的SPI flash都可以。
zqy517
2楼-- · 2019-12-16 23:53
caixiuwen 发表于 2018-7-3 13:17
好像是MX25L64。应该各种25xxx的SPI flash都可以。

谢谢你了,好的,很不错的思路,学习了!
zqy517
3楼-- · 2019-12-17 03:53
caixiuwen 发表于 2017-6-3 10:23
DMA的circular mode,就在DMA寄存器里设置一个bit就能开。
这个SPI是带FIFO的,16bit的写入,就是写入两 ...

再次请教下你,关于硬件接线方面的疑问,“硬件上所有MOSI连一起,MISO连一起。LCD的MISO没有连接。”,我的理解应该是LCD的输入数据(mosi)应该来源spi FLASH的输出管脚(miso),不知道对不,再次打扰你了,目前有一个项目需要播放视频,所以想用你这个方式来做。
caixiuwen
4楼-- · 2019-12-17 07:22
 精彩回答 2  元偷偷看……
zqy517
5楼-- · 2019-12-17 09:28
caixiuwen 发表于 2018-7-31 11:06
LCD的MOSI并没有直接和flash的MISO相连。如果直接连的话,STM32就没法初始化LCD了。 ...

恩,是的,后来我也想到了这点了,难道SPI FLASH的mosi 可以配置成对外输出数据吗?不然LCD的输入数据从何而来呢?没有别的意思哈,只是有点不明白这点,打扰你多次了,谢谢指教!
caixiuwen
6楼-- · 2019-12-17 15:18
zqy517 发表于 2018-7-31 18:15
恩,是的,后来我也想到了这点了,难道SPI FLASH的mosi 可以配置成对外输出数据吗?不然LCD的输入数据从 ...

Flash那个MOSI并不能配置。Flash的数据还是从MISO出来的,然后到STM32的SPI里。在STM32里用的DMA把SPI收到的数据又通过这个SPI发出来了。

一周热门 更多>