无聊中,用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-14 12:15
splfsp 发表于 2016-7-5 15:20
楼主,你是怎么样把图片一张张存进FLASH的?

用一个STM32F103接这个SPI flash,做了一个USB mass storage。然后用winhex把数据写入。
caixiuwen
2楼-- · 2019-12-14 14:44
 精彩回答 2  元偷偷看……
carryonli
3楼-- · 2019-12-14 20:24
存俩开机动画就没地方了。
jlhgold
4楼-- · 2019-12-14 20:50
caixiuwen 发表于 2016-7-6 09:48
一般sd卡是足够快的

SPI是很慢的 ST的SDIO兼容性非常差 可以说非常不适合中国大陆的tf卡或者sd卡市场
gmyu
5楼-- · 2019-12-14 21:12
caixiuwen 发表于 2016-7-6 10:04
用一个STM32F103接这个SPI flash,做了一个USB mass storage。然后用winhex把数据写入。 ...

请问 Circular mode 怎么开的?

下面两条语句就可以再8位和16位之间自由切换么,我一直以为是spi初始化才能设置。难道是你给几位数据,他就发几位的么?
*(__IO uint16_t*)&SPI1 -> DR = (uint16_t)0x0000;
*(__IO uint8_t*)&SPI1 -> DR = (uint8_t)0x00;

不是很理解你的程序。就是先片选flash,发03,00,00,00加0000是啥意思?地址?然后片选LCD,开DMA. 这个是每个字节读出紧跟着传到LCD,还是128*128满了就传给LCD?
还是硬件上LCD的DATA IN接flash的data out?
TongIC
6楼-- · 2019-12-14 21:38
这个M0的内核能做到这样实在不错!

一周热门 更多>