OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 5081|回复: 7

把照片写进spiflash 再一张一张播放

[复制链接]

9

主题

23

帖子

0

精华

新手入门

积分
10
金钱
10
注册时间
2016-5-26
在线时间
12 小时
发表于 2016-5-26 19:10:00 | 显示全部楼层 |阅读模式
1金钱
怎么使用STM32战舰开发板中的SPI flash?照片又是怎么存进flash中?在不需要SD卡的情况下,求帮助!

最佳答案

查看完整内容[请看2#楼]

用U盘吧。这么不喜欢SD卡。 不然传输速度慢的一逼。。。
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165309
金钱
165309
注册时间
2010-12-1
在线时间
2108 小时
发表于 2016-5-26 19:10:01 | 显示全部楼层
用U盘吧。这么不喜欢SD卡。 不然传输速度慢的一逼。。。
回复

使用道具 举报

9

主题

23

帖子

0

精华

新手入门

积分
10
金钱
10
注册时间
2016-5-26
在线时间
12 小时
 楼主| 发表于 2016-5-29 09:31:38 | 显示全部楼层
正点原子 发表于 2016-5-26 19:10
用U盘吧。这么不喜欢SD卡。 不然传输速度慢的一逼。。。

但是   我想用flash来实现  不用SD卡和U盘
回复

使用道具 举报

2

主题

25

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
204
金钱
204
注册时间
2016-5-29
在线时间
44 小时
发表于 2016-5-29 20:56:47 | 显示全部楼层
不好使。240*320*2字节=153,600字节,2M byte的flash只能存几张。我以前是通过串口,将转换后的。bin的文件用flash 写地址的函数依次发送到stm32f4的内存中,再按地址存到flash中。存的时候要等待flash写完成了才能写下一个256还是512字节(一页),存好后改程序,再写下一页。读的时候按地址读了再显示出来。最好还是用SD卡,250M的sd便宜,而且不用文件系统跟sd的读写方式几乎一模一样,就是前提初始化一定要先低速设置模式在高速读写。
回复

使用道具 举报

9

主题

23

帖子

0

精华

新手入门

积分
10
金钱
10
注册时间
2016-5-26
在线时间
12 小时
 楼主| 发表于 2016-5-29 22:23:10 | 显示全部楼层
lp_robert 发表于 2016-5-29 20:56
不好使。240*320*2字节=153,600字节,2M byte的flash只能存几张。我以前是通过串口,将转换后的。bin的文件 ...

能把程序贴出来让我看看么?   你用的是原子的什么例程?
回复

使用道具 举报

2

主题

25

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
204
金钱
204
注册时间
2016-5-29
在线时间
44 小时
发表于 2016-5-29 23:41:50 | 显示全部楼层
好久没弄的。现在只有通过串口文件xx.bin发来的数据存到tft320*480屏幕的了,改一改就行了,把接收到的单字节数据拼成256还是512字节一页,然后写到flash里,波特率调低一点。来让stm32有时间来存到flash里。不要在串口里运行,到主程序里搞个分支。进入分支后,通过串口发。bin文件就行
case        0x05:
                                        {u16 colum1=320*2,page1=480,temp;
                                         u8 count_shunxu =1;
                                                LCD_SetPos(0,0,320-1,480-1);

                                                USART_ITConfig(USART2, USART_IT_RXNE, DISABLE);    //关闭接收中断
                                               
                                                colum1=320*2;page1=480;
                                                while(page1--)
                                                {
                                                        colum1=320*2;
                                                        while(colum1)
                                                        {
                                                                if(USART_GetFlagStatus(USART2, USART_FLAG_RXNE) != RESET)    // 接收中断有效 ;
                                                                {
                                                                        temp = ((uint8_t)(USART_ReceiveData(USART2)));
                                                                        LCD_W_DATA16((u8)(temp));
                                                                       //这里把temp搞个指针拼256还是512字节一组然后写进flash
                                                                        colum1--;
                                                                        USART_ClearFlag(USART2, USART_FLAG_RXNE);
//                                                                        if(count_shunxu == 1)
//                                                                        {
//                                                                                temp = ((uint8_t)(USART_ReceiveData(USART2)))<<8;
//                                                                                ji_ou = 0;
//                                                                        }
//                                                                        else
//                                                                        {
//                                                                                temp = temp + ((uint8_t)(USART_ReceiveData(USART2)));
//                                                                                ji_ou = 1;
//                                                                               
//                                                                                LCD_W_DATA16((u8)(((temp)&0x1F)<<3));
//                                                                                LCD_W_DATA16((u8)(((temp>>5)&0x3F))<<2);
//                                                                                LCD_W_DATA16((u8)((temp>>11)<<3));
//                                                                        }
                                                                }
                                                        }
                                                       
                                                }
                                               
                                                USART_ITConfig(USART2, USART_IT_RXNE, ENABLE);    //使能接收中断

                                                ;break;
                                        }
回复

使用道具 举报

9

主题

23

帖子

0

精华

新手入门

积分
10
金钱
10
注册时间
2016-5-26
在线时间
12 小时
 楼主| 发表于 2016-5-30 22:40:55 | 显示全部楼层
这是哪个实验的程序?原子例程里面有什么程序可以和这模仿的么?
回复

使用道具 举报

90

主题

534

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1059
金钱
1059
注册时间
2017-4-12
在线时间
280 小时
发表于 2018-9-3 08:48:25 | 显示全部楼层
1027986292 发表于 2016-5-30 22:40
这是哪个实验的程序?原子例程里面有什么程序可以和这模仿的么?

嗯...如果写在内部flash,用eeprom模拟neibu  flash, 外部的话,用spi读写外部flash。关键是把照片怎么输出 (可以试着转成数组),怎么输出、
穷不可怕,可怕的是穷的是我~~~
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2024-11-22 09:39

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表